unity3d。如何在不实际改变gameobjects变换的情况下获得transform.rotate的结果

时间:2014-06-24 15:31:58

标签: rotation unity3d quaternions

在Unity3d中,我正在进入转换位置,旋转和缩放到Matrix4x4中以绘制一些小玩意儿。我想将旋转四元数输入到矩阵中以旋转一定量的欧拉角(角度) 这是我的尝试,我正在制作转换(temp)的副本,在其上调用rotate(),然后将其旋转四元数传递给矩阵。

    Transform temp = transform;
    temp.Rotate(new Vector3(0f,0f,Angle));
    Matrix4x4 rotationMatrix = Matrix4x4.TRS(transform.position,temp.rotation,transform.lossyScale);

不幸的是,当我这样做时,它实际上会旋转原始变换,而不仅仅是我想要的临时副本。 如何在四元数中添加一定量的欧拉角旋转?

1 个答案:

答案 0 :(得分:0)

我想我已回答了这个问题,但实际上并没有解决我的问题......

 Matrix4x4 rotationMatrix = Matrix4x4.TRS(transform.position,transform.rotation*Quaternion.AngleAxis(Angle,Vector3.forward),transform.lossyScale);