Unity 생명 주기

Minsang Kim·2023년 11월 15일
0

오늘으 질문

Unity의 생명 주기에 대해서 설명해주세요.

오늘으 답변

Unity에서 사용된 스크립트에서 MonoBehavior 클래스를 상속받아 만들어진 클래스는 Scene에 있는 동안 자동으로 호출되는 메소드들이 있습니다. 이 메소드들의 호출 주기를 Unity의 생명 주기라고 합니다. 대표적으로 Awake, Start, Update가 있고, 충돌을 담당하는 Trigger와 Collision 메소드들도 유니티의 생명 주기에 포함된 메소드입니다. 따라서 프로젝트를 최적화하기 위해서는 사용하지 않는 메소드들은 지워주는 것이 좋습니다.

+ TMI

  • MonoBehaviour 클래스를 상속받아 사용할 수 있는 Unity 메소드들이다.

  • 유니티는 Broadcasting 방식을 사용해 모든 게임 오브젝트에 메세지를 보내 MonoBehaviour 클래스의 메소드를 실행시킨다.

  • 대략적인 호출 순서
    Awake -> OnEnable -> Start
    -> FixedUpdate -> OnTriggerㅁㅁㅁ -> OnCollisionㅁㅁㅁ
    -> Update -> LateUpdate -> OnDisable -> OnDestroy

Awake vs OnEnable vs Start

  • Awake는 스크립트가 실행될 때 1번만 호출. 오브젝트 비활성화 상태에서는 호출되지 않고, 스크립트가 비활성화 상태에서는 호출된다. 게임의 상태 또는 변수 초기화로 사용.
  • OnEnable은 오브젝트 또는 스크립트가 활성화될 때마다 호출. 이벤트 연결시 사용.
  • Start는 스크립트가 활성화될 때 1번만 호출. 오브젝트나 스크립트가 비활성화 상태일 경우 호출되지 않음.

FixedUpdate vs Update vs LateUpdate

  • FixedUpdate는 규칙적으로 호출. 이 메소드 이후에 물리 계산.
  • Update는 대부분의 기능 구현
  • 모든 업데이트 호출된 이후에 호출. 일반적으로 카메라 이동 로직에 사용.

OnDisable

  • 오브젝트 또는 스크립트가 비활성화될 때마다 호출. 이벤트 연결 종료시 사용.
profile
게임만 하다가 개발자로

0개의 댓글