TIL(24-10-14) - Unity 기본 개념 및 생명주기(1)

임재훈·2024년 10월 14일

Unity

목록 보기
18/20

1. Unity 생명 주기(Lifecycle)

  • 게임 오브젝트가 생성되고 파괴될 때까지의 흐름을 관리한다.
  • 생명 주기 함수를 활용하여 원하는 시점에 코드를 실행할 수 있다.
  • 생명 주기 함수는 Monobehaviour를 상속받는 클래스에서 동작한다.
  • 생명 주기 함수의 예로는 Awake, OnEnable, Start, Update, FixedUpdate, OnDisable, OnDestroy 등이 있다.

2. Update 문 3가지(Regular, Fixed, Late)의 차이

  • 실행 순서가 다르다.(FixedUpdate -> Update -> LateUpdate)
  • FixedUpdate는 일정 시간(default: 0.02초)마다 호출된다. / 주로 물리 연산과 관련된 로직에 사용된다.
  • Update는 매 프레임마다 호출된다. / 주로 프레임 단위로 반복적인 동작을 처리할 때 사용된다.
  • LateUpdate는 모든 Update가 끝난 후 호출된다. / 주로 카메라 위치 조정 등 다른 오브젝트의 업데이트가 완료된 후 처리해야 하는 로직에 사용된다.

3. Start()와 Awake()의 차이

  • 실행 순서가 다르다.(Awake -> Start)
  • Awake는 인스턴스화 된 직후에 호출된다. / 스크립트가 비활성화 되어 있더라도 실행된다. / 주로 컴포넌트 초기화에 사용된다.
  • Start는 첫 번째 프레임 업데이트 전에 호출된다. / 주로 게임 시작 시 초기 설정에 사용된다.

4. OnEnable()과 OnDisable()의 차이

  • OnEnable은 오브젝트가 활성화 될 때마다 호출된다.
  • OnDisable은 오브젝트가 비활성화 될 때마다 호출된다.
  • 이 둘을 활용하여 게임 오브젝트의 활성화/비활성화 상태 전환 시점에서 처리해야 하는 로직을 사용할 수 있다.

5. Awake(), Start(), OnEnable() 호출 순서

  • 한 오브젝트 내에서는 Awake, OnEnable, Start 순으로 호출되지만, 여러 오브젝트 간의 Awake와 OnEnable의 호출 순서는 보장되지 않는다.
  • Ob1.Awake→Ob2.Awake→Ob1.OnEnable→Ob2.Enable→Ob1.Start→Ob2.Start (x)
    Ob1.Awake→Ob1.OnEnable→Ob2.Awake→Ob2.Enable→Ob1.Start→Ob2.Start (o)
profile
초심을 잃지 말자!

0개의 댓글