用三个数去存储物体在x、y、z轴的旋转角度。
补充:
代码如下:
public class EulerDemo : MonoBehaviour
{
public Vector3 euler;
void Update()
{
euler = this.transform.eulerAngles;
}
private void OnGUI()
{
if (GUILayout.RepeatButton("沿x轴旋转"))
{
this.transform.eulerAngles += Vector3.right;
}
if (GUILayout.RepeatButton("沿y轴旋转"))
{
this.transform.eulerAngles += Vector3.up;
}
if (GUILayout.RepeatButton("沿z轴旋转"))
{
this.transform.eulerAngles += Vector3.forward;
}
}
}
代码如下:
public class QuaternionDemo : MonoBehaviour
{
public Vector3 euler;
void Update()
{
euler = this.transform.eulerAngles;
}
private void OnGUI()
{
if (GUILayout.RepeatButton("沿x轴旋转"))
{
/*
//方法一
Quaternion qt = new Quaternion();
//旋转轴
Vector3 axis = this.transform.right;
//旋转角度
float rad = 1 * Mathf.Deg2Rad;
qt.x = Mathf.Sin(rad / 2) * axis.x;
qt.y = Mathf.Sin(rad / 2) * axis.y;
qt.z = Mathf.Sin(rad / 2) * axis.z;
qt.w = Mathf.Cos(rad / 2);
this.transform.rotation = qt;
//方法二
this.transform.rotation *= Quaternion.Euler(Vector3.right);
//方法三
this.transform.Rotate(Vector3.right);
*/
this.transform.Rotate(Vector3.right);
}
if (GUILayout.RepeatButton("沿y轴旋转"))
{
this.transform.Rotate(Vector3.up);
}
if (GUILayout.RepeatButton("沿z轴旋转"))
{
this.transform.Rotate(Vector3.forward);
}
}
}