<유니티> Time.deltaTime

상태
시작 전
담당자
날짜
숫자
0

Time.deltaTime의 개념

Time.deltaTime : Update() 함수의 호출 간격
여러분이 만약 y축으로 움직이는 게임을 작성하는데 cube라는 컴포넌트를 작성하고 그 컴포넌트가 y축으로 매초 1프레임씩 움직인다고 가정해봅시다.
using UnityEnigne; public class Cube : MonoBehaviour { void Update() { transform.position = new Vector3( transform.position.x, transform.position.y + (1f), transform.position.z,) } }
C#
복사
그런데 여기서 만약 1초에 10프레임씩 움직이는 A라는 PC가 있고, 1초에 20프레임씩 움직이는 B라는 PC가 있다고 가정해볼게요.
그렇게 되면 A는 y축으로 10씩 움직이고, B는 20씩 움직이게 됩니다.
이처럼 Time.deltaTime을 사용하지 않고 코드를 작성하게 되면 PC의 성능에 따라 다른 퍼포먼스를 보여주게 되기에 이는 잘못된 코드라고 할 수 있습니다.
여기에 Time.deltaTime을 사용하면 어떻게 될까요?
using UnityEnigne; public class Cube : MonoBehaviour { void Update() { transform.position = new Vector3( transform.position.x, transform.position.y + (1f * Time.deltaTime), transform.position.z,) } }
C#
복사
이런 식으로 작성하게 되면 A는 1초에 10프레임의 속도를 가지고 있기 때문에 1프레임을 10으로 나누어 Time.deltaTime은 0.1f가 됩니다.
B는 1초에 20프레임이므로 0.05f가 되겠죠.
그렇다면 결국 10프레임 x 0.1f, 20프레임 x 0.05f 이므로 결국 같은 값만큼 움직이게 될 것입니다.