Unity中旋转对象的⼏种⽅式#⾃我总结#⽬录
错误⽤法
错误⽤法正确⽤法说明
获取 对象Z轴的旋转⾓度float angle_Z =
float angle_Z = transform.eulerAngles.z;
x, y, z ,w 分量不要直接修改/使⽤,
除⾮您⾮常了解四元数。
设置 对象Z轴的旋转⾓度为90度ation.z = 90;
transform.eulerAngles.z =90;
transform.eulerAngles = new Vector3 (
x, y, 90);
或
Quaternion.Euler(new Vector3(x, y, 90));
不要单独设置eulerAngles的x,y,z其
中任何⼀个变量
使⽤建议
官⽅API说:
transform.eulerAngles
public eulerAngles;
transform.eulerAngles = new Vector3(x,y,z); //为游戏物体最终旋转到的⽬标⾓度
可视为 = transform⾯板上Rotation的x y z值(当对象没有⽗物体时)
//欧拉⾓旋转,以度为单位。
//绝对⾓度
注意:不要单独设置其中任何⼀个变量。仅使⽤此变量读取⾓度并将其设置为绝对值。不要增加它们,因为当⾓度超过360度时,它将失败。请改⽤Transform.Rotate。
//x,y和z⾓度分别表⽰围绕z轴旋转z度,围绕x轴旋转x度和围绕y轴旋转y度。
transform. localEulerAngles
public eulerAngles;
transform. localEulerAngles = new Vector3(x,y,z); //⾯板⾓度(相对⾓度)
// transform⾯板上Rotation的x y z值
//欧拉⾓旋转,以度为单位。
//相对⾓度
public rotation;
//四元数
//绝对⾓度
Quaternion rotation= Quaternion.Euler(new Vector3(x, y, z));
关于四元数:
您⼏乎永远不会访问或修改单个四元数组件(x,y,z,w);⼤多数情况下,您只是采⽤现有的旋转(例如从),并使⽤它们来构建新的旋转(例如,在两个旋转之间平滑地插值)。您使⽤99%的时间的Quaternion函数是: ,,,,和。
transform.localRotation
public rotation;
//四元数
//相对⾓度
transform.localRotation = Quaternion.Euler(new Vector3(x, y, z));
transform.Rotate( )
旋转的顺序是:Z,X,Y
public void Rotate( eulerAngles, relativeTo = Space.Self);
transform.Rotate(Vector3.right * s * Time.deltaTime); //绕⾃⾝x轴旋转,每秒s度
transform.Rotate(Vector3.up * s * Time.deltaTime, Space.World); //绕世界Y轴旋转,每秒s度
public void Rotate(float xAngle, float yAngle, float zAngle, relativeTo = Space.Self);
transform.Rotate(angle, 0, 0); //绕⾃⾝x轴旋转angle度。
public void Rotate( axis, float angle, relativeTo = Space.Self);
绕 axis 旋转 angle ⾓度。
transform.Rotate(Vector3.up, angle);