Script Life Cycle
- 게임 오브젝트의 생명 주기 동안 호출되는 특정한 메서드들의 순서와 타이밍
- 게임 오브젝트의 생성, 초기화, 업데이트, 파괴 등과 관련된 작업을 수행
public class LifeCycle : MonoBehaviour
{
void Awake()
{
Debug.Log("플레이어 데이터가 준비되었습니다.");
}
void OnEnable()
{
Debug.Log("플레이어가 로그인했습니다");
}
void Start()
{
Debug.Log("사냥 장비를 챙겼습니다.");
}
void FixedUpdate()
{
Debug.Log("이동 ~.~");
}
void Update()
{
Debug.Log("몬스터 사냥!!!");
}
void LateUpdate()
{
Debug.Log("경험치 획득");
}
void OnDisable()
{
Debug.Log("플레이어가 로그아웃했습니다.");
}
void OnDestroy()
{
Debug.Log("플레이어 데이터를 해제하였습니다.");
}
}
1. 초기화
1) Awake
- 게임 오브젝트가 생성될 때 호출되는 메서드
- 주로 초기화 작업이 수행됨
2) Start
- 게임 오브젝트가 활성화되어 게임 루프가 시작될 때 호출되는 메서드
- 초기 설정 및 시작 작업을 수행
1-2. 활성화
3) OnEnable
- 게임 오브젝트가 활성화될 때 호출되는 메서드
- Awake나 Start처럼 최초 1회 실행이 아니라, 오브젝트를 켜고 끌때마다 호출된다.
2. 물리
4) FixedUpdate
- 물리 엔진 업데이트 시 호출되는 메서드
- 물리적인 시뮬레이션에 관련된 작업을 처리할 때 사용
- 고정된 실행 주기로 CPU를 많이 사용
- 물리 연산과 관련된 연산만 주로 넣는다.
- 1초에 약 50회 업데이트 됨
3. 게임 로직
5) Update
- 매 프레임마다 호출되는 메서드
- 게임 로직의 주요 업데이트가 이루어짐
- FixedUpdate와 달리 컴퓨터 사양에 따라 실행 주기가 떨어질 수 있다.
6) LateUpdate
- 모든 업데이트가 끝난 후 실행
- 다른 오브젝트의 업데이트가 완료된 후에 작업을 수행하는 데 유용하다
- 캐릭터를 따라가는 카메라, 로직의 후처리 등을 주로 담음
3-4. 비활성화
7) OnDisable
- 게임 오브젝트가 비활성화될 때 호출되는 메서드
4. 해체
8) OnDestroy
- 게임 오브젝트가 파괴될 때 호출되는 메서드
- 자원 정리 및 해제 작업이 수행된다.
