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é.
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