본문 바로가기
Unity/스크립트

void LateUpate()

by 세에레_freewing 2023. 3. 14.
반응형

유니티 함수로, 매 프레임마다 실행되지만 Update()함수 보다 늦게 실행된다.


Update() 함수 실행이 다 끝난 후에, Update()함수의 종료 시점에 맞춰서 LateUpdate() 가 실행된다.


예를 들어 캐릭터의 이동 방향 계산은 Update() 에서 끝내준 후,Update()에서 계산 끝낸 캐릭터의 이동 방향에 따라 LateUpdate()에서 카메라가 캐릭터를 따라가도록 하는 식으로 구현한다.


만약 Update() 함수로 했다면, PlayerController.cs 에서 플레이어의 위치와 회전값을 업데이트 하는 것과 CameraController.cs 에서 플레이어의 위치와 회전을 업데이트 하는 것이 같은 Update()로서 동시에 섞여 실행되기 때문에 아직 업데이트 되지 않은 플레이어의 위치와 회전값으로 카메라가 따라가게 되는 프레임이 발생할 수 있다.


정확히 말하자면 PlayerController.cs 에서 `플레이어의 위치와 회전값을 업데이트 하는 OnKeyboard() 함수는 액션에 등록되어 Manager.cs 의 Update() 에서 실행 된다


따라서 반드시 플레이어의 위치와 회전값을 업데이트 하는 일은 PlayerController.cs 에서 먼저 이루어지고 난 후에 업데이트 된 플레이어의 위치와 회전 값을 가지고 카메라의 위치와 회전 값을 업데이트 해야 한다.

반응형