오늘의 학습 키워드
Visual Studio 자동완성, Awake vs OnEnable
공부한 내용
Visual Studio 자동완성
Edit - Preferences - External Script Editor의 항목이 internal로 뜨며 자동완성이 안될 때가 있다.
Browse를 눌러 Visual Studio 경로로 지정을 해보았으나 실패했다.
이번 경우는 Visual Studio Editor가 설치가 되어있지 않아서 생기는 문제였다.
패키지 설치 후 스크립트를 껐다 켰더니 되는 모습!
Awake vs OnEnable
UI매니저는 Awake에서 초기화하는 싱글턴이고 다른 스크립트는 OnEnable에서 이벤트 등록을 했는데 UI 매니저의 싱글턴 인스턴스가 null이라는 오류가 나왔다.
왜 Awake에서 초기화를 진행했는데 OnEnable에서 null일까 이상했다.
그래서 확인을 해보려고 싱글턴의 Awake와 다른 스크립트의 OnEnable에 중단점을 찍어봤더니 다른 스크립트의 OnEnable이 먼저 불린 경우였다.
이유를 알기 위해 검색을 좀 해봤더니 OnEnable은 동일한 스크립트에서만 Awake 뒤에 동작하는 것을 보장하고 다른 것은 그렇지 않다는 것이었다. Execution Order를 이용하여 호출 순서를 지정하거나 커스텀 메서드를 생성하여 싱글턴의 Awake가 불렀는지 체크하고 그 이후에 동작하도록 만들 수 있지만 Execution Order는 다른 스크립트도 꼬일 수 있어서 하지 않았고 커스텀 메서드는 지금 방식에서 그냥 Start를 이용하는 게 간편하다고 생각해서 Start로 옮겨 해결하게 되었다.
해결된 모습
오늘의 회고
오늘은 팀 과제 발제가 있는 날이었다. 팀원들과 고전게임을 만들어 보는 과제였는데 우리는 닷지, 똥피하기, 벽돌깨기 중 벽돌깨기가 가장 안 해본 프로젝트에 가까워서 선택하기로 했다. 와이어 프레임도 그리고 필수 구현 기능과 추가 구현 기능으로 나눠서 필수 구현부터 팀원들과 분배하여 구현하였다. 오늘 필수 구현은 다 진행하였고 겹치는 부분을 제외하고서는 머지까지 완료했다. 협업이란 게 잘 되고 시너지가 잘 나서 능률이 올라가는 것 같아서 좋았고 재밌었다.
이렇게만 계속 구현을 한다면 기획을 했던 것들을 다 구현할 수 있을 것 같아서 기대가 된다. 다음 주도 파이팅!
참고 :
https://forum.unity.com/threads/execution-order-of-scripts-awake-and-onenable.763688/
https://docs.unity3d.com/ScriptReference/MonoBehaviour.Awake.html
https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnEnable.html
'스파르타 Unity 1기' 카테고리의 다른 글
내일배움캠프 25일차 TIL - 사운드 매니저 (0) | 2023.09.11 |
---|---|
내일배움캠프 5주차 WIL - Input System (0) | 2023.09.11 |
내일배움캠프 23일차 TIL - UpScale Sampling (0) | 2023.09.07 |
내일배움캠프 22일차 TIL - UI 바인딩, Enum.GetNames() (0) | 2023.09.06 |
내일배움캠프 21일차 TIL - InputSystem(SendMessage, Invoke Unity Events) (0) | 2023.09.05 |