게임/유니티

유니티의 작동

CMS419 2021. 7. 5. 22:05

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