TIL

2024/03/02 TIL (MonoBehaviour의 주요 이벤트 함수)

미역제자 2024. 3. 11. 21:17

4가지로 분리해서 생각할 수 있다.

  1. 초기화 이벤트
  2. 물리 이벤트
  3. 일반 연산 이벤트
  4. 랜더링 이벤트

1. 초기화 이벤트

  • 첫번째 씬 로드: 씬이 시작할 때 (씬에서 오브젝트마다 한번) 호출된다.
    • Awake: 이 함수는 항상 Start 함수 전에 호출되며 프리팹이 인스턴스화 된 직후에 호출된다. 
    • OnEnable: 오브젝트가 활성화 된 경우에, 활성화 된 직후 이 함수를 호출한다.
  • 첫 번째 프레임 업데이트 전에
    • Start: 스크립트 인스턴스가 활성화된 경우, 첫 번째 프레임 업데이트 전에 호출된다.

2. 물리 이벤트

  • FixedUpdate: Fixed Timestep에 설정된 값에 따라 일정한 간격으로 호출된다.
    • 모든 물리 계산 및 업데이트는 FixedUpdate 이후 발생한다. 
    • FixedUpdate의 움직임 계산을 적용할 때 Time.deltaTime을 곱할 필요가 없다.
    • 주로 Rigidbody 오브젝트를 조정할 때 사용됨.
  • OnTtigger~: 물체의 충돌을 감지하는 함수 중 하나이다. collider의 IsTrigger를 킨 경우 사용 가능하다.
    • 특정 collider의 범위 안에 들어온 물체를 감지할 수 있다.
    • 충돌한 두 물체 중 하나에는 rigidbody 컴포넌트가 있어야 한다.
  • OnCollision~: 물체의 충돌을 감지하는 함수 중 하나이다. collider의 IsTrigger를 끈 경우 사용이 가능하다.
    • 두 물체의 collider가 충돌했을 때 충돌한 물체를 감지할 수 있다.
    • 충돌한 두 물체 중 하나에는 rigidbody 컴포넌트가 있어야 한다.

3. 일반 연산 업데이트

  • Update: 스크립트가 활성화 되어있는 상태일 때, 매 프레임마다 호출된다.
    • 물리 효과가 적용되지 않은 오브젝트의 움직임이나 단순한 타이머, 키 입력을 받을 때 사용된다.
    • 프레임 업데이트를 위한 주요 작업 함수이다.
  • Coroutine
  • LateUpdate: Update가 끝난 후 프레임당 한번 호출된다.
    • 일반적으로 다음의 3인칭 카메라에 사용한다.
      카메라가 캐릭터의 포지션을 추적하기 전에 캐릭터가 완전히 움직였는지 확인할 수 있다.

4. 랜더링 이벤트

  • Scene Rendering
    • OnPreCull:카메라가 씬을 컬링하기 직전에 호출된다.(컬링은 어떤 오브젝트를 카메라에 표시할지 결정함)
    • OnWillRenderObject: 오브젝트가 표시되면 각 카메라에 한 번 호출된다.
    • OnBecameVisible: 오브젝트가 카메라에 표시될 때 호출된다.
    • OnBecameInvisible: 오브젝트가 카메라에 표시되지 않을 때 호출된다.
    • OnPreRender: 카메라가 씬 렌더링을 시작하기 전에 호출된다.
    • OnPostRender: 카메라가 씬 렌더링을 마친 후 호출된다.
    • OnRenderImage: 씬 렌더링이 완료된 후 호출되어 이미지의 포스트 프로세싱이 가능하다.
  • Gizmo Rendering
    • OnDrawGizmos: 시각화 목적으로 씬 뷰에 기즈모를 그릴 때 사용된다.
  • GUI Rendering
    • OnGUI: GUI이벤트에 따라 프레임당 여러 번 호출된다. 레이아웃 및 리페인트 이번트는 우선 처리되며 각 입력 이벤트에 대해 레이아웃 및 키보드/마우스 이벤트가 다음으로 처리된다.

'TIL' 카테고리의 다른 글

2024/03/19 TIL (애자일과 워터폴 접근 방식)  (0) 2024.03.19
2024/02/25 TIL (MVC모델)  (0) 2024.02.25
2024/02/25 (Draw Call과 Batches)  (0) 2024.02.25
2024/02/25 TIL (Light Probe)  (0) 2024.02.25
2024/02/25 TIL (Localization 사용법)  (0) 2024.02.25