Unity3d 统一-从单轴移动过渡到绕圆旋转时的匹配速度

Unity3d 统一-从单轴移动过渡到绕圆旋转时的匹配速度,unity3d,velocity,rigid-bodies,Unity3d,Velocity,Rigid Bodies,我正在做一个简单的项目,由一个球体和一个沿x轴推动的刚体组成。球需要转90度,然后继续直线上升 我创建了一个长方体作为轴心/旋转点,并将其放置在90度过渡起点上方5个单位处,距离过渡终点5个单位处。我已经创建了两个作为触发器工作的碰撞器;一个在90度过渡的起点,一个在90度过渡的终点 因此,我的球将沿着x轴缩放,并击中第一个触发器。当它发生时,我将球的速度重置为零,并将球设置为用作枢轴/旋转点的长方体的父对象。然后,我将角速度应用于长方体,使球围绕枢轴点精确旋转5个单位。当球在过渡结束时撞击第二

我正在做一个简单的项目,由一个球体和一个沿x轴推动的刚体组成。球需要转90度,然后继续直线上升

我创建了一个长方体作为轴心/旋转点,并将其放置在90度过渡起点上方5个单位处,距离过渡终点5个单位处。我已经创建了两个作为触发器工作的碰撞器;一个在90度过渡的起点,一个在90度过渡的终点

因此,我的球将沿着x轴缩放,并击中第一个触发器。当它发生时,我将球的速度重置为零,并将球设置为用作枢轴/旋转点的长方体的父对象。然后,我将角速度应用于长方体,使球围绕枢轴点精确旋转5个单位。当球在过渡结束时撞击第二个碰撞器时,它将取消父对象,并重新应用速度,以便球可以继续笔直向上运动

这就是问题所在;如果球距离枢轴点5个单位,则90度过渡的移动距离为:5*2=圆直径*PI=圆周围的31.4个单位距离/4=整个90度过渡的7.84个游戏单位

那么,如何匹配球在x轴上单独移动时的速度,以便在使用枢轴点刚体绕圆轴的moveRotation函数进行转换时具有相同的速度

如果当我击中第一个触发器时,速度向量为(-10,0,0),我如何计算输入到moveRotation函数中的内容,以便球在远离枢轴点旋转5个单位时,仍然以每秒10个单位的速度移动


以原始速度(-10,0,0)乘以90度过渡所需的移动距离(7.85个单位)看起来非常接近,但我知道如何检查它

数学很简单:“线速度=半径*角速度”-如果你用度来表示角速度,你必须转换成弧度才能使这个公式起作用。@JinJi:我的数学相当糟糕;你的公式是否也表示角速度=线速度*半径?这是我猜到的公式,看起来很接近。当我按下第一个触发器时,我必须计算角速度,当我按下第二个触发器时,我将再次计算线速度。@谢谢JinJi,看起来它工作正常。如果变量有问题,可以使用数字来获得更好的图像:“线速度=半径*角速度”类似于:“8=2*4”你知道“4=8/2”,所以“角速度=线速度/半径”-这将得到角速度的单位:“弧度/秒”。如果在函数中使用“每秒度数”,则必须乘以(180/PI)明白了!再次感谢你,你的帮助很有价值,金鸡