0

我想通过 unity3d unityscript 中的 GUI 按钮获取用户输入。我已经编写了这个脚本来通过键盘获取用户输入

var f_hor : float = Input.GetAxis("Horizontal");
//Get Vertical move - move forward or backward
var f_ver : float = Input.GetAxis("Vertical");
if (f_ver < 0) {
b_isBackward = true;
} else {
b_isBackward = false;
}

它工作正常,并相应地给我 0 和 1..但我希望通过 GUI 按钮执行相同的操作。就像我有四个 GUI 按钮..它们的工作方式与此相同......我可以在 ONGUI 功能中制作 GUI 按钮..但是我怎样才能实现这个功能...任何帮助

4

1 回答 1

0

虽然我不知道这是否是最好的方法(Unity 的 gui 元素不是游戏 HUD 或菜单的最佳选择),但这应该可以完成工作:

private bool buttonPressed = false;

public void Update()
{
    if (buttonPressed)
    {
         //do what you want

         buttonPressed = false;
    }
}

抱歉使用C#代码,但我不知道JS。翻译起来应该很容易。

public void OnGui()
{
    Rect rect = new Rect(...); //your button dimension

    if (GUI.Button(rect, "AButton")
    {
        buttonPressed = true;
    }
}

编辑:

如果您想手动处理来自鼠标的输入,您可以使用MonoBehavior的方法,例如OnMouseDownOnMouseUp

或者,您可以从内部检查Update是否发生鼠标事件,查看Input.GetMouseButton或类似的Input类方法。

于 2013-02-25T18:46:14.423 回答