命名按钮
本课属于 Coddy Unity 学习旅程的“Unity 脚本基础”单元。第 21 课,共 85 课。
除了按键,Unity 还有按钮:这些名称列在 Input Manager(Edit、Project Settings、Input Manager)中,每个名称都对应一个或多个按键。Input.GetButtonDown("Fire1")查询的是名称,而不是按键。新项目中包含以下按钮:
"Jump":空格键"Fire1":左 Ctrl 键或鼠标左键"Fire2":左 Alt 键或鼠标右键"Submit"和"Cancel":Enter 键和 Escape 键
游戏手柄按钮也对应相同的名称,而且你可以在 Input Manager 中更改按键,无需修改代码。GetButton、GetButtonDown 和 GetButtonUp 的用法与 GetKey、GetKeyDown 和 GetKeyUp 相同。这个爆能枪会在每次按下 Ctrl 键或点击鼠标时记录一次射击:
void Update()
{
if (Input.GetButtonDown("Fire1"))
{
Debug.Log("Shot!");
}
}名称是一个字符串,所以即使拼错也能通过编译。Unity 会在代码行运行时查找这个名称。如果没有名为该名称的按钮,Unity 就会在每一帧抛出异常:ArgumentException: Input Button Fier1 is not setup.看到这条消息时,请对照代码中的名称和 Input Manager 列表中的名称。
挑战
简单修好青蛙的跳跃,让它再次落地。
- 按“开始”:控制台会显示一条关于按钮
"Jumpp"的错误。把它改成"Jump"。 - 添加第二个
if,判断Input.GetButtonUp("Jump"),并从transform.position中减去new Vector3(0, hop, 0)。
按“开始”,按住空格键再松开:青蛙会向上跳,然后落地。接着按“检查”。
亲手试试
using UnityEngine;
public class Hopper : MonoBehaviour
{
public float hop = 1.5f;
void Update()
{
if (Input.GetButtonDown("Jumpp"))
{
transform.position += new Vector3(0, hop, 0);
}
}
}
Unity 脚本基础中的所有课
自己练习: Unity 在线编辑器