自定义KeyCode变量

本文关键字:变量 KeyCode 自定义 | 更新日期: 2023-09-27 18:30:07

我正在创建一个虚拟启动板,我将把这个脚本附加到每个按钮上,但我需要它是模块化的,这样我就不需要64个不同的脚本来做完全相同的事情。

我的问题是我不确定如何将KeyCodes作为公共变量。因此,如果我声明了一个名为"theKey"的公共变量:

if (Input.GetKeyDown(KeyCode.theKey))
{ //play sound etc. 
}

类似的东西,这样在统一中,我可以使用检查器插入这个脚本所附按钮的热键。

KeyCode.String不起作用,我需要完整的KeyCodes,如.Alpha2

public class LaunchManager : MonoBehaviour {
// Define public variables
public Button b11;
// Initialization
void Start () {
}
// Update is called once per frame
void Update () {
    var pointer = new PointerEventData(EventSystem.current);
    // For Single Use (sound emmission) 
    if (Input.GetKeyDown(KeyCode.Alpha2)) {
        // Click Button from keypress
        ExecuteEvents.Execute(b11.gameObject, pointer, ExecuteEvents.pointerDownHandler);
        // Play Sound
        GetComponent<AudioSource>().Play();
    }
    // Execute while clicking
    if (Input.GetKey(KeyCode.Alpha2)) {
        //set button colour to pressed state
    }
  }
}

非常感谢您的帮助。我确实仔细检查了一下,想找到答案。如果我仍然缺少相关细节,请告诉我,我会做出回应。

自定义KeyCode变量

如果我正确理解你的问题,你想创建一个公共密钥代码变量,这样做:

public Keycode theKey = Keycode.None;

你可以像一样使用它

if (Input.GetKeyDown(theKey))
{
//Do code
}