Why?: GameObject가 생성될 때 Transform컴포넌트가 자동으로 추가됨의미: 이전 프레임과 현재 프레임 사이의 시간 간격(초)
Update() 메서드는 매 프레임마다 호출됩니다. 따라서 프레임률(프레임 속도)이 높거나 낮을 때마다 Update() 메서드가 호출되는 빈도가 달라질 수 있음
따라서 만약 Time.deltaTime을 사용하지 않고 이동 속도를 설정하면, 프레임률이 높을 때 오브젝트는 더 빠르게 이동하고, 프레임률이 낮을 때는 더 느리게 이동할 수 있음
Update() 메서드 안에 이동 코드를 작성하면, 오브젝트는 프레임마다 점차적으로 이동하게 되는데, 벡터값에 Time.deltaTime을 곱하면 이동 속도가 프레임 수에 관계없이 일정하게 유지됨
인자가 되는 벡터값에 입력값이 들어가도록 코드를 작성하면됨!
using UnityEngine;
public class MoveObject : MonoBehaviour
{
void Update()
{
// 키보드 입력을 받아 오브젝트를 이동
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
// 이동 벡터 계산
Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
// Transform 컴포넌트를 사용하여 오브젝트를 이동
transform.Translate(movement * Time.deltaTime);
}
}