一、物体的旋转
给物体调转一个旋转角度。
1、Quaternion四元组(x,y,z,w)
transfrom.rotation()=... 不方便操作,官方不建议用
2、Euler Angle 欧拉角
transfrom.eulerAngles = new Vector(0,45,0);
transfrom.LocalE ulerAngles = new Vector(0,45,0);
void Start(){
transfrom.localEulerAngles = new Vector(0,45,0);
}
这样就可以让物体旋转45度。
在Update 中修改角度持续旋转
Vector3 angles = transfrom.localEulerAngles;
anlges.y +=0.5f;
transfrom.localEulerAngles = angles;
优化,使之匀速旋转
float rotateSpeed = 30;
void Update(){
Vector3 angle = transfrom.localEulerAngles;
angle.y +=0.5f;
transfrom.localEulerAngles = angle;
}
匀速旋转:
void Update(){
float rotateSpeed = 30;
Vector3 angle = transfrom.localEulerAngles;
angle.y +=rotateSpeed * Time.deltaTime;
transfrom.localEulerAngles = angle;
}
二、相对旋转
Rotate():旋转一个相对角度
transfrom.Rotate(dx,dy,dz,space)
void Update(){
float rotateSpeed = 30;
float speed = rotateSpeed * Time.deltaTime;
this.transfrom.Rotate(0,speed,0,Space.Self);
}
三、自转与公转
自转:绕着自身轴旋转
公转:围绕另一个物体旋转
当父物体旋转时,带动子物体一并旋转。
例:卫星围绕地球转
viod Update(){
float rotateSpeed = 60;
float speed = rotateSpeed * Time.deltaTime;
Transfrom parent = this.transfrom.parent;
parent.Rotate(0,speed,0,Space.Self);
}
找到需要进行公转的物体的父物体,让父物体旋转。
使地球绕着地球的y轴旋转,使地球初始位置设为0(和地月系统的位置相同),而卫星绕着a1这个物体做公转,使a1旋转可以带动卫星旋转。由于地球和卫星所绕的旋转点不同,所以其角速度可以分别调节。
四、官方文档
unity.cn
-手册 manual
-Script API
Unity User Manual 2021.3 (LTS) - Unity 手册
unity 在安装的时候也有一份英文文档文章来源:https://www.toymoban.com/news/detail-415288.html
地址:Uhub\2021.3.18f1c1\Editor\Data\Documentation\en文章来源地址https://www.toymoban.com/news/detail-415288.html
到了这里,关于Unity3D 脚本3(旋转)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!