Unity의 생명주기 함수 중 하나인 Update() 메서드는 프레임마다 한 번씩 호출됩니다.
그렇다면 프레임 속도에 메서드 실행 주기가 영향을 받게 되겠죠. 결국 기기의 성능에 따라 메서드 실행 주기가 달라지게 된다는 이야기입니다.
FPS(Frame Per Second)가 높으면 Update()가 많이 실행되고 낮으면 적게 실행될 겁니다. Update()의 실행 주기를 기기의 성능과 상관없이 일정하게 하는 방법은 Time.deltaTime을 활용하는 것입니다. Time.deltaTime은 한 프레임이 완료되기까지 걸린 시간을 의미합니다. Update() 안에 변하는 값들에 Time.deltaTime을 곱해주면 기기에 성능에 영향을 받지 않게 될 것입니다.
public class CharacterMove : MonoBehaviour
{
public float speed = 5f;
void Update()
{
if (Input.GetKey(KeyCode.LeftArrow))
{
transform.Translate(-speed * Time.deltaTime, 0, 0);
}
}
}