Unity 스크립트 라이프사이클 이해하기
Unity의 스크립트는 특정 이벤트 함수에 따라 만들어진 순서에 따라 실행됩니다. 이 문서에서는 Unity의 이벤트 함수, 실행 순서 및 관련 예제에 대해 설명합니다.
스크립트 라이프사이클 개요
Unity에서 스크립트의 생명 주기 동안 여러 이벤트 함수가 특정 순서에 따라 호출됩니다. 아래는 주요 이벤트 함수들의 호출 순서입니다.
단계 | 설명 |
---|---|
씬 로드 | 씬이 시작될 때 각 게임 오브젝트에 대해 호출됩니다. |
Awake | 모든 초기화 작업에 유용하며, Start 함수보다 먼저 호출됩니다. |
OnEnable | 오브젝트가 활성화될 때 호출됩니다. |
Start | 첫 번째 프레임 업데이트 전에 호출됩니다. |
Update | 매 프레임마다 호출되어 게임 로직을 처리합니다. |
FixedUpdate | 물리 연산을 처리하며 일정 간격으로 호출됩니다. |
LateUpdate | Update가 완료된 후 호출되어 순서대로 후속 처리를 합니다. |
OnApplicationQuit | 애플리케이션이 종료될 때 호출됩니다. |
예제 코드
using UnityEngine;
public class ExampleScript : MonoBehaviour
{
void Awake()
{
Debug.Log("Awake 호출됨");
}
void Start()
{
Debug.Log("Start 호출됨");
}
void Update()
{
Debug.Log("Update 호출됨");
}
void OnApplicationQuit()
{
Debug.Log("애플리케이션 종료");
}
}
다양한 이벤트 함수 설명
1. Awake 및 OnEnable
- Awake: 스크립트가 첫 번째로 호출되는 함수입니다. 초기 설정을 담당합니다.
- OnEnable: 스크립트가 활성화될 때 호출됩니다.
2. Update, FixedUpdate, LateUpdate
- Update: 게임 루프의 각 프레임에서 호출되어 사용자 입력 처리, 애니메이션 등을 담당합니다.
- FixedUpdate: 물리 연산을 위한 주기적으로 호출됩니다.
- LateUpdate: Update가 완료된 후 호출되어 카메라 움직임 등 후속 처리를 합니다.
3. 종료 시 호출되는 함수
- OnDestroy: 오브젝트가 파괴될 때 호출됩니다.
- OnApplicationQuit: 애플리케이션이 종료될 때 호출됩니다.
코루틴 사용법
코루틴은 비동기적으로 실행할 수 있는 함수로, 특정 조건에서 중단하고 다시 시작할 수 있습니다. 다음은 코루틴 사용법입니다.
사용법 | 설명 |
---|---|
yield return null |
모든 Update 함수가 다음 프레임에 호출된 후 계속됩니다. |
yield return new WaitForSeconds(2) |
2초 뒤에 계속됩니다. |
yield return new WaitForFixedUpdate() |
모든 FixedUpdate가 완료된 후 계속됩니다. |
StartCoroutine(MyCoroutine()) |
다른 코루틴을 시작합니다. |
예제 코드
using UnityEngine;
using System.Collections;
public class CoroutineExample : MonoBehaviour
{
void Start()
{
StartCoroutine(MyCoroutine());
}
IEnumerator MyCoroutine()
{
Debug.Log("코루틴 시작");
yield return new WaitForSeconds(2);
Debug.Log("2초 후 계속");
}
}
정리
Unity의 스크립트 라이프사이클 및 이벤트 함수에 대한 이해는 게임 개발에 있어 필수적입니다. 각 함수에 대한 호출 시점을 파악하고 적절히 활용하면, 게임 로직을 보다 효율적으로 관리할 수 있습니다.
추가적인 질문이나 구현에 대해 궁금한 점이 있다면, 개발자 커뮤니티나 공식 문서를 참조하세요!