当前位置: 首页 > news >正文

UnityAPI的学习——Quaternion类

Quaternion又称为四元数,由x、y、z和w这4个分量组成,属于struct类型。
在Unity中,用Quaternion来存储和表示对象的旋转角度。

Quaternion类实例属性

在Quaternion类中,涉及的实例属性主要有eulerAngles

eulerAngles属性:欧拉角

基本语法

public Vector3 eulerAngles{ get; set; }

功能说明:此属性用来返回或设置Transform实例对应的欧拉角
1、对GameObject对象的Transform进行欧拉加的变换次序,先绕z轴旋转相应的角度,再绕x轴旋转相应的角度,最后再绕y轴旋转相应的角度。
2、对GameObject对象的旋转角进行赋值的方式通常有两种:第一种是将Quaternion实例赋值给transform的rotation;第二种是将三维向量代表的欧拉角直接赋值给transform的eulerAngles。

Quaternion类实例方法

在Quaternion类中涉及的实例方法有SetFromToRotation方法、SetLookRotation方法和ToAngleAxis方法。

SetFromToRotation方法:创建rotation实例

基本语法

public void SetFromToRotation(Vector3 fromDirection ,Vector3 toDirection);

功能说明:此方法用于创建一个从fromDirection到toDirection的rotation。

SetLookRotation方法:设置Quaternion实例的朝向。

基本语法

1public void SetLookRotation(Vector3 view);
2public void SetLookRotation(Vector3 view , Vector3 up);

功能说明:此方法的功能是对一个Quaternion实例的朝向进行设置。

ToAngleAxis方法:Quaternion实例的角轴表示

基本语法

public void ToAngleAxis(out float angle ,out Vector3 axis);
其中参数angle为旋转角,参数axis为轴向量

功能说明
此方法用于将Quaternion实例转换角轴表示。

Quaternion类静态方法

在Quaternion类中涉及的静态方法有Angle方法、Dot方法、Euler方法、FromToRotation方法、Inverse方法、Lerp方法、LookRotation方法、RotateTowards方法和Slerp方法。

Angle方法:Quaternion实例间夹角

基本语法

public static float Angle(Quaternion a ,Quaternion b);

功能说明
此方法用于返回从参数a到参数b变换的夹角。

Dot方法:点乘

基本语法

public static float Dot(Quaternion a,Quaternion b);

功能说明
此方法用于求参数a和b的点乘

Euler方法:欧拉角对应的四元数

基本语法

1public static Quaternion Euler(Vector3 euler);
2public static Quaternion Euler(float x,float y,float z);

功能说明
此方法用于返回欧拉角Vector3(x,y,z)对应的四元数Quaternion实例。

FromToRotation方法:Quaternion变换

基本语法

public  static Quaternion FromToRotation(Vector3 fromDirection ,Vector3 toDirection);

功能说明
此方法用来创建一个从参数fromDirection到toDirection的Quaternion变换。

Inverse方法:逆向Quaternion值

基本语法

public static Quaternion Inverse(Quaternion rotation);

功能说明
此方法用于返回参数rotation的逆向Quaternion值。

Lerp方法:线性插值

基本语法

public static Quaternion Lerp(Quaternion from ,Quaternion to , float t);

功能说明
此方法用于返回从参数from到to的线性插值

LookRotation方法:设置Quaternion的朝向

基本语法

1public static Quaternion LookRotation(Vector3 forward);
2public static Quaternion LookRotation(Vector3 forward ,Vector3 upwards);
其中参数forward为返回Quaternion的forward朝向

功能说明
此方法用于返回一个Quaternion实例,使GameObject对象的z轴朝向参数forward方向。

RotateTowards方法:Quaternion插值

基本语法

public static Quaternion RotateTowards(Quaternion from ,Quaternion to , float maxDegreesDelta);
其中参数from为起始Quaternion,参数to为结束Quaternion,参数maxDegreesDelta为每帧最大角度值

功能说明
此方法用于返回从参数from到to的插值,且返回值的最大角度不超过maxDegreesDelta。

Slerp方法:球面插值

基本语法

public static Quaternion Slerp(Quaternion from ,Quaternion to ,float t);

功能说明
此方法用于返回从参数from到to的球面插值

Quaternion类运算符

在Quaternion类中涉及的运算符运算有两个Quaternion实例相乘的运算,一个Quaternion实例和一个Vector3相乘的元素

operator *(lhs : Quaternion , rhs: Quaternion)

功能说明
此运算符用于返回两个Quaternion实例相乘后的结果

operator *(rotation : Quaternion , point : Vector3)

功能说明
此运算符的作用是对参数坐标点point进行rotation变换

http://www.lryc.cn/news/312491.html

相关文章:

  • chromedriverUnable to obtain driver for chrome using ,selenium找不到chromedriver
  • 剑指offer面试算法题目,自己总结的
  • 原生IP是什么?如何测试代理是不是原生IP?
  • 1、MQ_介绍、优缺点、类型等
  • Go-gin-example 第三部分 编写一个简单的文件日志系统
  • SQL中如何添加数据
  • 如何更好的理解设计模式之桥接模式
  • 归并排序
  • ELF 1技术贴|在NXP源码基础上适配开发板的按键功能
  • Linux:kubernetes(k8s)pod的基础操作(6)
  • 【Docker】掌握 Docker 镜像操作:从基础到进阶
  • flink重温笔记(十一):Flink 高级 API 开发——flink 四大基石之 Checkpoint(详解存储后端)
  • React富文本编辑器开发(九)位置
  • 一次直播和图像识别技术应用的探索之旅
  • Ubuntu 下使用 Pybind11 实现 C++ 调用 Python 接口的示例
  • docker安装和使用kafka
  • CTP-API开发系列之接口对接准备
  • C++小记 -链表
  • 网络协议学习DAY1
  • vue3中全局变量的定义和获取
  • 1.2 数据模型 数据库系统概论
  • C#中openFileDialog 对话框不在最顶层,TopMost的异常情况
  • 信息安全与阿里云等保三级方案实践总结
  • 嵌入式学习记录——线程
  • 同步服务器操作系统公网仓库到本地 _ 统信UOS _ 麒麟KYLINOS
  • 【数仓】flume常见配置总结,以及示例
  • 统计信息锁定
  • 光猫改为bridge模式
  • 回溯算法01-组合(Java)
  • 初始网络 --- 网络基础