角度
this.transform.rotation(四元数)
界面上的xyz(相对于世界坐标)
this.transform.eulerAngles;
相对于父对象
this.transform.localEulerAngles;
设置角度和设置位置一样,不能单独设置xzy,要一起设置
如果我们希望改变的 角度 是面板上显示的内容 那一点是改变 相对父对象的角度
this.transform.localEulerAngles = new Vector(10,10,10);
this.transform.localEulerAngles = new Vector(10,10,10);
旋转
自转
第一个参数 相当于 是旋转的角度 每一帧
第二个参数 默认不填 就是相对于自己坐标系 进行的旋转
void Update(){
//绕着Y轴转,相对于自己的坐标系
this.transform.Rotate(new Vector3(0, 10,0) * Time.daltaTime);
//绕着世界坐标的Y轴转
this.transform.Rotate(new Vector3(0, 10,0) * Time.daltaTime,Space.World);
}
相对于某一个轴 转多少度
参数一:是相对哪个轴进行转动
参数二:是转动的 角度 是多少
参数三:默认不填 就是相对于自己的坐标系 进行旋转
// 如果填 可以填写相对于 世界坐标系进行旋转
void Update(){
//绕着自己的x轴正方向旋转,10*Time.deltaTime是角度
this.transform.Rotate(Vector3.right, 10*Time.deltaTime);
//绕着世界坐标的x轴正方向
this.transform.Rotate(Vector3.right, 10*Time.deltaTime,Space.World);
}
相对于某一个点转
参数一:相当于哪一个点 转圈圈
参数二:相对于那一个点的 哪一个轴转圈圈
参数三:转的度数 旋转速度 * 时间
void Update(){
//绕过过原点的x轴正方向转
this.transform.RotateAround(Vector3.zero, Vector3.right, 10*Time.deltaTime);
}
练习
通过head.localEulerAngles得到的角度 不会出现负数的情况
虽然界面上显示出了负数 但是 通过代码获取 始终 只能得到0~360之间的数
#region 练习题二
//炮台左右来回旋转
head.Rotate(Vector3.up, headRotateSpeed * Time.deltaTime);
//炮管上下来回旋转
pkPos.Rotate(Vector3.right, pkPosRotateSpeed * Time.deltaTime);
//通过head.localEulerAngles得到的角度 不会出现负数的情况
//虽然界面上显示出了负数 但是 通过代码获取 始终 只能得到0~360之间的数
//只能是0到360 那就只有特殊判断了
if (!(head.localEulerAngles.y >= 315 && head.localEulerAngles.y <= 360) &&
head.localEulerAngles.y >= 45 && headRotateSpeed > 0)
headRotateSpeed = -headRotateSpeed;
else if (!(head.localEulerAngles.y <= 45 && head.localEulerAngles.y >= 0) &&
head.localEulerAngles.y <= 315 && headRotateSpeed < 0)
headRotateSpeed = -headRotateSpeed;
//只能是0到360 那就只有特殊判断了
if (!(pkPos.localEulerAngles.x >= 350 && pkPos.localEulerAngles.x <= 360) &&
pkPos.localEulerAngles.x >= 10 && pkPosRotateSpeed > 0)
pkPosRotateSpeed = -pkPosRotateSpeed;
else if (!(pkPos.localEulerAngles.x <= 10 && pkPos.localEulerAngles.x >= 0) &&
pkPos.localEulerAngles.x <= 350 && pkPosRotateSpeed < 0)
pkPosRotateSpeed = -pkPosRotateSpeed;
#endregion