更改GameObject枢轴点

时间:2017-07-20 18:08:12

标签: c# unity3d

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

Rotator Code:

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);
    }
}

1 个答案:

答案 0 :(得分:3)

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

相关问题