오늘의 학습 키워드

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/

 

Execution Order of Scripts - Awake and OnEnable

I am facing issues related to scripts execution order and this point is out of my mind though I am an experienced, Unity developer. So I expect a...

forum.unity.com

https://docs.unity3d.com/ScriptReference/MonoBehaviour.Awake.html

 

Unity - Scripting API: MonoBehaviour.Awake()

Awake is called either when an active GameObject that contains the script is initialized when a Scene loads, or when a previously inactive GameObject is set to active, or after a GameObject created with Object.Instantiate is initialized. Use Awake to initi

docs.unity3d.com

https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnEnable.html

 

Unity - Scripting API: MonoBehaviour.OnEnable()

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. Close

docs.unity3d.com

 

+ Recent posts