Sự khác nhau giữa Input.GetAxis và Input.GetAxisRaw

Bài viết giải thích sự khác biệt giữa hai hàm xử lý đầu vào trong Unity3D: Input.GetAxis và Input.GetAxisRaw. Input.GetAxis trả về giá trị từ -1 đến 1 với sự chuyển đổi mượt mà, phù hợp cho chuyển động trong game 3D, trong khi Input.GetAxisRaw chỉ trả về chính xác một trong ba giá trị -1, 0 hoặc 1, thích hợp hơn cho game 2D. Tác giả minh họa bằng ví dụ cụ thể và hướng dẫn khi nào nên sử dụng mỗi hàm.

Sự khác nhau giữa Input.GetAxis và Input.GetAxisRaw

Sự khác nhau giữa Input.GetAxis và Input.GetAxisRaw

Đặt vấn đề:

Thường trong Unity3D có nhiều hàm hơi giống nhau, trong bài viết này, mình sẽ giải thích sự khác nhau giữa

2 hàm dễ nhầm lẫn là Input.GetAxis và Input.GetAxisRaw

Ví dụ minh họa trong 2 trường hợp: cùng xem biến move khác nhau như thế nào khi dùng Input.GetAxis và Input.GetAxisRaw nhé.

getaxis hay getaxisraw

Input.GetAxis sẽ trả về giá trị từ -1 đến 1. Nếu không bấm gì sẽ trả về 0. Vì thế mà khi sử dụng GetAxis để làm chuyển động cho nhân vật sẽ mượt mà hơn. Ví dụ khi ta dùng float move = Input.GetAxis("Horizontal");

thì khi ta chạy game và bấm phím A move không phải có giá trị -1 liền mà nó kéo từ 0 xuống từ từ đến 1. Tương tự bấm D thì giá trị của move sẽ tăng từ từ lên đến 1. Và như thế thì nhân vật sẽ chuyển động mượt mà hơn nhiều.

Input.GetAxisRaw thì chỉ trả về một trong 3 giá trị -1 hoặc 0 hoặc 1. Ví dụ khi ta dùng:

float move = Input.GetAxisRaw("Horizontal");

thì khi ta chạy game và bấm phím A, move sẽ có giá trị -1 ngay lập tức.

Kết Luận: Vậy khi nào xài GetAxis khi nào xài GetAxisRaw?

Đương nhiên việc sử dụng cái nào thì tùy vào mục đích cũng như game của bạn. Như đã nói ở trên, GetAxis sẽ cho chuyển động mượt hơn GetAxisRaw nên những game 2D có thể dùng GetAxisRaw và 3D dùng GetAxis để cho chuyển động trong không gian 3 chiều mượt mà hơn

Related Posts

Discover more content you might enjoy