如何统一使用GUI按钮

时间:2013-02-25 17:39:14

标签: user-interface unity3d unityscript

我希望通过unity3d unityscript中的GUI Button获得用户输入。我已编写此脚本以通过键盘输入用户输入

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按钮...就像我这样工作...我可以制作GUI按钮在ONGUI函数..但我怎样才能实现这个功能...任何帮助

1 个答案:

答案 0 :(得分: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.GetMouseButtonInput类的类似方法。