ANR은 그려지는 UI 응답을 기준으로 측정된다.
하지만 유니티 이벤트 함수 호출 순서를 보면 Start, Awake 모두 렌더링 이전에 일어나는데
Awake -> Start로 옮긴다면 ANR이 감소할까? 라는 의문이 들었음.
여기서 핵심적인 내용은 Awake에 작성된 함수는 모두 호출된다는 것, Start는 활성화 시 호출된다는 것.
따라서 게임이 시작될 때 Awake -> Start로 이동하는 것은 게임 시작지점의 부하를 줄일 수 있게된다.
Awake에서 아래와 같이 초기화를 많이 하는데, Start나 혹은 Enable 이벤트가 있어 미리 초기화가 필요하다면,
아래와 같이 변경하여 초반 부하를 줄이도록 하자.
void Awake() {
rectTf = GetComponent<RectTransform>();
...
}
void Enable(){ // or Start.
rectTf ??= GetComponent<RectTransform>();
...
}