목록GameEngine & CG (28)
오보에블로그
1인칭 시점으로 보이게끔 하기 위한 조건 키보드 제어가 가능해야한다. 마우스로 카메라 방향 전환이 가능해야한다. 마우스로 방향이 조절 되어있을 때, y 축 회전 방향으로는 키보드 제어로 인한 전진시 적용이 되어야하지만, x 축 방향 회전시 키보드 제어를 하면 위로 올라가거나 아래로 내려가므로 막아 놔야한다. void MouseRoatate() { float yRotateSize = Input.GetAxis("Mouse X") \* mouseSpeed; float xRotateSize = -Input.GetAxis("Mouse Y") \* mouseSpeed; transform.localRotation \*= Quaternion.Euler(0.0f, yRotateSize, 0.0f); mainCamera...

아래의 사진과 같이 레포지터리 루트에 유니티 프로젝트가 바로 있는 것이 아닌, 루트에 유니티 프로젝트 폴더가 있는 구조라면, Github에서 제공하는 Unity 용 .gitignore가 잘 먹히지 않는다. 원본 .gitignore에는 Library , Temp .. 의 폴더를 무시하라고 명시되어 있지만, 트래킹 되고 있는 상황 해당 부분을 아래처럼 바꿔주자. 그러면 루트 폴더 자체가 유니티 프로젝트가 아니어도 .gitignore가 제대로 동작한다. 그 후에 .gitignore만 push 한다. 꼭 git fetch 를 해줘서야한다. 유니티 프로젝트를 push한다.
참고 : https://docs.unity3d.com/kr/530/ScriptReference/Cursor.html Cursor 표시할 커서의 설정을 위한 커서 API Cursor.SetCursor 파라미터 : Cursor.SetCursor(Texture2D,Vector2 , CursorMode) Texture2D cursorTexture : 커서의 텍스처 Vector2 cursorPosition : 텍스처의 어디좌표가 커서의 위치좌표로 쓸건지, 제로 벡터는 맨 왼쪽 위 좌표를 의미 CursorMode : 어떻게 최적화를 할건지 Cusror.Auto는 하드웨어에 따라서 최적화 설정 예시 Cursor.SetCursor(_handIcon, new Vector2(_handIcon.width / 3, 0), C..
아래의 코드와 같이 미리 구현해놓은 클래스에 매핑시킬수 있다. [Serializable] public class Stat { public int level; public int hp; public int attack; } [Serializable] public class StatData { public List stats = new List(); } public class DataManager { public void Init() { TextAsset textAsset = Managers.Resource.Load($"Data/StatData"); StatData data = JsonUtility.FromJson(textAsset.text); } }
참고 : https://docs.unity3d.com/kr/530/ScriptReference/RenderMode.html Unity - 스크립팅 API: RenderMode Success! Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable. 닫기 docs.unity3d.com 캔버스에대한 렌더 모드를 의미한다. Variables ScreenSpaceOverlay 2D Canvas를 사용하는 끝 Scen..
이전 포스팅 (https://pi-314.tistory.com/129) 을 통해 enum 으로 UI 컴포넌트들을 읽고, 불러올 수 있었다. 이제 불러온 UI 컴포넌트에서 Event 를 처리하기 위해 Event Handler를 만들어보자. (옵저버 패턴 이용) 핸들러 처리를 위해 IPointerClickHandler와 IDragHandler 를 상속 받고, 필요한 인터페이스를 구현했다. 해당 유니티 API 는 아래 링크를 참고한다. https://pi-314.tistory.com/130 [Unity] IPointerClickHandler & IDragHandler IPointerClickHandler 참고 : https://docs.unity3d.com/kr/530/ScriptReference/EventS..
IPointerClickHandler 참고 : https://docs.unity3d.com/kr/530/ScriptReference/EventSystems.IPointerClickHandler.html Unity - 스크립팅 API: IPointerClickHandler Success! Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable. 닫기 docs.unity3d.com `OnPointerClick` ..

위와 같이 Button을 눌렀을 때 Text가 변경되게끔 하고 싶을 때, 방법 1. UI_Button 에 [SerializedField]를 통해서 Text 타입의 게임 오브젝트를 받을 수 있게끔 한다. 변경을 원하는 텍스트 오브젝트를 드래그 하고, 코드상에서 해당 텍스트의 텍스트값 (_text.text) 을 변경한다. --> 이걸로 다 관리하기엔 버튼이 몇백개가 된다면 불가능할듯..! 방법 2. enum 에 담겨있는 명칭? 들이 하나하나가 실존하는 컴포넌트들을 의미해서 Bind 함수를 통해 enum 에 해당하는 UI를 가져오도록한다. 여기서 중요한 부분이 있다. 그냥 GetComponent만 하면 상위 UI 컴포넌트만 부르므로, 재귀적으로 찾도록하자. 해당 이름을 갖고 있는 컴포넌트를 리턴하는 그런 함수..