在Unity

时间:2017-05-02 18:37:32

标签: c# unity3d

我想将水平方向水平旋转90度。所以我会写

transform.Rotate(new Vector3(90, 0, 0));

但这似乎是错误的。

transform.Rotate(new Vector3(0, 90, 0));

transform.Rotate(new Vector3(90, 0, 0), Space.World);

transform.Rotate(new Vector3(90, 0, 0), Space.Self);

似乎也是错的。我只是想在它自己的轴上旋转它。

我怎样才能实现=?

enter image description here

3 个答案:

答案 0 :(得分:2)

立方体的中心点不在其几何形状的中心。它在旋转时移动 - enter image description here

如果要在不移动的情况下旋转它,就需要将立方体的中心放在它的几何体中心。

答案 1 :(得分:0)

vector = Quaternion.Euler(0,-90,0)* vector; 试试这个

答案 2 :(得分:0)

检查多维数据集的轴心点 如果它是从某个地方导入的,那么它的枢轴可能不在多维数据集的0,0,0中,在场景中创建一个新的EmptyGameobject,并将多维数据集作为新obj的子项,调整它的位置以便新的游戏对象位于在立方体的0,0,0位置。

然后应用旋转它应该没问题。 (我知道这种方法听起来很棘手,但是,这是改变Unity中游戏对象枢轴点的唯一合法方式)

关于轮换

有两种旋转方式:

如果瞬间旋转你应该没问题

否则,如果你想让它慢慢旋转。使用:

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