일상에서 멍때리기
Unity3D script lifecycle 정리 본문
반응형
Unity3D wiki에 올라와있는 셈플 코드를 사용하여 실제 어떻게 함수가 호출되는지 확인을 해보았습니다.
using UnityEngine; using System.Collections; public class TestLifeCycle : MonoBehaviour { void Awake() { logFrame("Awake"); } void Main() { logFrame("Main"); } void Start() { logFrame("Start"); } void OnLevelWasLoaded() { logFrame("OnLevelWasLoaded"); } void OnNetworkLoadedLevel() { logFrame("OnNetworkLoadedLevel"); } void OnEnable() { logFrame("OnEnable"); } void OnDisable() { logFrame("OnDisable"); } void OnApplicationQuit() { logFrame("OnApplicationQuit"); } void Update() { logFrame("Update"); } void LateUpdate() { logFrame("LateUpdate"); } void FixedUpdate() { logFrame("FixedUpdate"); } void LateFixedUpdate() { logFrame("LateFixedUpdate"); } void OnDrawGizmos() { logFrame("OnDrawGizmos"); } void OnDrawGizmosSelected() { logFrame("OnDrawGizmosSelected"); } static void logFrame(string message) { Debug.Log(Time.frameCount + " - " + message); } }
references by http://wiki.unity3d.com/index.php?title=Life_cycle
호출 순서는 아래와 같습니다.
Awake -> OnEnable -> Main -> Start -> ( FixedUpdate -> Update -> LateUpdate )(반복 실행 구간) -> OnApplicationQuit -> OnDisable
순으로 우선 호출이 되는것으로 확인이 되었습니다.
책들을 보면 대부분 Start -> Update로 예제들이 나와있는데 실제로는 많은 다른 단계들이 있다는 것을 확인하였습니다.
하지만 각 함수가 어떤 상황에서의 호출들인지 Update함수가 3단계로 나뉘는데 어떤 상황들에서 나뉘어 불리는지에 대하여 좀 더 자세히 연구해볼 필요가 있을 것같습니다. 이부분에 대해서는 다음기회에 스터디를 한 후 다시 포스팅하도록 하겠습니다.
반응형
'프로그래밍 > Unity3D' 카테고리의 다른 글
Unity3D의 Asset folder내의 폴더 명 (0) | 2017.01.24 |
---|
Comments