限制带有 ManipulationHandler 脚本的对象的移动

Restrict the movement of an Object with ManipulationHandler-script attached

我想在我的场景中使用附加在大球体上的 ManipulationHandler 脚本移动小球体。

小球体的移动需要限制在大球体的"shell"内。

我已经完成了 behaviour(link 提供了一个 gif)而不使用 Manipulation-handler,在 Update-function 中更新了小球体的 X 和 Y。

有没有一种方法可以在不重写 ManipulationHandler 的情况下实现相同的行为?

根据您的描述,Solver in MRTK be able to implement this idea without even writing any code. If you are not limited to only using ManipulationHandler for other reasons, I highly recommend that you to use RadialView。您可以参考以下步骤使用 Solver 实现此功能:

  1. SolverHandlerRadialView 组件添加到小球体。
  2. RadialView 组件中,select Custom Overrideset 属性 在 Tacked目标类型 字段。
  3. Transfom Override 字段设置为大球体。
  4. Radial View组件中,设置MaxViewDegrees为360,设置Min Distance到大球体半径的最大距离
  5. 禁用平滑 .

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