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。
您还可以使用另一个游戏对象作为您想要旋转的游戏对象的父对象来解决此枢轴问题。
1.创建一个新的游戏对象
2.将其移动到正在旋转的对象的中心位置。
3。确定该位置后,将要旋转的对象拖动到 #1 中创建的游戏对象下方。您正在旋转的游戏对象现在应该是在#1中创建的游戏对象的子级。
您现在可以旋转在 #1 中创建的游戏对象。
虽然我讨厌这样做,但它也有效。我建议使用 3D 应用程序来移动枢轴点。
关于c# - 更改游戏对象枢轴点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45222191/