四元数(Quaternion)

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,但这个更好)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值