Unity RotateAround固定旋转

Unity RotateAround固定旋转

 

 

当前显示的为本地坐标系

 

//旋转视野

void rotateVeiw()

{

float x=Input.GetAxis("Mouse X");

float y=Input.GetAxis("Mouse Y");

//函数参数(旋转点,旋转轴,旋转量)

 

旋转效果相当于旋转轴平移到旋转点上后 沿此轴旋转相应的量。

例上图,如果沿本地坐标的Y轴旋转 则会出现旋转偏移到地下的情况。

必须使用下式 沿世界坐标的y轴旋转

transform.RotateAround(plear.position,Vector3.up,x);

 

当单纯的左右旋转时,x轴都为固定的,所以没有区别。

但当左右移动后,本地坐标的x轴和世界坐标的x轴有出入。

Unity RotateAround固定旋转 

 

 

 

 

 

 

 

 

例如:此时如果选用世界坐标x轴,则左右移动后的x轴还是固定的,左右移动移动一定的量后

世界就会开始倾斜:如下图所示:

Unity RotateAround固定旋转

 

 

 

 

 

 

 

 

 

所以此时我们应采用 本地坐标轴x

transform.RotateAround(plear.position, transform.right, y);

}