その先にあるもの…

OnEnable / OnDisable 본문

프로그래밍/Unity

OnEnable / OnDisable

specialJ 2014. 5. 22. 10:56

- 활성화, 비활성화
- 게임 오브젝트가 비활성화되면 GameObject.Find 및 GameObject.FindObjectWithTag 등의 함수로는 찾을 수 없게 됩니다.
  이는 유니티 내부에서 활성화된 게임 오브젝트만 목록으로 관리하기 때문입니다.
- 게임 오브젝트가 비활성화되면 컴포넌트에서 동작하던 코루틴 함수들은 모두 자동으로 종료됩니다. 
- 물체가 비활성화되면, 컴포넌트들의 실행은 중지되지만 데이터는 언제든지 바꿀 수 있습니다.
- Invoke와 Destroy의 시간 지연 명령은 게임 오브젝트가 비활성화되어도 중지되지 않습니다.


- 게임 오브젝트가 아닌 스크립트 컴포넌트를 활성화 비활성화하는 경우에도 동일하게 OnEnable/OnDisable 함수가 호출됩니다.
- 하지만 이상하게도 스크립트 컴포넌트를 비활성화하면 게임 오브젝트를 비활성화시키는 경우와 다르게 코루틴은 죽지않고 그대로 유지됩니다.
- 따라서 이 경우에는 특별히 OnDisable 함수에 StopCoroutine 함수를 명시해주어야 합니다.

void OnDisable()
{
StopCoroutine(state);
}


출처 : http://unitystudy.net/bbs/board.php?bo_table=dustin&wr_id=395

'프로그래밍 > Unity' 카테고리의 다른 글

NGUI Button Message  (0) 2014.05.23
Fatal error in gc Too Many heap sections  (0) 2014.05.23
NGUI Label Screen Position  (0) 2014.05.20
Awake  (0) 2014.04.28
GameObject.Find()  (0) 2014.04.24
Comments