블로그 이미지
자신의 단점을 메꾸는 것을 단(鍛)이라 하고 자신의 강점을 갈고 닦는 것을 련(鍊)이라 하여, 두가지를 합친 것을 단련이라고 부른다. 붕대마음

카테고리

전체목록 (666)
참고사이트 (8)
Goal (4)
Travel (10)
My Life (104)
Game (35)
Game Review (7)
Game Plan (0)
Books (5)
English (1)
Optimizing (12)
Study (218)
유용한 것들_etc (44)
유용한 것들_func (20)
Unity (48)
Unreal (87)
작업장 (54)
RenderMonkey (6)
정리요망 (1)
따라잡기 시리즈 (0)
링크용 (0)
Total343,311
Today3
Yesterday91

unity의 awake

Unity/Unity Study / 2017.09.24 13:15

script 함수 실행 순서는 awake, onenable, start다. 

이건 알고있던 건데 작업을 하다가 자꾸 awake에 에러가 나서 에러를 찾다보니

하이라키에서 활성화 되어 있는오브젝트에 비활성화로 달려있는 컴포넌트였다.


여기에 붙어있는 컴포넌트의 내용은 아래와 같다.

public class TestAwake : MonoBehaviour 

{

    void Awake()    {        Debug.Log("Awake");    }

    void OnEnable() { Debug.Log("OnEnable"); }

    void Start () {    Debug.Log("Start"); }

    void Update () {  Debug.Log("Update"); }

}


똑같은 상태에서 TestAwake 컴포넌트의 active만 꺼 두면 어떻게 될까?

나의 예상과는 다르게 Awake는 무조건 호출이 된다.


Awake는 컴포넌트의 active 상태와 상관없이 호출이 되고 Start함수는 active 된 상태에서만 호출이 된다.

Awake 함수는 컴포넌트의 스크립트의 활성화 여부에 상관없이 컴포넌트의 오브젝트가 초기화 될 때 호출되기 때문이다.


그래서 위와 같이 컴포넌트의 오브젝트가 비활성화 되어 있으면 초기화가 안되어 컴포넌트 자체의 awake도 호출되지 않는다.





Reference Link

- MonoBehaviour.Awake()

-



'Unity > Unity Study' 카테고리의 다른 글

unity의 awake  (0) 2017.09.24
ExecuteInEditMode  (0) 2017.09.13
Inspector에서 AnimationCurve 버그  (0) 2017.07.21
unity에서 shader를 짤때..  (0) 2017.07.10
ARB_precision_hint_fastest  (0) 2017.07.10
The Magic Of Material Property Blocks  (0) 2017.06.23
Posted by 붕대마음
TAG ,

댓글을 달아 주세요

최근에 달린 댓글

최근에 받은 트랙백

글 보관함