User interface 如何在unity中使用GUI按钮
我想通过unity3d unityscript中的GUI按钮获取用户输入。我写这个脚本是为了通过键盘获得用户输入User interface 如何在unity中使用GUI按钮,user-interface,unity3d,unityscript,User Interface,Unity3d,Unityscript,我想通过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 {
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;
}
var f_hor:float=Input.GetAxis(“水平”);
//获得垂直移动-向前或向后移动
变量f\u ver:float=Input.GetAxis(“垂直”);
如果(f_ver<0){
b_isBackward=true;
}否则{
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#
code,但我不知道JS
。它应该很容易翻译
public void OnGui()
{
Rect rect = new Rect(...); //your button dimension
if (GUI.Button(rect, "AButton")
{
buttonPressed = true;
}
}
编辑: 如果要手动处理鼠标输入,可以使用或等方法
或者,您可以从内部检查
Update
如果发生鼠标事件,请查看Input
类的方法或类似方法。我在更新功能中完成了所有工作。如果我在ONGUI功能中完成了所有工作,则不进行更新。这项工作很好。但现在我有一个问题…我在发布时如何获得连续输入按下GUI按钮,就像我按下箭头键一样,我会得到连续的输入,直到我按下键盘按钮…@user1594794:基本上你不能。OnGUI不像更新那样连续调用。这就是为什么我在回答中将其分为两个函数。感谢你的回复@Hesenbug…我在GUI按钮上有一个prolem…当我按下GUI按钮并按住时我的播放器将继续移动,动画将像我按向上箭头键一样运行…我如何做…我建议你不要使用按钮。使用2d纹理显示按钮并手动处理鼠标输入。我正在为android制作游戏…通过手指触摸移动角色好吗…或者有可能,如果有链接到这……先谢谢你