旋转
一种以欧拉角度量的旋转。
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值。