2 min read

Time.delta là gì?

Tìm hiểu về Time.delta trong Unity và cách sử dụng Time.deltaTime để tạo chuyển động mượt mà trong game

Time.delta là gì?

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ân Time.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ị

Time.delta trong Unity

Đâ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:

Related Posts

Discover more content you might enjoy