首页 > 解决方案 > InputField 和抓取事件

问题描述

我正在使用 Unity 和 Leap Motion 开发一个项目。基本上,有一个 inputField。在 inputField 中,用户将写入应触发抓取事件的距离(以厘米为单位)。当手指比用户输入的距离更近时,会触发抓握事件并抓取一个球。那是因为我正在与行动不便的人一起工作,他们不能完全合上手。

我写了一个脚本,在每一帧打印两个手指之间的距离,但我不知道如何使用 inputField 的距离触发抓取事件。有什么建议吗?

标签: c#unity3dleap-motion

解决方案


实现这一点的最直接方法是引入一个变量,该变量读取 inputField 的内容和一个 if 语句,该语句在您编写的脚本中触发 Update() 上的事件 - 类似这样(假设您正在计算描述):

float dist = float.Parse(gameObjectWithInputField.GetComponent<InputField>().text);
if(dist/100f<graspDist) TriggerGraspEventFunction();
        

然后在该脚本中的其他位置定义 TriggerGraspEventFunction()。您可以将 gameObjectWithInputField 设置为公共 GameObject 并将其拖入检查器或标记它并使用 FindGameObjectWithTag

还有很多更精致的方法,但现在应该这样做


推荐阅读