-
[Unity / C#] Awake(), OnEnable(), Start()공부/Unity 2020. 5. 24. 22:54
오브젝트 풀을 사용해서 총알들을 관리하도록 만들다가 총알 스크립트에 필요한 변수 초기화를 어디서 해야 하는가에 의문이 생겨 테스트를 해보고 알게 되었다.
Awake와 OnEnable, Start는 비슷해보이지만 차이점이 확실하게 존재하였다.
Awake 함수는 해당 스크립트가 컴포넌트로 있는 오브젝트가 최초로 활성화되었을 경우 한번 실행되는 함수이다.(스크립트의 enabled가 false여도 호출이 됨)
OnEnable 함수는 해당 스크립트가 enabled가 true가 될 때마다 호출되는 함수이다.(오브젝트를 활성화할 때마다 호출)
Start 함수는 해당 스크립트의 enabled가 최초로 true가 되었을 때 한번 호출되는 함수이다.(오브젝트가 활성화 된 상태여도 스크립트의 enabled가 false라면 호출이 안됨)
따라서 오브젝트 풀로 오브젝트들을 관리할 때 변수 초기화를 Awake나 Start보다 OnEnable에서 해야할 것 같다.
'공부 > Unity' 카테고리의 다른 글
[Unity] 3D 랜덤 미로 - 난이도에 따른 목적지 설정, 길 찾기 (0) 2020.06.09 [Unity] 랜덤 3D 미로 (0) 2020.06.02 마우스 좌표와 월드 좌표 (0) 2020.02.20 try / catch / finally (1) 2019.07.15 댓글