版本:Unity 6 (6000.0)
语言英语
  • C#

Input.GetButton

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提出的每项更改建议,并在适用情况下进行更新。

关闭

提交失败

由于某种原因,您的更改建议无法提交。请 <a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public static bool GetButton(string buttonName);

参数

buttonName 按钮名称,例如 Jump。

返回值

bool 当轴被按下且未释放时为真。

描述

当由 buttonName 标识的虚拟按钮被按下时返回 true。

注意:此 API 是传统 Input 类的一部分,不建议在新项目中使用。此处的文档旨在支持使用旧的 Input Manager 和 Input 类的传统项目。对于新项目,您应该使用更新的 Input System 包。 (了解更多).

想想自动射击 - 只要按钮被按下,它就会返回 true。仅在实现触发动作的事件(例如射击武器)时使用此方法。 buttonName 参数通常是 InputManager 中的名称之一,例如 Jump 或 Fire1。当 GetButton 被释放时,它将返回到 false

注意:对于控制连续移动的输入,请使用 GetAxis

// Instantiates a projectile every 0.5 seconds,
// if the Fire1 button (default is Ctrl) is pressed.

using UnityEngine; using System.Collections;

public class ExampleClass : MonoBehaviour { public GameObject projectile; public float fireDelta = 0.5F;

private float nextFire = 0.5F; private GameObject newProjectile; private float myTime = 0.0F;

void Update() { myTime = myTime + Time.deltaTime;

if (Input.GetButton("Fire1") && myTime > nextFire) { nextFire = myTime + fireDelta; newProjectile = Instantiate(projectile, transform.position, transform.rotation) as GameObject;

// create code here that animates the newProjectile

nextFire = nextFire - myTime; myTime = 0.0F; } } }