D、Quaternion类运算符
在Quaternion类中涉及的元算符运算有两个Quaternion实例相乘的运算、一个Quaternion实例和一个Vector3相乘的运算
1、B.rotation*=A.rotation;
用于返回两个Quaternion实例相乘后的结果
B会绕着B的局部坐标系的z、x、y轴分别旋转A.eulerAngles.z度、A.eulerAngles.x度、A.eulerAngles.y度
此方法主要用于物体自身旋转变换
2、transform.position+=transform.rotation*A
对参数坐标点point进行rotation变换,A为Vector3实例
transform对应的对象便会沿着自身坐标系中向量A的方向移动A的模长的距离
transform与A相乘主要来确定移动的距离和方向
3、注
A,两个Quaternion实例的乘积,结果为Quaternion类型
B,Quaternion实例和Vector3的乘积,结果为Vector3类型
相同之处:
A,B相同之处在于都通过自身坐标系的相乘方式来实现在世界坐标系中的变换
不同之处:
①A主要用来实现transform绕自身坐标系中的某个轴进行旋转
B主要用来实现transform沿着自身坐标系的某个方向进行移动
②B的相乘顺序只有Quaternion*Vector3一种形式,而没有Vector3*Quaternion的形式
③由于他们都是相对自身的坐标系进行的旋转或移动,故而当自身坐标系的轴向和世界坐标系的轴向不一致时,他们绕着自身坐标系中某个轴向的变动都会影响到物体在世界坐标系的各个坐标轴的变动