【发布时间】:2021-01-08 02:01:01
【问题描述】:
所以,我试图让我的统一游戏从使用键盘移动到使用屏幕上的 ui 按钮移动。我统一使用内置的 ui 按钮,将按钮链接到我要移动的对象,并让它触发脚本的一部分来移动对象。问题是它一开始只检测到按下按钮的输入,如何检测到按钮被按住?
【问题讨论】:
标签: unity3d
所以,我试图让我的统一游戏从使用键盘移动到使用屏幕上的 ui 按钮移动。我统一使用内置的 ui 按钮,将按钮链接到我要移动的对象,并让它触发脚本的一部分来移动对象。问题是它一开始只检测到按下按钮的输入,如何检测到按钮被按住?
【问题讨论】:
标签: unity3d
您可以通过检查按钮何时释放来检查按钮是否被按住
首先给你的按钮添加事件触发组件,添加两个事件PointerDown和PointerUp,然后在PointerDown上设置一个bool为true,在PointerUp上设置一个false,那个bool就是按钮是否被按住,例如:
public class CheckHeldDown : Monobehaviour
{
public bool isHeldDown = false;
public void onPress ()
{
isHeldDown = true;
Debug.Log(isHeldDown);
}
public void onRelease ()
{
isHeldDown = false;
Debug.Log(isHeldDown);
}
}
【讨论】:
如果您想在移动设备上构建您的游戏,您可以通过触摸次数来检测它。例如,这是我刚刚用来在赛车游戏中制作 Nitro 按钮的一些代码:
public class NitroButton : MonoBehaviour
{
[HideInInspector]
public bool pushed;
public void Update()
{
if (Input.touchCount >= 2)
{
pushed = true;
}
else
{
pushed = false;
}
}
}
这也允许两个手指推动等。
【讨论】: