Unity의 Update는 다양한 기능을 수행하며 다양한 종류가 있습니다.
정기 업데이트 이벤트로 매 프레임마다 호출되며 게임의 로직, 상호작용, 애니메이션, 카메라 포지션의 트랙을 유지할 때 사용합니다. 일반적인 패턴은 Update함수에 대부분의 작업을 수행할 수 있습니다.
스크립트가 활성화(enabled) 상태일 때, 매 프레임마다 호출됩니다.
주기가 일정하지 않아 물리효과가 적용되지 않은 오브젝트의 움직임이나 단순한 타이머, 키 입력을 받을 때 사용됩니다.
고정된 시간마다 호출되며 컴퓨터의 성능과 상관없이 호출됩니다.(물리 시뮬레이션 주기에 따라 호출)
물리 계산을 위한 프레임 속도 독립적 MonoBehaviour.FixedUpdate
프레임 기반으로 호출되는 Update와 달리 Fixed Timestep에 설정된 값에 따라 일정한 간격(Default : 0.02sec)으로 호출된다! 물리 효과가 적용된(Rigidbody) 오브젝트를 조정할 때 사용된다.
이 값을 사용하는 방법 Time.fixedDeltaTime
스크립트 내에서 원하는 값으로 설정하여 변경하거나 해당 위치로 이동하여 설정하세요.Edit > Settings > Time > Fixed TimestepFixed
모든 Update()가 호출된 후에 호출되며 다른 스크립트나 컴포넌트의 업데이트 이후에 추가 작업을 수행하는 데 사용됩니다. 주로 카메라 이동, 렌더링 등의 작업에 사용됩니다.(이미 처리가 완료된 정보를 통합하여 눈에 보여주기 위해서)
Behavior가 활성화된 경우 LateUpdate는 매 프레임마다 호출됩니다.
프레임이 컴퓨터의 성능에 따라 달라지기 때문에 일정하지 않습니다.
그렇기에 Update에서 물리계산 및 기타 계산을 할 경우 컴퓨터의 성능에 따라 차이가 벌어질 수 있기에 계산 같은 경우에는 피하는 것이 좋습니다.
하지만 그래도 사용 될 경우 Time.deltaTime
을 곱해서 값을 맞쳐줘야 됩니다.