
본격적으로 Unity 입문에 들어가기전 기본적인 내용이지만 자세히는 몰랐던 것인데
확실히 알고가야 될 것 같아서 정리를 해봤다.
Unity에서 게임 오브젝트와 스크립트가 실행되는 순서를 정의
주요 단계
중요성
각 단계가 명확히 구분되어 있어, 적절한 함수에 코드를 배치하면 효율적인 게임 로직을 구현 가능
초기화 작업에 사용
항상 Start 함수 전에 호출되며 프리팹이 인스턴스화 된 직후에 호출
게임 오브젝트가 시작하는 동안 비활성 상태인 경우 Awake 함수는 활성화될 때까지 호출되지 않음
스크립트 인스턴스가 활성화된 경우에만 첫 번째 프레임 업데이트 전에 호출
스크립트 생성 후 들어가면 기본적으로 생성 되있고, 친절하게 주석으로 설명을 써놨다.

프레임당 한 번 호출. 프레임 업데이트를 위한 주요 작업 함수
주로 입력 처리와 게임 로직에 사용
이녀석도 마찬가지인데 주석으로 써있다. 가장 많이 쓰는 함수라 그런 건가 싶다.

고정 프레임마다 호출되는 함수 (호출되는 간격은 일정)
모든 물리 계산 및 업데이트는 FixedUpdate 후 즉시 발생
Rigidbody를 이용한 이동 같이 물리적인 움직임을 구현하는데 사용
종종 Update 보다 더 자주 호출됨 (프레임 속도에 따라)
Update 가 끝난 후 프레임당 한 번 호출
Update 에서 수행된 모든 계산은 LateUpdate 가 시작할 때 완료
카메라 추적 등에 사용
void Awake()
{
// Start 함수 전에 호출, 초기화 작업에 사용
Debug.Log("Awake 호출 " + Time.deltaTime);
}
void Start()
{
// 첫 번째 프레임 업데이트 전에 호출
Debug.Log("Start 호출 " + Time.deltaTime);
}
void Update()
{
// 입력 처리와 게임 로직에 사용
Debug.Log("Update 호출 " + Time.deltaTime);
}
void FixedUpdate()
{
// Rigidbody를 이용한 이동 같이 물리적인 움직임을 구현하는데 사용
Debug.Log("FixedUpdate 호출 " + Time.deltaTime);
}
void LateUpdate()
{
// 카메라 추적 등에 사용
Debug.Log("LateUpdate 호출 " + Time.deltaTime);
}
이렇게 작성하고 Debug.Log가 찍히는 걸 보려고 했다.

엄청난 Log에 당황한 마우스

아무튼 찍힌 Log를 보면
Awake > Start > FixedUpdate > Update > LateUpdate 순으로
호출되는 것을 확인 할 수 있었고,
FixedUpdate는 일정한 간격으로 호출 된다는 것을 확인 할 수 있었다.
솔직히 Awake, Start, Update는 1주차 때 봐서 알고 있는 녀석들인데,
뒤에 두 놈은 오늘 처음 봤다. 자주 사용하는지는 모르겠지만, 주요 단계라고
되있는걸 보면 아무튼 중요한 놈들 인것 같아서 같이 정리해봤다.