使用平台旋转播放器而无需育儿

时间:2018-03-25 13:32:40

标签: c# unity3d rotation

我目前正在制作一款小型平台3D游戏,但遗憾的是我无法让玩家在平台上正常旋转,这里的事情就是我不想让玩家成为玩家的孩子。平台,到目前为止,我已经设法让他顺利地与平台一起移动,但轮换仍然无处可去,这是我用于轮换的代码:

player.transform.rotation *= platform.rotation;

这是我得到的效果: Rotation Error 不是很好 :( 我想解决方案是简单的,一些公式,但不幸的是我对数学不是很好:(谢谢你们,我希望你能帮助我。

1 个答案:

答案 0 :(得分:0)

我将向您展示一个简单的脚本示例,该示例使得立方体通过输入旋转,同时对其所在平台的旋转作出反应:

rotation

平台轮换调整的逻辑是:

  1. 启动平台的A四元数(在您的情况下,当多维数据集对象爬上平台时获取它)
  2. Drotation通常围绕局部Y轴旋转立方体。
  3. 然后检查平台的Actual rotation * Inverse(Previous Rotation)是否已更改,如果是:

    3.a通过操作rotation获取平台自上一帧旋转的程度;这个操作类似于两个四元数之间的区别

    3.b使用*=运算符将该四元数添加到多维数据集的{{1}}

    3.c将平台的上一个旋转值设置为新的旋转值。

  4. 这就是它。