유니티에서 플레이어를 조작하기 위해 가장 기본적인 코드 중 하나인 움직임과 관련된 코드에서 Time.deltaTime을 사용하는 것을 알 수 있다.
이때 Time.deltaTime은 어떤 역할을 하기에 움직임을 부드럽게 만드는 것일까?
void Update()
{
if (Input.GetKey(KeyCode.W))
transform.position += Vector3.forward * Time.deltaTime * speed;
if (Input.GetKey(KeyCode.A))
transform.position += Vector3.back * Time.deltaTime * speed;
if (Input.GetKey(KeyCode.S))
transform.position += Vector3.left * Time.deltaTime * speed;
if (Input.GetKey(KeyCode.D))
transform.position += Vector3.right * Time.deltaTime * speed;
}
Time.deltaTime은 각 프레임간 시간 차이를 말한다.
어떤 프레임은 0.016초(60fps) 걸리고, 어떤 프레임은 0.033초(30fps) 걸릴 것이다.
만약 프레임 당 일정한 거리를 이동하게 하면, 프레임 속도에 따라 움직임을 표현할 수 있게 된다.
따라서 플레이어의 이동속도를 5라고 설정했다면 60fps라고 가정했을 때 Time.deltaTime을 사용한다면 5*0.016만큼 이동하게된다.
'게임 개발 > Unity' 카테고리의 다른 글
Unity 코드 기본 템플릿 변경 (0) | 2024.06.27 |
---|