我正在做一个简单的项目,该项目由一个带有刚体的球沿 x 轴推动。球需要转过 90 度并继续直线上升。
我创建了一个框作为枢轴/旋转点,并将其放置在 90 度过渡起点上方 5 个单位处,距离过渡结束处正好 5 个单位。我创建了两个用作触发器的对撞机;一个在开始,一个在 90 度过渡的最后。
所以我的球会在 x 轴上缩放并击中第一个触发器。当它发生时,我将球的速度重置为零并将球作为轴心/旋转点的盒子。然后我对盒子应用了角速度,这样球将围绕枢轴点旋转 5 个单位。当球在过渡结束时击中第二个对撞机时,它是非父级的,并且重新应用速度,因此球可以继续笔直向上。
所以这就是问题所在;如果球距离枢轴点 5 个单位,则 90 度过渡所经过的距离将类似于:5 * 2 = 圆直径 * PI = 31.4 个单位绕圆的距离 / 4 = 7.84 个游戏单位整个 90 度的过渡。
那么如何匹配球仅在 x 轴上移动时的速度,以便在使用枢轴点刚体的 moveRotation 函数围绕圆轴进行过渡时具有相同的速度?
如果当我击中第一个触发器时我的速度矢量为 (-10, 0, 0) 我如何计算将什么输入到 moveRotation 函数中,以便离枢轴点旋转 5 个单位的球仍在移动每秒10个单位?
取原始速度 (-10, 0, 0) 并乘以 90 度过渡所需的行进距离(7.85 个单位)看起来非常接近,但我可以弄清楚如何检查它。