c# - InputField 和抓取事件
问题描述
我正在使用 Unity 和 Leap Motion 开发一个项目。基本上,有一个 inputField。在 inputField 中,用户将写入应触发抓取事件的距离(以厘米为单位)。当手指比用户输入的距离更近时,会触发抓握事件并抓取一个球。那是因为我正在与行动不便的人一起工作,他们不能完全合上手。
我写了一个脚本,在每一帧打印两个手指之间的距离,但我不知道如何使用 inputField 的距离触发抓取事件。有什么建议吗?
解决方案
实现这一点的最直接方法是引入一个变量,该变量读取 inputField 的内容和一个 if 语句,该语句在您编写的脚本中触发 Update() 上的事件 - 类似这样(假设您正在计算描述):
float dist = float.Parse(gameObjectWithInputField.GetComponent<InputField>().text);
if(dist/100f<graspDist) TriggerGraspEventFunction();
然后在该脚本中的其他位置定义 TriggerGraspEventFunction()。您可以将 gameObjectWithInputField 设置为公共 GameObject 并将其拖入检查器或标记它并使用 FindGameObjectWithTag
还有很多更精致的方法,但现在应该这样做
推荐阅读
- javascript - 未捕获的类型错误:无法设置未定义的属性“回调”
- tensorflow - 在大型 CNN 上实现焦点损失
- ios - 如何在 RealityKit 中显示 ARPlaneGeometry,而不使用 SceneKit?
- forms - 尝试创建一个表达式来根据日期计算事件
- shopware - Shopware 5:区分来自不同平台的交易
- laravel - Laravel 护照 - 允许用户作为/登录为其他用户
- python - 容器内的 Python 代码无法访问第二个容器内的 Redis
- java - 无法在 Netbeans 8.2 中为 java FX 项目运行 64 位 JDK
- python - 选择 K-Fold 交叉验证值的问题
- python - 在 Python 中重试函数