Menu
CoddyTech

Hai hệ thống đầu vào

Thuộc phần Xây dựng trò chơi thực tế trong hành trình Unity của Coddy. Bài học 44 trên 60.

Unity có hai cách đọc bàn phím và chuột. Cách bạn đã dùng đến giờ là Input Manager: lớp Input cùng với GetKey, GetAxis và GetButtonDown, cũng như các trục và nút được đặt tên trong Project Settings > Input Manager. Cách mới hơn là gói Input System (com.unity.inputsystem). Các tập lệnh của gói này bắt đầu bằng using UnityEngine.InputSystem;, và đọc thiết bị dưới dạng đối tượng, chẳng hạn như Keyboard.current và Mouse.current, cũng như thông qua hành động (actions): những việc người chơi thực hiện được đặt tên, chẳng hạn như Move và Jump, mỗi hành động được gán cho các phím, cần điều khiển và nút.

Dự án sử dụng hệ thống nào là do một cài đặt Player quyết định: Edit > Project Settings > Player > Other Settings > Active Input Handling, với ba lựa chọn: Input Manager (Old), Input System Package (New) và Both. Một dự án Unity 6 mới bắt đầu với Input System Package (New), và ở chế độ đó, mọi lần gọi lớp Input đều gây ra InvalidOperationException với thông báo rằng bạn đang đọc đầu vào thông qua UnityEngine.Input trong khi dự án sử dụng gói Input System. Đó là lý do các bài học trước yêu cầu bạn chọn Both. Để thay đổi cài đặt này, cần khởi động lại trình chỉnh sửa, Unity sẽ đề nghị thực hiện việc đó.

Unity 6 bắt đầu với hệ thống mới vì một API có thể dùng cho bàn phím, chuột, tay cầm chơi game, màn hình cảm ứng và bộ điều khiển XR, đồng thời các hành động giúp mã không cần chứa thông tin về phím: tập lệnh đọc hành động Jump, và cùng một dòng lệnh vẫn hoạt động với phím Space, nút A trên tay cầm chơi game hoặc nút trên màn hình điện thoại, cũng như khi người chơi đổi phím. Input Manager cũ vẫn được duy trì cho các dự án cũ. Khung nhìn trò chơi của Coddy hoạt động như chế độ Both, vì vậy các phím, thao tác nhấp và bàn phím điều khiển trên điện thoại (các mũi tên và Jump) đều được cả hai hệ thống nhận. Phần còn lại của chương này sử dụng Input System.

Tự làm thử

Bài học này không có thử thách code.

Tất cả bài học trong Xây dựng trò chơi thực tế

Tự luyện tập: Playground Unity