-
MonoBehaviour
유니티의 모든 스크립트가 상속받는 클래스
Mono
- Net framework의 오픈 소스 개발 플랫폼.
- 크로스 플랫폼 (cross-flatform) 어플리케이션의 개발을 지원.
- C#과 CLI(Common Language Infrastructure)에 기반을 둠.
Life Cycle
작동하는 큰 틀이다.
Initialization -> Update -> Decommissioning
Initialization
- Awake
- 스크립트가 실행될 때 한 번만 호출
- OnEnable
- 스크리브가 활성화될 때마다 호출
- Start
- 스크립트의 인스턴스가 활성화되면 Update 함수가 호출되기 전에 한 번만 실행
- 스크립트가 활성화되어있어야 실행
- 다른 스크립트들의 Awake가 모두 실행된 이후에 실행
Update
- FixedUpdate
- 물리 엔진을 사용하는 경우, 일정 시간 간격으로 연산할 때 사용
- FixedUpdate 함수 직후에 모든 물리적 특성 계산 및 업데이트
- Update
- 매 프레임마다 한 번씩 호출
- 주요 작업 함수
- LateUpdate
- 모든 Update 함수가 호출 된 뒤, 한 번씩 호출
- 주로 3인칭 카메라 이동 로직에 주로 사용된다.
Decommissioning
- OnDisable
- 스크립트가 비활성화 될 때 호출
- 이벤트 연결 종료 시 사용된다
- OnDestroy
- 오브젝트 존재의 마지막 프레임에 대해 모든 프레임 업데이트를 마친 후 호출
- Object.Destroy 또는 씬 종료에 대한 응답
- 마지막 프레임이 끝나면 메모리에서 제거
- OnApplicationQuit
- 응용프로그램 종료 전, 모든 게임 오브젝트에서 호출
자세한 과정
Initialization -> Update(+Input Events) -> Rendering -> Decommissioning