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>();
    ...
}

 

+ Recent posts