首页 > 解决方案 > 限制带有 ManipulationHandler 脚本的对象的移动

问题描述

我想移动带有 ManipulationHandler 脚本的小球体,该脚本附加在我的场景中的一个大球体上。

小球体的运动需要限制在大球体的“外壳”内。

我已经完成了行为(链接提供了一个 gif),而不使用操作处理程序,在更新函数中更新小球体的 X 和 Y。

有没有办法在不重写 ManipulationHandler 的情况下实现相同的行为?

标签: c#unity3dhololensmrtk

解决方案


根据您的描述,MRTK 中的Solver无需编写任何代码即可实现此想法。如果您不限于仅出于其他原因使用 ManipulationHandler,我强烈建议您使用RadialView。您可以参考以下步骤使用 Solver 实现此功能:

  1. SolverHandlerRadialView组件添加到小球体。
  2. RadialView组件中,在Tacked Target Type字段中选择Custom Overrideset属性。
  3. Transfom Override字段设置为大球体。
  4. Radial View组件中,将MaxViewDegrees设置为 360,将Min DistanceMax Distance设置为大球体的半径,
  5. 禁用平滑

现在,小球体可以围绕大球体旋转,并与大球体保持固定距离。


推荐阅读