unity3d之关于旋转的一些笔记

1.最简单的旋转代码,只需要输入旋转的轴向和旋转速度就可以实现自身的旋转了
		this.transform.Rotate (Vector3.up * rotaSpeed); 

2.围绕某个点的旋转,参数分别是 1.需要围绕的点 2.旋转的轴向 3.旋转的速度
		this.transform.RotateAround (Vector3.zero, Vector3.up, rotaSpeed); 

3.旋转的角度
		rotaSpeed += Input.GetAxis("Horizontal"); 
		transform.eulerAngles = new Vector3(0, rotaSpeed, 0);

4.旋转的角度
		float tiltAroundZ = Input.GetAxis("Horizontal")*30;	
		float tiltAroundX = Input.GetAxis("Vertical")*30;
		Quaternion target = Quaternion.Euler(tiltAroundX, 0, tiltAroundZ);
		transform.rotation = Quaternion.Slerp(transform.rotation, target, Time.deltaTime * 2);

 3和4方法个人认为没有本质上的区别,只是修改的方法不同了而已。

直接修改eulerAngles属性的话,可先配置一个需要旋转的角度,这个角度是可变的,再实例化一个三维向量再需要旋转的轴输入先前配置好的角度就可以了。

希望修改rotation的话需要使用四元数quaternion进行配置,最后对rotation角度进行插值slerp。

最后需要提醒的是,旋转是旋转,角度是角度,这4种方法在update下测试,可简单的理解为:

旋转就是不断的旋转,旋转的速度决定了旋转的快慢;

角度的就是需要旋转的角度,你定义了多少度,那么游戏运行的时候就旋转了多少度,是一次性的。

这大概就是最大的不同了。

 
 
 

posted on 2014-12-22 21:53  快要结束了  阅读(4610)  评论(0编辑  收藏  举报

导航