생명주기(Life Cycle)
클래스를 상속받은 오브젝트가 씬에 있는 동안 일정한 흐름에 따라 함수를 호출하는데 이 패턴의 흐름이 생명주기이다.
그 중 중요흐름도이다.
Initialization
1. Awake
- 스크립트가 실행될 때 한번만 실행
- 오브젝트 비활성화시 호출되지 않지만 스트립트가 비활성화일경우 호출
- 코루틴으로 실행불가
- 게임의 상태나 변수초기화로 사용
- 오브젝트의 초기화나 프리팹의 인스턴스화가 모두 진행된 직후에 호출되기 때문에 Find함수 호출의 안전성 보장
2. OnEnable
- 객체가 활성화될때마다 호출
- 코루틴으로 실행불가
- 이벤트 연결 시 사용
3. Start
- 스크립트가 실행될 때 한 번만 실행
- 객체가 비활성되면 호출되지 않는다
- 코루틴으로 실행가능
Physics
1. FixedUpdate
- 고정 프레임 주기로 호출되는 함수
- 스크립트가 활성화되어 있어야 호출
2. OnTriggerXXX
- 두 오브젝트간의 충돌 체크를 하는 함수
- 물리연산을 계산하지 않고 통과
3. OnCollisionXXX
- 두 오브젝트간의 충돌 체크를 하는 함수
- 물리영향을 받아 Rigidbody 체크해야한다
4. Update
- 매프레임마다 호출되는 함수
- 최적화나 디바이스 성능에 따라 함수호출시간이 매번 달라짐
- 스크립트가 활성화되어있어야 호출
5. LateUpdate
- 모든 Update함수가 호출된 후 한번씩 호출
- 카메라 이동 로직에 주로 사용
- 스크립트가 활성화되어있어야 호출
Decommissioning
1. OnApplicationQuit
- 응용 프로그램 종료 전 모든 오브젝트에서 호출
2. OnDisable
- 객체가 비활성화될때마다 호출
- 이벤트 연결 종료시 사용
- 코루틴으로 실행 불가
3. OnDistroy
- 오브젝트 생존 기간의 마지막 프레임이 업데이트된후 실행
'Programming skills > Unity' 카테고리의 다른 글
[Unity] 람다식과 델리게이트(delegate) (0) | 2023.10.18 |
---|---|
[Unity]Awake 와 Start의 차이 (0) | 2023.10.12 |
유니티 오브젝트 생성시 하위 오브젝트로 생성하기 (0) | 2023.08.17 |
c# 싱글톤(Single ton) (0) | 2023.08.10 |
폴가이즈 베타 프로젝트 중 if문 이슈 해결 방법 (0) | 2023.06.26 |