更改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应用程序来移动枢轴点。