Unity의 C# 스크립트에서 Start()와 Awake() 메서드는 둘 다 초기화에 사용되지만, 호출 시점과 용도에 차이가 있다.
주요 차이점은 다음과 같다.
- 실행 순서
- Awake() : 스크립트 인스턴스가 로딩될 때 호출된다. 모든 오브젝트의 Awake()가 호출되면 아무 Start()메서드가 호출된다.
- Start() : 첫 프레임 업데이트 직전에 호출된다.
- 호출 시점
- Awake() : 오브젝트가 인스턴스화될 때 즉시 호출된다.스크립트가 비활성화 상태여도 호출된다.
- Start() : 스크립트가 활성화된 후 첫 프레임 업데이트 직전에 호출된다. 스크립트가 비활성화 상태면 호출되지 않는다.
- 호출 횟수
- Awake() : 오브젝트의 생명주기 동안 한 번만 호출된다.
- Start() : 스크립트가 비활성화 되었다가 다시 활성화될 때마다 호출될 수 있다.
- 주요 용도
- Awake() : 다른 스크립트의 참조를 설정하거나, 초기 설정을 수행하는데 사용된다. 특히 다른 스크립트의 Awake()에 의존하지 않는 초기화에 적합하다.
- Start() : 모든 Awake() 호출이 완료된 후의 초기화에 사용된다. 다른 스크립트 Awake()에 의존적인 초기화나, 게임 시작 시 한 번만 실행되어야 하는 로직에 적합하다.
- 코루틴
- Awake() : 코루틴을 시작할 수 없다.
- Start() : 코루틴을 시작할 수 있다.
- 코루틴 : 코루틴(Coroutine)은 Unity에서 제공하는 강력한 기능으로, 시간이 걸리는 작업을 여러 프레임에 걸쳐 실행할 수 있게 해주는 특별한 종류의 함수다.
'Unity' 카테고리의 다른 글
Unity 무료 에셋 얻는방법 (0) | 2024.08.16 |
---|---|
Unity 1주차 수업 1-3, 1-4내용 정리 (0) | 2024.08.13 |
Unity 1주차 수업 1-1, 1-2 내용 정리 (1) | 2024.08.13 |
Unity로 만들어진 게임, 프로젝트, 서비스 조사하기 (0) | 2024.08.13 |
내일배움캠프 Unity (0) | 2024.08.12 |