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. Nhận làm ứng dụng MVP để nhiều người bỏ việc. 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.