목록Game Dev/Unity : Study (4)
KoreanFoodie's Study
Udemy 관련 개념 정리 및 Dev Log 를 기록하고 있습니다! Monobehaviour 유니티에는 Monobehaviour 라는 클래스가 있다. 씬에서 GameObject 로 사용하는 클래스는 Monobehaviour 를 상속하게 되는데, Monobehaviour 에는 다양한 내장 메소드들이 있다. Awake, Start 처럼 초기화에 쓰이는 녀석도 있고, OnEnable 이나 OnDisable 처럼 해당 게임 오브젝트를 껐다 킬때 ( SetActive( ) 함수 호출 혹은 .enabled 값 변경 ) 호출되는 함수들도 있다. 중요한 것은, 어떤 함수가 어떤 순서로 호출되는지를 알아야 한다는 것이다! 이 링크에 정리된 사진을 가져온 것이다. 특히 주의해야 할 사항으로는, Spawner 클래스에서 생..
Udemy 관련 개념 정리 및 Dev Log 를 기록하고 있습니다! 유니티 Awake 와 Start 차이 유니티에서 Awake 와 Start 는 둘 다 초기화를 담당한다. 그런데 어떤 차이가 있는 걸까? Awake() : 모든 변수와 게임의 상태를 초기화하기 Awake 는 일반적으로 게임이 시작되기 전에 호출 (start 보다 먼저 호출) 되며, 모든 오브젝트가 초기화되고 호출된다. 따라서 GameObject.FindWithTag 를 이용해 해당 게임 오브젝트를 요처하거나 다른 오브젝트와 안전하게 상호작용기 가능하다. [주의] : 각 게임 오브젝트의 Awake() 는 랜덤 순서로 실행되므로, 스크립트간의 참조(reference) 를 설정하기 위해 Awake 를 사용하고, 정보를 보내고 받는 경우에는 St..
Udemy 관련 개념 정리 및 Dev Log 를 기록하고 있습니다! 유니티에서 일시정지하기 유니티에서는 일시 정지 기능을 어떻게 구현하면 될까? 먼저 결론만 말하자면, Time.timeScale 값을 조절하여 Time.deltaTime 을 0 으로 만드는 방식을 이용하면 된다. void PauseGame () { Time.timeScale = 0; } void ResumeGame () { Time.timeScale = 1; } 이런 방식을 이용하면, 각 게임 오브젝트들의 Update 내 함수에서 Time.deltaTime 에 의존하는 모든 동작이 멈추게 된다. 이 말은즉슨, Time.deltaTime 에 의존하지 않는 녀석들의 경우에는 여전히 일시정지라는 본연의 목적과 다른 동작을 할 수 있음을 의미한다..
유니티 공부 노트 Touch Input 이용시 에러? 분명히 에디터에서는 마우스 클릭 입력으로 잘 동작했는데, 모바일로 빌드하니 제대로 작동을 하지 않아 원인을 파악하던 중, Input 관련에 문제가 있다는 것을 알게 되었다. 기존에는 터치 입력을 다음과 같이 구현했었는데... (후략) if (Input.GetTouch(0).phase == TouchPhase.Began) { JumpButtonPressed(); } 근데 이 경우, argumentexception: index out of bounds 에러가 발생했었다. 이는 터치 자체가 없는데, Input 에서 Touch 의 첫번째 인덱스를 가져오려 해서 생긴 문제였다. 따라서 다음과 같이 간단히, Touch 배열이 비어있지 않은지 체크해주기만 하면 된..