Unity里提供了非常多的方式来创建一个四元数。 例如Quaternion.AngleAxis(float angle, Vector3 axis),它可以返回一个绕轴线axis旋转angle角度的四元数变换. 例如:Quaternion quater=Quaternion.AngleAxis(60,Vector3.up); 在第12个小文章中,讲解了四元数和欧拉角的关系。这里写了个小事例。 本代码 实现相机视角的变化以及旋转。 using UnityEngine; using System.Collections; /// <summary> /// Camera1. /// 测试相机的前近 ,后退以及旋转。 /// </summary> public class Camera1 : MonoBehaviour { //通过给该值赋值,来决定相机视角的大小,前进后退的感觉。 public float value; //要旋转的角。 public Vector3 vec; /// <summary> /// The cam. /// 这里直接用camera代替的话,就不用写该变量了。 /// </summary> private Camera cam; // Use this for initialization void Start () { cam = GetComponent<Camera> (); } // Update is called once per frame void Update () { //transform是默认的。代表的是挂载该脚本的Transform变化组件。 transform.rotation = Quaternion.Euler (new Vector3(vec.x,vec.y,vec.z)); cam.fieldOfView = value; } } |
|