unity3d.如何得到变换的结果.旋转而不改变游戏对象的变换



在Unity3d中,我将转换位置,旋转和缩放为Matrix4x4,以便绘制一些小摆设。我想让进入矩阵的旋转四元数旋转一定数量的欧拉角(角)这是我的尝试,我正在复制transform (temp),调用rotate(),然后将其旋转四元数传递到矩阵中。

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

不幸的是,当我这样做的时候,它实际上是旋转原始的变换,而不仅仅是一个临时的副本,因为我的意图。我怎样才能在四元数中加入一定量的欧拉角旋转?

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

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

最新更新