OnEnable 이벤트의 작동방식
OnEnable 함수의 정확한 작동방식은 다음 중 무엇일까?
1. 매 Update에서 플래그를 체크하여 이벤트 발생
2. 매 FixedUpdate에서 플래그를 체크하여 이벤트 발생
3. 프레임에 종속되지 않고 즉시 발생
테스트 작성
테스트해보기 위해 한 프레임 안에서 오브젝트 껐다 켜는 테스트 3번.
[Button]
public void Test()
{
gameObject.SetActive(false);
gameObject.SetActive(true);
gameObject.SetActive(false);
gameObject.SetActive(true);
gameObject.SetActive(false);
gameObject.SetActive(true);
}
void OnEnable()
{
Debug.Log("오브젝트 켜짐");
}
void OnDisable()
{
Debug.Log("오브젝트 꺼짐");
}
private void Update()
{
Debug.Log("Update");
}
결과
결론적으로 정답은
3. 프레임에 종속되지 않고 즉시 발생 이다.
유니티 기본 Mono 이벤트 함수 중 OnEnable과 OnDisable은
유니티 라이프 사이클 공식문서를 찾아보면 Update루프 바깥쪽에 그려진 것을 확인할 수 있다.
'🌍 Unity > 유니티 엔진 동작 관련' 카테고리의 다른 글
Unity scale, position 상대값 더하기 (0) | 2021.09.22 |
---|---|
Unity Instantiate / AddComponent 의 Awake / OnEnable 호출시점 (0) | 2021.08.29 |
unity unable to install additional sdk platform (0) | 2020.08.26 |
Unity Coroutine override 유니티 코루틴 오버라이드 (0) | 2020.08.14 |
Unity CharacterController Move / SimpleMove 차이 (0) | 2020.07.31 |