분류 전체보기 227

2020.06.14. 낮,밤 / 조명 (버튼) - Emission 이 쉐이더 눌러야 적용되던 것 해결

emission color에 잘 접근했는데 쉐이더 버튼을 일일히 눌러줘야 적용되던 걸 해결했다 this.arrMaterials[index1].EnableKeyword("_EMISSION"); this.arrMaterials[index1].globalIlluminationFlags = MaterialGlobalIlluminationFlags.RealtimeEmissive; 저 두줄을 start에 넣어주면 되는 거였음 emission color는 시작할 때 비어있어서 사용하려면 초기화를 한번 해줘야한다고 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 ..

팀프로젝트/R&D 2020.06.14

2020.06.13 모바일 조이스틱 + 터치 화면 회전(카메라 컨트롤)

구현한 것 1. 조이스틱으로 캐릭터를 움직이고 2. 화면 터치로 카메라를 움직인다 ( 수평 yaw -캐릭터 주위를 공전, 수직 pitch - 일정 각도까지만 회전) 조이스틱까진 수월하게 구현했는데 터치로 카메라를 제어하는 것이 어려웠다. 모바일 환경에서 터치로 카메라를 어떻게 조종하는가 찾아보면 대부분 getmouseButton 에 raycast를 쏘는 방식으로 구현하는지 터치 구조체를 이용하는 방법은 잘 나오지 않았다 거기에 한손으로 이동 조작을 하면서 다른 손가락 터치로 카메라를 어떻게 제어하는지 코드나 방법을 찾아보았는데 대부분 카메라가 플레이어를 따라다니는 것까지만 구현하는 게 가장 많았고 내가 필요했던 방법은 나오질 않았다.. 여차저차 열심히 구글링해서 나오는대로 터치 구조체를 이용하지 않고 g..

팀프로젝트/R&D 2020.06.13

Unity Text 오브젝트 색상 Hex 값으로 변경하기

