만재송
[Cocos Creator] Enabled 에 관한 고찰 본문
Cocos Creator 에서 Enabled 란
Cocos Creator API 레퍼런스에서 enabled 는 아래와 같이 설명되어 있다.
Boolean indicates whether this component is enabled or not.
|
해당 컴포넌트의 사용가능 여부를 Boolean 값을 통해서 나타낸다. Sprite 컴포넌트 같은 경우는 화면에 보이지 않게 할 수 있고, Collider 컴포넌트 같은 경우는 충돌을 무시 할 수도 있다. 그중 가장좋은 기능으로는 생명주기중 update 콜백함수의 호출을 중단해주는 순기능을 가지고 있다. 모든 컴포넌트는 생명주기 콜백함수를 가지고 있는데 이것이 무엇인지 먼저 확인해보고 enabled 사용방법에 대해 알아보자.
생명주기
Cocos Creator 의 모든 컴포넌트는 7개의 생명주기 콜백함수를 가지고있다.
- onLoad: 해당 노드가 활성화 될 때 최초1번 실행되는 함수이다.
- start: 노드트리에 있는 모든 노드들이 활성화 되고 실행되는 함수이다.
- update: 매 프레임마다 호출되는 함수이다.
- lateUpdate: 매 프레임마다 update 다음으로 호출되는 함수이다.
- onEnable: 해당 노드가 활성화 될 때 실행되는 함수이다.
- onDisable: 해당 노드가 비활성화 될 때 실행되는 함수이다.
- onDestroy: 해당 노드가 삭제될 때 실행되는 함수이다.
다음으로 코드를 작성하자.
이 예제의 확인 요소는 과연 어디까지 생명주기 콜백함수를 호출중단 하는가이다. 해당 코드를 Sprite 노드에 추가하고 코드를 실행해보자.
소름이다... start 는 물론, onEnable, update, lateUpdate 모두 실행이 안되는 모습이다. update 만 끄고 싶은데 필요한 start 와 onEnable 까지 실행이 되지않는다. 그럼 onDisable 과 onDestroy 도 실행이 안될까? 버튼을 클릭하여 Sprite 노드를 삭제시켜보자.
onDisable 은 호출이 되지 않지만, onDestroy 는 호출된다. 즉, onDestroy 빼고는 전부 호출이 되지 않는다. 이렇듯 enabled 를 사용할때는 생명주기를 잘생각하고 사용하기를 바란다.
'프로그래밍 > COCOS Creator' 카테고리의 다른 글
[Cocos Creator] Spine 정복하기(2) - Animation (1) | 2018.12.06 |
---|---|
[Cocos Creator] Spine 정복하기(1) - 기본 프로퍼티 (0) | 2018.12.06 |
[Cocos Creator] Physics Manager 정복하기(4) - Collider (0) | 2018.07.26 |
[Cocos Creator] Physics Manager 정복하기(3) - RigidBody (0) | 2018.07.26 |
[Cocos Creator] Physics Manager 정복하기(2) - 메서드 (0) | 2018.07.26 |