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下測試,可簡單的理解為:
旋轉就是不斷的旋轉,旋轉的速度決定了旋轉的快慢;
角度的就是需要旋轉的角度,你定義了多少度,那么游戲運行的時候就旋轉了多少度,是一次性的。
這大概就是最大的不同了。
