Unity中物体的旋转(Rotation)是由四元数控制的
四元数的乘法运算就是旋转的叠加
this.transform.rotation*=Quaternion.Euler(0, 1, 0);*号而不是+号 //可使物体沿自身坐标Y轴旋转
四元数右乘一个向量表示把向量旋转对应的角度
Vector3 pos = Quaternion.Euler(0, 30, 0) * new Vector3(0, 0, 10);
改变物体旋转角度方法
transform.rotation=Quaternion.Euler(new Vector3(0,0,0)); //1.通过欧拉角转为四元数
transform.eulerAngles=new Vector3(45,45,45);//2.直接改变物体欧拉角
Quaternion.LookRotation;//改变物体转向,使其望向指定位置
游戏中可以实现主角望向敌人的效果
//敌人位置-主角位置,获得一个从主角指向敌人的向量
Vector3 offset = enemy.position - transform.position; //y轴为0,转向后
//人物上下高度就不会出现倾斜(也可以不为0,故意有此效果)
offset.y = 0; transform.rotation=Quaternion.LookRotation(offset);
匀速旋转
Quaternion.RotateTowards()
旋转插值运算
Quaternion.Slerp://角度的差值运算(也有Lerp,但这个更好)