Unity3D 脚本3(旋转)

一、物体的旋转

给物体调转一个旋转角度。

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;

扫描二维码关注公众号,回复: 15543466 查看本文章

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 在安装的时候也有一份英文文档

地址:Uhub\2021.3.18f1c1\Editor\Data\Documentation\en

猜你喜欢

转载自blog.csdn.net/helongss/article/details/129222278