HexaDecimal 색상값을 Text 오브젝트에 적용하기(글자색 변경하기) Color color; ColorUtility.TryParseHtmlString("#FF3737", out color); this.amountText.color = color; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 this.amountText.text = this.rewardAmount.ToString(); Color color; if (data.type==0) { ColorUtility.TryParseHtmlString("#FF3737", out color); this.amountText.color = color; } else if (data.type == 1) { ColorUtili..

C#/Problems 2020.06.12

2020.06.10. 조이스틱 + 조이스틱 카메라 회전 / Euler, Mathf.Clamp

좌표를 설정할 때 Euler를 써야 우리가 아는 그 좌표값이 나온다!!!!!!! (ex 35도) rotation.x 이런 거 쓰면 안된다 Mathf.Clamp(적용할 대상, 최소값, 최대값) 적용할 대상의 최소값과 최대값을 지정한다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Center : MonoBehaviour { [SerializeField] private GameObject player; [SerializeField] private float speed; void Start() { } /..

팀프로젝트/R&D 2020.06.11

2020.06.09. 조이스틱 구현하기 / 조이스틱 방향으로 캐릭터 회전

가속도 없이 이동 + 조이스틱 방향으로 캐릭터를 회전 조이스틱의 방향값 ( x, y) 을 아크탄젠트로 변환시키고 라디안을 디그리 값으로 변환시켜준 값을 곱해준 뒤 캐릭터의 Y축 변환값으로 넣어줌 if (this.value != null) { this.go_Player.transform.rotation = Quaternion.Euler(0f, Mathf.Atan2(this.value.x, this.value.y) * Mathf.Rad2Deg, 0f); } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 5..

팀프로젝트/R&D 2020.06.09

WayPoint 이동, Line Renderer

캐릭터는 웨이포인트마다 이동하면서 적들을 처치한다. 적들마다 웨이포인트를 각각 다르게 어싸인 해주면 가까운 웨이포인트에 플레이어가 왔을 때 해당되는 몬스터만 달려간다 LineRenderer - 두 물체 사이에 라인을 그린다 this.lr.SetPosition(1, new Vector3(0, 0, 0)); 1-> 인덱스 new Vector3(0,0,0) - 거리 플레이어에 붙어있는 LineRenderer 컴포넌트에서 use world space를 꺼주고 공격할 때만 거리를 다시 늘려준다 this.lr.SetPosition(1, new Vector3(0, 0, distance)); 1. App 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 using System...

C#/예제 2020.06.09

9. 1302번 베스트셀러 (LINQ group by)

첫째 줄에 가장 많이 팔린 책의 제목을 출력한다. 만약 가장 많이 팔린 책이 여러 개일 경우에는 사전 순으로 가장 앞서는 제목을 출력한다. count랑 temp값을 만들어서 중복값 중에 가장 많은 갯수를 가진 값을 찾아보는 방법으로 해보다가 LINQ를 이용하는 방법을 찾아봄 var group = bookList.GroupBy(x => x) .Select(g => new { Value = g.Key, Count = g.Count() }) .OrderBy(x => x.Value); LINQ를 사용하면 데이터들을 group by를 이용해서 두 그룹으로 나눌 수 있는데 (group by into) LINQ의 확장메서드를 이용해서 바로 group by하고 그 값을 처리할 수 있다고 한다. select는 검색된 값..

C#/알고리즘 2020.06.07

Normal Mapping / Shader / Material - parameter

Texture는 이미지 파일인데 텍스쳐가 3D오브젝트에 적용되기 위해서는 Material이 필요함 Material은 여러가지 Texture 파일을 조합하고 Shader를 비롯한 여러가지 설정을 적용시켜서 오브젝트의 다양한 질감을 나타내는 데 사용됨. 텍스쳐 파일을 가지고 Material을 직접 만들어서 씌워보면서 shader를 적용시켜봄 불러온 텍스쳐는 모두 normal map으로 한번 변환해봄 *normal mapping은 법선 벡터(normal vector)를 이용해서 low poly인 모델에서 사실적인 입체감과 질감을 구현하는 일종의 눈속임 기법이라고 한다. ->normal maaping기술을 사용하면 폴리곤으로 질감과 굴곡을 모두 나타내 것보다 훨씬 적은 연산과 리소스로 많은 폴리곤 수를 가진 오..

C#/Problems 2020.06.04

8. 1343번 폴리오미노

먼저 그리디 알고리즘을 알아보았다. 지금 할 수 있는 단계에서 최선의 해결책을 얻는 알고리즘이라고 한다. 동전 나누는게 예로 많이 나왔는데 만약 560원이 있다면 가장 적은 동전 갯수인 500원짜리 1개 50원짜리 1개 10원짜리 1개로 나눌 수 있고 이게 그리디 알고리즘을 적용하여 그때그때 최선의 결과로 나타내는 것이라고 한다. 여기 문제에 적용하면 먼저 보드를 4로 나눠서 4의 배수인지 확인해보고 A를 채우고 아니라면 4로 나눈 나머지가 2의 배수인지 확인해서 2의 배수라면 A를 먼저 채운다음 B를 채우면 되는 것이고 2의 배수도 아니라면 -1을 출력해주면 되는 것 같았다. 입력되는 문자열을 .을 기준으로 나누고 A랑 B를 X개수만큼 각각 잘 대체했다 .을 도대체 어떻게 나타낼까 엄청 고민하다가 su..

C#/알고리즘 2020.06.01

TexturePacker 로 이미지 가져오기 / 배경 이동시키기 / Draw Mode Tiled

1. TexturePacker - 이미지를 atlas 처럼 Sprite Pack으로 만들어줌 - 이미지 용량 낭비를 줄일 수 있음 - 유니티 asset store에서 TexturePacker를 검색해서 plugin을 설치해줘야함 - TexturePacker에서 advance setting에서 데이터 이름과 저장될 경로를 지정하는데 unity asset폴더로 지정하면 이미지를 뽑자마자 바로 Asset에 데이터파일과 import되고 자동으로 sheet에 있는 이미지들이 하나하나 슬라이스 돼서 나눠짐. TexturePacker - Create Sprite Sheets for your game! TexturePacker creates sprite sheets for your game engine www.code..

C#/Problems 2020.05.28