안녕하세요 연꿈술사입니다.
오늘은 유니티 LifeCycle 함수에 대해 알아보겠습니다.
Unity의 LifeCycle(생명 주기)은 스크립트의 다양한 이벤트들이 어떤 순서로 실행되는지에 대한 규칙을 말합니다. 주로 이는 MonoBehaviour 클래스에서 상속된 클래스에서 발생하는데, 이는 Unity 엔진에 의해 자동으로 호출되는 특별한 함수들이 포함되어 있습니다. 이러한 함수들은 개발자가 스크립트에 정의한 특정한 행동이나 반응을 수행하는 데 사용됩니다.
Unity의 LifeCycle 순서에 대해 궁금하시다면 Unity3D 사이트에서 확인하실 수 있는데요,
https://docs.unity3d.com/kr/2021.3/Manual/ExecutionOrder.html
이벤트 함수의 실행 순서 - Unity 매뉴얼
Unity 스크립트를 실행하면 사전에 지정한 순서대로 여러 개의 이벤트 함수가 실행됩니다. 이 페이지에서는 이러한 이벤트 함수를 소개하고 실행 시퀀스에 어떻게 포함되는지 설명합니다.
docs.unity3d.com
여기서 확인해보시면 과정을 자세하게 보실 수 있습니다.
하지만 우리는 보통 이 전부를 사용하여 게임을 만들지는 않습니다.
이 중에서 가장 자주 쓰이고 대표적으로 사용하는 것들에 대해 알아보겠습니다.
1. Awake() : 스크립트 인스턴스가 로딩될 때 호출됩니다. 이는 게임 오브젝트가 생성되는 시점에 일어나며, 게임 시작 전에
설정값을 초기화하는데 유용하게 사용합니다.
2. OnEnable() : 오브젝트가 활성화되거나 스크립트가 활성화될 때 호출합니다.
3. Start() : 첫 프레임 업데이트 이전에, Awake() , OnEnable() 이후에 호출되는 함수입니다. Start는 한 번만 호출되며, 일반적으로 시작 전에 필요한 작업을 수행하는데 사용됩니다.
4. FixedUpdate() : 매 물리 스텝마다 호출되는 함수입니다. 물리 관련 코드(Rigidbody의 움직임, 이동 관련 물리연산)를 다루는데 적합합니다. 하지만 초당 호출되는 횟수가 적어 자주 인풋을 받는 연산에는 적합하지 않습니다.
5. Update() : 매 프레임마다 호출되며, 게임 로직의 대부분을 다루는 데 사용됩니다. 하지만 프레임마다 호출되는 함수이므로 너무 무분별하게 사용하면 느려질 수 있습니다.
6. LateUpdate() : 모든 Update() 함수 호출 이후에 호출됩니다. 일반적으로는 Update에서 변경된 변환값에 대한 후처리에
사용되는 편입니다.
7. OnDisable() : 스크립트가 게임 오브젝트가 비활성화될 때 호출되는 함수입니다.
8. OnDestroy() : MonoBehaviour 오브젝트가 파괴될 때 호출되며, 리소스를 제대로 정리하는데 사용됩니다.
하지만 우리가 스크립트를 짤 때 이런 것들을 모두 사용할 필요는 없습니다. 필요에 따라 생략할 수 있으니 사용하지
않는다면 스크립트에서 지워주시는게 좋습니다. 하지만 위 링크의 순서를 보셨듯이 호출되는 순서는 고정되어 있습니다.
이러한 생명주기를 이해하고 있어야 올바르고 정확하게 활용할 수 있고, 이는 더욱 효과적인 코딩을 할 수 있게 만듭니다.
오늘은 Unity LifeCycle(생명주기)에 대해 알아보았습니다.
다양한 유니티 관련 정보들을 올려두고 있으니 확인해보시기 바랍니다.
연꿈술사였습니다. 감사합니다.
'Unity 3D' 카테고리의 다른 글
Unity 3D 엔진 기초 (4) 접근제한자, SerializeField (0) | 2023.08.06 |
---|---|
Unity 3D 엔진 기초 (3) deltaTime, 플레이어 이동 구현 (0) | 2023.08.05 |
Unity C# 문법 (6) Vector (0) | 2023.08.03 |
Unity C# 문법 (5) 객체지향 언어 (0) | 2023.08.02 |
Unity C# 문법 (4) 함수, 지역변수, 전역변수 (0) | 2023.08.01 |
댓글