更改GameObject枢轴点

Unity对象不在中心旋转。 这一直很好,直到一个小时,我不相信我改变了代码或任何东西。 我也试过弄乱左上角的枢轴/中心按钮,但没有任何帮助。 游戏对象不是在中间旋转。

旋转码:

using UnityEngine; public class Rotator : MonoBehaviour { public float speed = 100f; // Update is called once per frame void Update() { transform.Rotate(0f, 0f, speed * Time.deltaTime); } } 

Rotate函数Space.Self的默认空间。 您应该将Space.World提供给它的第三个参数,使其在世界空间中旋转。

 transform.Rotate(0f, 0f, speed * Time.deltaTime, Space.World); 

如果这不能解决您的问题,您必须在任何3D应用程序(如Maya)中打开您的模型,然后重置/居中枢轴点,然后将其重新导入Unity。

您还可以使用另一个GameObject作为要旋转的GameObject的父级来解决此枢轴问题。

1.创建一个新的GameObject

2.将其移动到您正在旋转的物体的中心位置。

3.当您对该位置没问题时,在#1中创建的GameObject下拖动您正在旋转的对象。 您正在旋转的GameObject现在应该是#1中创建的GameObject的子节点。

您现在可以旋转#1中创建的GameObject。

虽然,我讨厌这样做,但它也有效。 我建议使用3D应用程序来移动枢轴点。