transform.localEulerAngles = new Vector3(x, y,z);
其中,new Vector(x,y,z)为游戏物体最终旋转到的目标角度,最终的旋转角度是为了和transform.Rotate对比,如果我们在Update里面写
transform.localEulerAngles = new Vector3(0f, 10f, 0f); 这个的意思是我们就转一次 转10度就结束,我们如果想每帧都旋转
需要
agent += Time.deltaTime * 50;
transform.localEulerAngles = new Vector3(0f, agent, 0f);
transform.Rotate(new Vector3(0, 10f, 0));
这个就是一直转,每帧转10度
2.
agent += Time.deltaTime * 50;
transform.eulerAngles = new Vector3(0f, agent, 0f);
是以世界坐标系为参考,而不是以父级游戏物体的坐标系为准。
上面和下面的区别是当旋转物体不是顶级物体的时候,local是以父物体的坐标系为准,我们需要注意一下~~
agent += Time.deltaTime*50;
transform.rotation = Quaternion.Euler(new Vector3(0f,agent,45f));
rotation和rotate不一样,rotation是四元数,也是以世界坐标系为参照,不根据父级游戏物体为参照
- transform.localRotation和前面是一样的,是以父级物体为参照
5.最后一个就是
transform.Rotate(x,y,z):可以以自身坐标系也可以是世界坐标系分别以x度y度z度绕X轴、Y轴、Z轴匀速旋转