'start'에 해당되는 글 1건

  1. 2018.04.20 [유니티] Awake()와 OnEnable() Start() Update()

http://kimseunghyun76.tistory.com/194

http://programmingsource.tistory.com/18 


유니티에서도 안드로이드와 같이 생명 주기가 존재한다.


생명 주기(Life Cycle)이란, 유니티 내부에서 알아서 프로젝트 시작부터 종료까지 진행하는 흐름이다.


즉, 사용자가 직접 만들지 않아도 자동으로 호출되는 메소드가 존재한다.


예를 들면 Awake()와 Start() Update() 등등... 이 함수의 호출 흐름을 말한다.


먼저, 4가지 함수만 알아보자.

 

호출 순서


1. Awake() 

 

- 스크립트가 실행될 때 단 한번만 호출된다.

- 모든 오브젝트가 초기화된 후에 호출되기 때문에 GameObject.Find, GameObject.FindWithTag 등의 명령어들을 

   안전하게 사용할 수 있다.

- Awake 함수는 항상 Start() 함수 이전에 호출되므로 초기화 순서를 정할 수 있게 된다.

- 코루틴(Coroutine) 사용이 불가능하다.


2. OnEnable()


- 인스펙터뷰에서 게임오브젝트를 활성화/비활성화를 체크한다. 즉, 체크(활성화) 되었을 때 호출된다.

- 만약, 게임오브젝트를 껐다가 다시 켜면, Start()는 불리지 않으므로 작동이 되지 않는다.

- 활성화/비활성화를 사용하고자할 때, 이 함수에 활성화되었을 때 일어날 코드를 넣는다.


3. Start()


- Update() 함수가 호출되기 전에 한번만 호출된다.

- 다른 스크립트의 모든 Awake()가 실행이 끝난 이후에 실행된다.

- 스크립트가 활성화되어 있어야만 호출되어 실행된다.


4. Update()


- 매 프레임마다 호출되는 함수이며, 게임 로직에 핵심적으로 사용된다.

- 스크립트가 활성화 되어있어야 사용이 가능하다.

- 일시적으로 사용하지 않으면 불필요하게 성능저하 발생 가능성이 커진다.(매 프레임 반복 실행이므로 1초에 수십번..)



Posted by sungho88
,