Menu
CoddyTech

Các nút có tên

Thuộc phần Những kiến thức cơ bản về lập trình trong Unity trong hành trình Unity của Coddy. Bài học 21 trên 85.

Ngoài phím, Unity còn có nút: các tên được liệt kê trong Input Manager (Edit, Project Settings, Input Manager), mỗi tên gắn với một hoặc nhiều phím. Input.GetButtonDown("Fire1") kiểm tra tên, không phải phím. Dự án mới có các tên sau:

  • "Jump": phím cách
  • "Fire1": Ctrl trái hoặc nút chuột trái
  • "Fire2": Alt trái hoặc nút chuột phải
  • "Submit" và "Cancel": Enter và Escape

Các nút trên tay cầm chơi game cũng gắn với những tên tương tự, và bạn có thể đổi phím trong Input Manager mà không cần sửa code. GetButton, GetButtonDown và GetButtonUp hoạt động giống như GetKey, GetKeyDown và GetKeyUp. Đoạn code bắn này ghi lại một phát bắn mỗi khi nhấn Ctrl hoặc nhấp chuột:

void Update()
{
    if (Input.GetButtonDown("Fire1"))
    {
        Debug.Log("Shot!");
    }
}

Tên này là một chuỗi, nên lỗi chính tả trong tên vẫn biên dịch được. Unity tra cứu tên khi chạy dòng lệnh, và nếu không có nút nào mang tên đó, Unity sẽ báo lỗi ở mỗi khung hình: ArgumentException: Input Button Fier1 is not setup. Khi thấy thông báo đó, hãy so sánh tên trong code với danh sách trong Input Manager.

challenge icon

Thử thách

Dễ

Sửa cú nhảy của chú ếch để chú tiếp đất trở lại.

  1. Nhấn Chơi: Console hiển thị lỗi về nút "Jumpp". Đổi thành "Jump".
  2. Thêm một if thứ hai cho Input.GetButtonUp("Jump"), trừ new Vector3(0, hop, 0) khỏi transform.position.

Nhấn Chơi, giữ phím Space rồi thả ra: chú ếch nhảy lên rồi tiếp đất. Sau đó nhấn Kiểm tra.

Tự làm thử

using UnityEngine;

public class Hopper : MonoBehaviour
{
    public float hop = 1.5f;

    void Update()
    {
        if (Input.GetButtonDown("Jumpp"))
        {
            transform.position += new Vector3(0, hop, 0);
        }
    }
}

Tất cả bài học trong Những kiến thức cơ bản về lập trình trong Unity

Tự luyện tập: Playground Unity