C# 如何旋转下落并被拉动的物体?

C# 如何旋转下落并被拉动的物体?,c#,unity3d,C#,Unity3d,我的游戏中有球掉落(重力),在更新方法中,我还添加了轻微的拉力,因为风在吹: transform.Translate(new Vector3(sidewaysDrag,0)); 现在,我也想绕Z轴旋转我的游戏对象(这是一个2D游戏),我尝试过: transform.Rotate(Vector3.forward * Time.deltaTime * 200); 但我猜我的锚是错的,因为整个物体不是绕着自身旋转,而是以一条很大的曲线旋转。如果我注释掉平移,旋转是正确的…将球对象放在另一个空对象(

我的游戏中有球掉落(重力),在更新方法中,我还添加了轻微的拉力,因为风在吹:

transform.Translate(new Vector3(sidewaysDrag,0));
现在,我也想绕Z轴旋转我的游戏对象(这是一个2D游戏),我尝试过:

transform.Rotate(Vector3.forward * Time.deltaTime * 200);

但我猜我的锚是错的,因为整个物体不是绕着自身旋转,而是以一条很大的曲线旋转。如果我注释掉平移,旋转是正确的…

将球对象放在另一个空对象(父对象)下

并平移父对象,旋转球


或者平移球的世界位置,旋转球的局部旋转,这是因为你使用的是Vector3.forward,它实际上指向世界空间中的Z轴,你需要局部空间中的Z轴,你可以通过执行
transform.TransformDirection(Vector3.forward)来实现

如果删除平移,旋转是否正确?相对于旋转的对象或其坐标系旋转的原点是否正确?@Eric Lippert我正在使用另一种方式旋转,请参阅更新的编辑。如果我不翻译,它会工作。如果你有翻译和旋转,它会围绕翻译前的点旋转吗?在
FixedUpdate
上执行。