그동안 언리얼 엔진과 C++을 통해 객체 지향의 기초를 다졌다면, 오늘부터는 유니티 엔진과 C#을 활용한 게임 개발 공부를 시작합니다. 유니티 개발의 가장 기본이 되는 유니티 생명주기(Unity LifeCycle)에 대해 정리해 보겠습니다.
유니티의 모든 스크립트는 MonoBehaviour 클래스를 상속받으며, 특정 시점에 자동으로 호출되는 일련의 함수들을 가집니다. 이를 생명주기라고 부릅니다. 이 흐름을 정확히 알아야 버그 없는 게임 로직을 설계할 수 있습니다.
스크립트 객체가 생성될 때 가장 먼저 호출되는 함수입니다.
오브젝트가 활성화될 때마다 호출되는 함수입니다.
첫 번째 프레임 업데이트가 시작되기 직전에 호출됩니다.
프레임 속도와 상관없이 고정된 시간 간격으로 호출됩니다.
매 프레임마다 호출되는 가장 일반적인 함수입니다.
모든 Update 함수가 실행된 후 마지막으로 호출됩니다.
오브젝트나 스크립트가 비활성화될 때 호출됩니다.
using UnityEngine;
public class LifeCycleTest : MonoBehaviour
{
private void Awake()
{
Debug.Log("Awake: 초기화 시작");
}
private void OnEnable()
{
Debug.Log("OnEnable: 오브젝트 활성화");
}
private void Start()
{
Debug.Log("Start: 게임 로직 준비 완료");
}
private void FixedUpdate()
{
// 물리 연산 (기본 0.02초 간격)
}
private void Update()
{
// 일반 로직 처리
if (Input.GetKeyDown(KeyCode.Space))
{
Debug.Log("Update: 점프 입력 확인");
}
}
private void LateUpdate()
{
// 카메라 추적 등 최종 처리
}
private void OnDisable()
{
Debug.Log("OnDisable: 오브젝트 비활성화");
}
}