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

void Start()

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

컴포넌트 초기화 부분
스크립트가 붙은 해당 오브젝트가 처음으로 생성 되는 그 순간 and 오브젝트 활성화 상태일 때 최초로 1 회 실행된다.
유니티가 Start 메세지를 브로드캐스팅 하여 뿌려 온 컴포넌트들을 각자 구현된 Start 내용대로 초기화 시킨다.
유니티는 게임 시작할때 Start 메세지를 뿌린다.
Awake() 후 + Update() 전에 1회 동작하는 이벤트 함수다.
오브젝트가 최초 생성될 때 실행 순서
Awake() 👉 OnEnable() 👉 Start()
Awake 와의 차이점
둘 다 오브젝트가 생성될 때(스크립트가 최초로 실행될 때) 최초 1회 실행된다는 점에서 같다.
그러나
Awake()
코루틴 실행이 안된다. Start()보다 먼저 실행된다.
스크립트(컴포넌트)가 비활성화인 상태에서도 실행된다. 꺼져있어도 실행 됨. 오브젝트가 활성화되있기만 하면 된다.
오브젝트는 SetActive(true) 해야 하고 & 스크립트 this.enabled = false; 인 상태에선 호출된다는 얘기!
오브젝트 자체가 비활이면 Awake()도 실행 안된다.
Start()
코루틴 실행이 가능하다.
스크립트(컴포넌트)가 활성화 되어있는 상태에서만 실행된다.
OnEnable 와의 차이점
OnEnable
오브젝트가 ‘활성화’될 때마다 실행된다.(꺼졌다가 켜졌을 때 OR 오브젝트가 최초 생성될 때) Start()보다 먼저 실행된다.
Start()
오브젝트가 최초 생성될 때 1회 실행
이말은 즉, Awake는 오브젝트가 활성화되자마자 실행되고, 뒤이어 OnEnable과 Start는 스크립트(컴포넌트)가 활성화 되야 실행된다는 얘기다.

반응형