Time.delta là gì?

🗓 January 1, 2016
🎯 Categories:
#️⃣ Tags:

Time.delta là khoảng thời gian giữa 2 frame. Khi bạn cộng hoặc trừ giá trị bất khì trong khi frame thay đổi (trong hàm Update/FixedUpdate) thì hãy nên nhân giá trị đó với Time.deltatime. Tại sao? Hãy cùng xem qua ví dụ sau nhé.

public float speed = 5f;

Giả sử mình muốn Player di chuyển trái/phải với speed = 5f. Nếu không nhân speed với Time.deltatime

thì Player chỉ di chuyển được tới những ô cách nó 5 đơn vị trên trục tọa độ mà thôi. Hay nói cách khác là Mỗi frame Player dịch sang trái/phải 5 đơn khi không nhânTime.deltatime.

Ngược lại, nếu nhân speed với Time.deltatime thì Mỗi giây Player dịch chuyển 5 đơn vị

Đây là code hoàn chỉnh trong ví dụ này, bạn hãy thử bỏ nhân Time.deltatime và cảm nhận nhé.

public float speed = 5f;
// Update is called once per frame
void Update ()
{
// Mỗi frame Player dịch sang trái 5m khi không dùng Time.deltatime
// Mỗi giây Player dịch sang trái 5m có dùng Time.deltatime
Debug.Log(Time.deltaTime);
if (Input.GetKey(KeyCode.LeftArrow))
{
transform.position += new Vector3(-speed * Time.deltaTime, 0, 0);
}
// Mỗi frame Player dịch sang phải 5m khi không dùng Time.deltatime
// Mỗi giây Player dịch sang phải 5m có dùng Time.deltatime
else if (Input.GetKey(KeyCode.RightArrow))
{
transform.position += new Vector3(speed * Time.deltaTime, 0, 0);
}
}

Dưới đây là video trong seri Hướng dẫn làm game bắn vịt clone có sử dụng Time.deltatime:

Author: Khoa Nguyen
https://niviki.com
Thất nghiệp. Đang rủ rê nhiều người thất nghiệp. Hy vọng với NIVIKI.COM có thể lan toả tinh thần thất nghiệp đến với nhiều người hơn nữa.