在Unity3d中,我正在进入转换位置,旋转和缩放到Matrix4x4中以绘制一些小玩意儿。我想将旋转四元数输入到矩阵中以旋转一定量的欧拉角(角度) 这是我的尝试,我正在制作转换(temp)的副本,在其上调用rotate(),然后将其旋转四元数传递给矩阵。
Transform temp = transform;
temp.Rotate(new Vector3(0f,0f,Angle));
Matrix4x4 rotationMatrix = Matrix4x4.TRS(transform.position,temp.rotation,transform.lossyScale);
不幸的是,当我这样做时,它实际上会旋转原始变换,而不仅仅是我想要的临时副本。 如何在四元数中添加一定量的欧拉角旋转?
答案 0 :(得分:0)
我想我已回答了这个问题,但实际上并没有解决我的问题......
Matrix4x4 rotationMatrix = Matrix4x4.TRS(transform.position,transform.rotation*Quaternion.AngleAxis(Angle,Vector3.forward),transform.lossyScale);