본문 바로가기
Game/C#

[Unity, C#] MonoBehaviour 클래스의 라이프사이클 메서드 호출 순서와 각각의 역할

by 코딩여걸 2023. 4. 7.
728x90

< MonoBehaviour 클래스 >

  • Unity에서 주로 사용하는 클래스 중 하나
  • 게임 오브젝트에 부착된 스크립트의 동작을 제어
  • 이 클래스에는 게임 오브젝트의 생명 주기와 관련된 라이프사이클 메서드가 포함되어 있다.
  • 이 메서드들은 Unity 엔진에 의해 자동으로 호출된다.

 

< 각각의 역할과 호출 순서 >

1. Awake(): 게임 오브젝트가 인스턴스화되면 가장 먼저 호출되는 메서드

  • 스크립트가 시작되기 전에 실행되기 때문에 다른 모든 라이프사이클 메서드보다 먼저 호출된다.
  • 게임 오브젝트에 필요한 초기화를 수행한다.

 

2. OnEnable(): 게임 오브젝트가 활성화될 때 호출

  • Awake() 이후에 호출되며, 스크립트가 비활성화된 후에 다시 활성화될 때마다 호출된다.
  • 스크립트가 활성화되어 있을 때 수행해야 하는 작업을 수행한다.

 

3. Start(): 게임 오브젝트가 활성화된 후, Update() 메서드가 호출되기 전에 한 번 호출

  • 스크립트가 초기화된 후 필요한 작업을 수행한다.

 

4. FixedUpdate(): 물리 업데이트 시간 간격마다 호출

  • 물리 엔진에 의해 호출되며, 일정한 시간 간격으로 실행된다.
  • 주로 물리 연산을 수행한다.

5. Update(): 매 프레임마다 호출

  • 게임 로직을 수행한다.
  • 일반적으로 게임 오브젝트의 위치, 회전, 크기 등을 조정한다.

6. LateUpdate(): Update() 메서드가 실행된 후 호출

  • Update() 메서드 이후에 실행되므로, Update() 메서드에서 수행한 변경 작업이 적용된 후에 실행된다.
  • 주로 카메라의 위치나 오브젝트의 위치를 조정하는 데 사용된다.

 

7. OnDisable(): 게임 오브젝트가 비활성화될 때 호출

  • 해당 스크립트가 비활성화될 때 수행해야 하는 작업을 수행한다.

 

8. OnDestroy(): 게임 오브젝트가 파괴될 때 호출

 

🚨 주의할 점

  • MonoBehaviour 클래스의 라이프사이클 메서드는 스크립트 인스턴스마다 따로 호출된다.
    • 즉, 다른 스크립트나 오브젝트의 영향을 받지 않고 자신의 인스턴스에 대해서만 호출된다.
728x90

'Game > C#' 카테고리의 다른 글

[C#] [SerializeField]  (0) 2022.01.25
[C#] 이벤트 함수의 호출 순서  (0) 2022.01.18
[C#] 유니티 주요 이벤트 함수  (0) 2022.01.18

댓글