思路:
很简单,计算当前的旋转的四元数值 乘以 自身坐标系为准的旋转的目标四元数值。
例如:获取 "物体绕自身的 transform.up轴 旋转45度后的值:"
//获取沿 transform.up 轴 旋转45度后的 rotation值
Quaternion quaternion = transform.rotation * Quaternion.Euler(Vector3.up * 45f);
//再赋值给自身
transform.rotation = quaternion;
PS:
两个四元数相乘的几何意义我并不懂,最近要实现一个旋转的插值动画,需要提前知道旋转后的值。搞来搞去,就翻了一下Unity 的 Transform.Rotate 这个API的源码才发现的,如下:
【Unity源码】Transform