2013-02-25 48 views
0

我想通过unity3d unityscript中的GUI按钮获得用户输入。我写这个剧本通过键盘来获取用户输入如何使用统一的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 accordingly..But我想通过GUI button.Like同样的动作,如果我有四个GUI按钮..他们的工作原理与此相同......我可以在ONGUI功能中制作GUI按钮..但是我怎样才能实现这种功能......任何帮助

回答

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; 
    } 
} 

编辑:

如果你想手动处理鼠标就可以使用,如MonoBehaviorOnMouseDownOnMouseUp方法输入。

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

+0

我已经完成了所有在Update函数中的工作。而不是更新,如果我在ONGUI函数中完成所有工作,这项工作很好..但是现在我有一个问题...我如何获得连续输入,当我按下GUI按钮,就像当我按下箭头键时,我获得了连续输入,直到我按下了键盘按钮... – 2013-02-25 18:52:55

+0

@ user1594794:基本上你不能。 OnGUI不像Update一样连续调用。这就是为什么我在我的答案中将它分成两个函数。 – Heisenbug 2013-02-25 19:07:13

+0

感谢您的回复@Hesenbug ....我有一个关于gui的按钮。当我按下GUI按钮并按住它时,我的播放器将继续移动并且动画就像我按下uparrow键时一样运行我做的.. – 2013-02-25 19:13:24