我想通过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按钮。。但是我怎样才能实现这个功能。。。任何帮助
尽管我不知道这是否是最好的方法(Unity的gui元素不是ingame 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的方法,如OnMouseDown或OnMouseUp。
或者,您可以从Update
内部检查是否发生鼠标事件,查看Input.GetMouseButton或Input
类的类似方法。