Unity如何在C#脚本中获取按钮输入?

Unity如何在C#脚本中获取按钮输入?,c#,unity3d,C#,Unity3d,我正在写一个包含组合系统的游戏(它是一个脚本)。我现在有它,所以输入是键,但我想改变它,所以它需要按钮按下输入代替 以下是输入代码: void Update() { if (Input.GetKeyDown(KeyCode.E)) input = new ComboInput(AttackType.heavy); if (Input.GetKeyDown(KeyCode.R)) input = new Combo

我正在写一个包含组合系统的游戏(它是一个脚本)。我现在有它,所以输入是键,但我想改变它,所以它需要按钮按下输入代替

以下是输入代码:

void Update() {
         if (Input.GetKeyDown(KeyCode.E))
            input = new ComboInput(AttackType.heavy);
         if (Input.GetKeyDown(KeyCode.R))
            input = new ComboInput(AttackType.light);
}

关于UI按钮的一点是,它们接受onPressed()命令,但我无法生成一个函数来提供此输入,因为它已经在更新函数中。任何帮助都将不胜感激

您可以为按钮添加一个代理,以便在按钮单击时调用它

例如:

private void Awake()
{
    Button buttonComponent = GetComponent<Button>();
    buttonComponent.onClick.AddListener(OnButtonClicked)
}

private void OnButtonClicked()
{
    Debug.Log("The button has clicked!");
}

编辑:如果你想编辑你现有的战斗脚本(而不是创建一个新的单独组件),那么你必须给你的战斗脚本指定按钮。即
buttonE,buttonR
,您必须通过unity inspector提供参考。如果它完成了,那么您可以自由删除
Update()
函数,如果没有其他相关内容。

好的,这是有意义的。但我如何在战斗脚本中实现这一点?哦,你似乎误解了我。我现在有它,所以你必须点击键E和R来做输入,但我想摆脱它,让它成为我可以点击按钮代替。我去编辑这个问题。是的,一个战斗脚本