旋转

一种以欧拉角度量的旋转。
transform.eulerAngles(x,y,z);
表示绕x,y,z分别旋转的度数。

注意,只能对其设置绝对角度值,不建议使用+=来设置角度,因为超过360度会出现错误,若需要使用+=建议使用Transform.rotate(x,y,z) 。且建议每次赋值都赋全(x,y,z)三个参数。即不建议使用诸如eulerAngles.x=10这样的赋值。

demo:
    public Transform target;    
    public float yRotation = 5f;    
    public float xRotation = 5f;

    // Use this for initialization
    void Start () { }

    // Update is called once per frame
    void Update () 
    {        
    if (target!=null)       
    {            
      yRotation += Input.GetAxis("Horizontal");           //← →箭头
      xRotation += Input.GetAxis("Vertical");            //↑ ↓箭头
      target.eulerAngles = new Vector3(xRotation,yRotation,0);       //按下左右将围绕Y轴匀速旋转,按下上下将围绕X轴匀速旋转
//这里若是使用target.rotate(xRotation,yRotation,0),将会发现一开始target围绕X,Y做5,5旋转,且是持续的,随着按上下左右键,旋转的幅度会相应增加或者减少。
     }
     }


比较:transform.eulerAngles(x,y,z);是一种在最原始的基础上设置其旋转角x,y,z的。
而transform.rotate(x,y,z);是一种旋转,设置后,物体将会旋转指定的x,y,z值。

原文地址:https://www.cnblogs.com/xiao-wei-wei/p/3372408.html