[Unity] 6. 유니티 Script 실행순서 / Life Cycle Flow Chart

Using Unity;
Using C#;
Using Programming;



유니티로 개발을 하다보면 언젠가 한번쯤 찾아오는 그날이 있습니다.

특히, 막코딩+다수인원작업을 하게 되면 반드시 찾아옵니다.



유니티 공식문서와 여러 블로그 글에 정리가 참 잘되어있지만

언제, 왜, 찾게되는지 알려드리겠습니다.

우선 뻔한 글을 확인해봅니다. 수명주기 플로우차트입니다.

Unity Script Flow Chart

공식문서만큼 정리 잘된게 없습니다. 확실하고요.

즉, Awake - OnEnable - Start - Physics - Event - Update 순서입니다.

노랑색 음영은 클래스를 만들면 자동으로 만들어줍니다.
(저 두개로 다 만들 수 있음! / 하지만 실력이 늘수록 둘 다 거의 안쓰게 되는건 안비밀)

정말로 이 6개 아니.. 2개만 아셔도 됩니다...



문제는 수십개의 Class.cs에서 저게 돌고 있으니...

최적화니... 오브젝트 풀링이니... 라고 만들어둔 애들에게서 오류가 뜨기 마련입니다.
(심지어 5버전은 Update가 돌고 Start가 도는 간헐적문제가 발견된적이 있음)



오류를 피하는 확실한 방법은

작성한 코드가 어느 영역에서 동작하는건지 아는 것입니다.

작성한 코드가 클래스 참조인지, 변수 참조인지, 이벤트 등록인지, 이벤트 호출인지

위치를 분명히 해줄 수록 코드는 간단해지고 규칙이 생깁니다.



언젠가는 저 6개의 루틴을 자유롭게 돌아다니며,

Update의 굴레를 벗어나는 날이 오지 않을까요??