업데이트 대 FixUpdate 대 LateUpdate
Unity API의 중요한 부분은 지속적으로 실행되는 업데이트 기능입니다.
Unity 'Update', FixedUpdate, LateUpdate의 세 가지 유형의 업데이트 기능이 있습니다.
'Update' 대 FixedUpdate
'Update' 함수와 FixedUpdate 함수의 차이점은 실행 빈도에 있습니다.
'Update' 함수는 프레임당 한 번 실행되는 반면 FixedUpdate은 'Project Settings' -> 'Time'의 "Fixed Timestamp" 값에 의해 제어되는 일정한 속도로 실행됩니다.
'Update' 함수는 게임 로직, 플레이어 입력 및 기본적으로 비물리학 계산을 프로그래밍하는 데 적합합니다.
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
//Space button has been pressed
}
}
반면에 FixedUpdate 함수는 레이캐스팅, 강체에 힘 적용 또는 프레임 속도에 독립적이어야 하는 모든 계산과 같은 물리 기반 계산에 적합합니다.
void FixedUpdate()
{
//Use Physics Raycast to detect if there any object in front
RaycastHit hit;
if(Physics.Raycast(transform.position, transform.forward, out hit, 10))
{
Debug.Log("Object '" + hit.transform.name + "' is currently in front of this object.");
}
}
업데이트 대 LateUpdate
'Update' 및 LateUpdate은 실행 빈도 측면에서 동일하지만(둘 다 프레임당 한 번 실행) LateUpdate은 모든 'Update' 함수 다음에 실행됩니다.
마지막으로 LateUpdate 기능은 일반적으로 애니메이션 모델 뼈대를 수정하거나(예: 플레이어 모델을 위아래로 보이게 만들기) 부드러운 카메라 추적을 구현하는 데 사용됩니다.
void LateUpdate()
{
//Make camera tagged 'MainCamera' look at this object transform
Camera mainCamera = Camera.main;
mainCamera.transform.LookAt(transform);
}
테이크아웃
각 업데이트 기능에는 고유한 사용 사례가 있습니다.
이를 조합하여 사용하여 다양한 시나리오를 구현하세요.