栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

Unity中的旋转方式

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity中的旋转方式

1. transform.rotation 赋值四元数

float x;
void Update () 
{
    x += Time.deltaTime * 10;
    transform.rotation = Quaternion.Euler(x,0,0);
}
Euler返回一个旋转,它围绕 z 轴旋转 z 度、围绕 x 轴旋转 x 度、围绕 y 轴旋转 y 度(按该顺序应用)。

注意:将欧拉角存储在一个类变量中,并仅使用该变量作为欧拉角进行应用,但从不依赖于读回欧拉值。若从四元数读取、修改并写入欧拉值会造成万向死锁。

错误实例:

void Update () 
{
    var angles = transform.rotation.eulerAngles;
    angles.x += Time.deltaTime * 10;
    transform.rotation = Quaternion.Euler(angles);
}

2. transform.Rotate 方法

void Update(){
    transform.Rotate(new Vector3(0,1f,0),Space.Self);
}

第一个参数:每帧旋转的角度和绕的轴;第二个参数:参考坐标系。

3. transform.RotateAround 方法

void Update(){
    transform.RotateAround(transform.position,transform.up,Time.deltaTime * speed);
}

 第一个参数:物体围绕旋转的位置;第二个参数:旋转绕的轴;第三个参数:角度

4. transform.eulerAngels 给欧拉角赋值

float x;
void Update () 
{
    x += Time.deltaTime * 10;
    transform.eulerAngles = new Vector3(0,x,0);
}

与第一种情况相同要注意万向死锁。

5. Quaternion.identity 无旋转

void Update(){
    transform.rotation = Quaternion.identity;
}

6. Quaternion.Slerp 球形插值(参数3不能为负)

Slerp在四元数 a 与 b 之间按比率 t 进行球形插值。参数 t 限制在范围 [0, 1] 内。
Inverse返回 rotation 的反转。
Lerp在 a 和 b 之间插入 t,然后对结果进行标准化处理。参数 t 被限制在 [0, 1] 范围内。
private float x = 0.0f;
public float speed;
void Update(){
    x += Time.deltaTime * speed;
    var target = Quaternion.Euler(0,x,0);
    transform.rotation = Quaternion.Slerp(transform.rotation,target,Time.deltaTime * speed);
}

7. 刚体.angularVelocity

以弧度每秒为单位测量的刚体的角速度矢量。在大多数情况下,您不应直接修改它,因为这会导致不切实际的行为。

public Rigidbody rb;
void Update(){
    rb.angularVelocity = new Vector3(0,2,0);
}

首先要获取物体的刚体组件。,三维向量作为角速度。 

8. transform.LookAt 方法

物体绕up轴(y轴)转向targe方向。 

public transform target;
void Update(){
    transform.LookAt(target,transform.up);
}

9. Quaternion.FromToRotation 从from到to旋转

通常情况下,使用该方法对变换进行旋转,使其的一个轴(例如 Y 轴)跟随世界空间中的目标方向 /toDirection/。

void Start(){
    transform.rotation = Quaternion.FromToRotation(Vector3.up,transform.forward);
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/906424.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号