본문 바로가기
Unity/스크립트

void Awake()

by 세에레_freewing 2023. 3. 14.
반응형

Start()와 비슷한데 Start()보다도 먼저 실행되는 시작 함수다.
Start 함수의 이전 및 프리팹의 인스턴스화 직후에 호출
생성 하자마자 들어가는 1회 동작 함수
Start 메세지보다 더 빨리 호출되므로 다른 스크립트들의 Start보다 더 빨리 실행되야 하는 내용이 있으면 Awake에 구현하면 된다.
오브젝트가 최초 생성될 때 실행 순서
Awake() 👉 OnEnable() 👉 Start()
Start 와의 차이점
둘 다 오브젝트가 생성될 때(스크립트가 최초로 실행될 때) 최초 1회 실행된다는 점에서 같다.
그러나
Awake()
코루틴 실행이 안된다. Start()보다 먼저 실행된다.
스크립트(컴포넌트)가 비활성화인 상태에서도 실행된다. 꺼져있어도 실행 됨. 오브젝트가 활성화되있기만 하면 된다.
오브젝트는 SetActive(true) 해야 하고 & 스크립트 this.enabled = false; 인 상태에선 호출된다는 얘기!
오브젝트 자체가 비활이면 Awake()도 실행 안된다.
Start()
코루틴 실행이 가능하다.
스크립트(컴포넌트)가 활성화 되어있는 상태에서만 실행된다.
이말은 즉, Awake는 오브젝트가 활성화되자마자 실행되고, 뒤이어 OnEnable과 Start는 스크립트(컴포넌트)가 활성화 되야 실행된다는 얘기다.

반응형