Ôn tập: chuyển đổi đầ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 48 trên 60.
Chương này đọc bàn phím, chuột và các hành động của dự án bằng Input System. Cây đũa bong bóng vẫn dùng lớp cũ Input: hãy chuyển đổi từng lời gọi một.
Thử thách
Trung bìnhChuyển cây đũa phép tạo bong bóng sang Input System; lớp Input cũ gây lỗi ở đây.
- Thêm
using UnityEngine.InputSystem;và các trườngInputActionmoveActionvàjumpAction, rồi gán giá trị trongStart()bằngInputSystem.actions.FindAction. - Di chuyển bằng
moveAction.ReadValue<Vector2>(), dùng trục y của giá trị này làm trục z. - Thay các lần kiểm tra Jump bằng
WasPressedThisFrame(),IsPressed()vàWasReleasedThisFrame(), đồng thời thay thao tác nhấp bằngMouse.current.leftButton.wasPressedThisFrame.
Nhấn Chơi, thổi bong bóng rồi làm vỡ nó. Sau đó nhấn Kiểm tra.
Tự làm thử
using UnityEngine;
public class Wand : MonoBehaviour
{
public float speed = 4f;
public float growRate = 1f;
public float maxSize = 1.5f;
public GameObject bubblePrefab;
private Transform bubble;
void Update()
{
Vector3 move = new Vector3(Input.GetAxisRaw("Horizontal"), 0f, Input.GetAxisRaw("Vertical"));
transform.position += move.normalized * speed * Time.deltaTime;
if (Input.GetButtonDown("Jump"))
{
bubble = Instantiate(bubblePrefab, transform.position + Vector3.up * 1.5f, Quaternion.identity).transform;
}
if (Input.GetButton("Jump") && bubble != null)
{
float size = Mathf.Min(bubble.localScale.x + growRate * Time.deltaTime, maxSize);
bubble.localScale = Vector3.one * size;
}
if (Input.GetButtonUp("Jump") && bubble != null)
{
Debug.Log("Bubble: " + bubble.localScale.x.ToString("F1"));
bubble = null;
}
if (Input.GetMouseButtonDown(0))
{
GameObject[] bubbles = GameObject.FindGameObjectsWithTag("Bubble");
foreach (GameObject b in bubbles) Destroy(b);
Debug.Log("Popped " + bubbles.Length);
}
}
}
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Xây dựng trò chơi thực tế
1Văn bản trên màn hình
Canvas và văn bảnHiển thị điểm sốĐịnh dạng sốĐồng hồ đếm ngượcÔn tập: Đồng hồ tốc độ7Điều khiển thời gian
Tạm dừng bằng timeScaleChuyển động chậmThời gian không bị co giãnÔn tập: Bullet Time2Nút bấm và màn hình
Nút bấm và onClickLambdaKết nối trong InspectorBật và tắt bảngThanh máuÔn tập: Cửa hàng nâng cấp5Lưu dữ liệu với PlayerPrefs
Lưu một sốTải với giá trị mặc địnhĐiểm cao nhấtLưu cài đặtÔn tập: Tiền xu trong ngân hàng3Trình quản lý trò chơi
Một script chạy trò chơiSingletonCác trạng thái trò chơiChuyển đổi trạng tháiÔn tập: Trình quản lý vòng chơi6Dự án: trò chơi chạy vô tận
Ba làn đườngChướng ngại vật phía trước9Hệ thống đầu vào mới
Hai hệ thống đầu vàoBàn phím và chuộtĐược nhấn trong khung hình nàyThao tác đầu vàoÔn tập: chuyển đổi đầu vàoTự luyện tập: Playground Unity