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.mzph.cn/news/726197.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣刷题Day11--21. 合并两个有序链表(js)

目录 1,题目 2,代码 2.1迭代思想 2.2递归思想 3,学习与总结 3.1js中的链表类 3.2递归思想 3.3提醒自己 1,题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 2&am…

YOLOv9独家原创改进|加入RT-DETR中的HGBlock!

专栏介绍:YOLOv9改进系列 | 包含深度学习最新创新,主力高效涨点!!! 一、改进点介绍 HGBlock是RT-DETR中使用的特征提取模块。 二、HGBlock模块详解 2.1 模块简介 HGBlock的主要思想: 一个并联的卷积模块与…

java上传本地文件到服务器共享

在Windows系统中,将本地文件夹中的某个文件上传到另一台Windows服务器电脑上,前提:两台电脑网络互通,要接收文件的Windows服务器文件夹开启了共享,可以被本机用如下方式进行写入和读取: 如何配置服务器共享请自行百度查找。 所需要的maven依赖如下: <dependency>…

AI辅助研发的崭新前景:技术进展、应用案例与挑战机遇

目录 前言1. 技术进展&#xff1a;深度学习、强化学习与生成模型的崭新应用1.1 深度学习的崭新应用1.2 强化学习的优化应用1.3 生成模型在创意设计中的应用 2. 行业应用案例&#xff1a;医药、汽车、电子等领域的AI助力2.1 医药领域的AI辅助研发2.2 汽车设计中的AI助力2.3 电子…

Qwen-Agent自定义Tool

qwen-agent项目部署 1、下载qwen-agent https://github.com/QwenLM/Qwen-Agent2、安装依赖环境 pip3 install -r requirements.txt自定义Tool cd qwen_agent/tools参考其他的工具&#xff0c;我这里创建了一个查询手机号归属地的工具get_mobile_address.py&#xff1a; im…

猜猜:哪句古诗与古代女子妆容有关?2024.3.8蚂蚁庄园今日答案:金盆水里拨红泥

蚂蚁庄园是一款爱心公益游戏&#xff0c;用户可以通过喂养小鸡&#xff0c;产生鸡蛋&#xff0c;并通过捐赠鸡蛋参与公益项目。用户每日完成答题就可以领取鸡饲料&#xff0c;使用鸡饲料喂鸡之后&#xff0c;会可以获得鸡蛋&#xff0c;可以通过鸡蛋来进行爱心捐赠。其中&#…

Docker部署ruoyi前后端分离项目

目录 一. 介绍前后端项目 二. 搭建局域网 2.1 创建网络 2.2 注意点 三. Redis 3.1 安装 3.2 配置redis.conf文件 3.3 测试 四. 安装MySQL 4.1 安装 4.2 配置my2.cnf文件 4.3 充许远程连接 五. 若依部署后端服务 5.1 数据导入 5.2 使用Dockerfile自定义镜像 5.3 运行…

Elasticsearch:从 ES|QL 到 Python 数据帧

在我之前的文章 “Elasticsearch&#xff1a;ES|QL 查询展示”&#xff0c;我展示了如何在 Kibana 中使用 ES|QL 对索引来进行查询及统计。在很多的情况下&#xff0c;我们需要在客户端中来对数据进行查询&#xff0c;那么我们该怎么办呢&#xff1f;我们需要使用到 Elasticsea…

能源大数据采集,为您提供专业数据采集服务

随着经济的不断发展&#xff0c;能源产业也逐渐成为国民经济的支柱产业之一。而对于能源行业来说&#xff0c;数据采集是一项至关重要的工作。以往&#xff0c;能源企业采集数据主要依靠人工收集、整理&#xff0c;但是这种方式不仅效率低下&#xff0c;而且容易出现数据不准确…

ai智能写作软件推荐,ai一键生成作文

很多小伙伴们都觉得写作是一件让人头痛的事情。因为不仅要让自己的文字流畅有条理&#xff0c;还需要通过一些修辞手法来使文章更加生动有趣。市场上不断涌现出各种各样的AI人工智能原创文章写作平台&#xff0c;哪些才好用&#xff0c;才是适合自己的呢&#xff1f; 爱制作ai …

如何在“Ubuntu 服务器上使用MariaDB配置Galera集群”?

一、 安装好三个MariaDB数据库 如何使用“Ubuntu 20.04桌面版&#xff0c;安装MariaDB数据库“&#xff1f;win10系统&#xff1f;-CSDN博客 二、第一个node1&#xff0c;修改 sudo nano /etc/mysql/conf.d/galera.cnf [mysqld] binlog_formatROW default-storage-enginei…

功能安全概念梳理二

什么是SEooC&#xff1f;SEooC和element有什么不一样&#xff1f; 参考链接&#xff1a;车规级 | ISO26262中对独立安全要素&#xff08;SEooC&#xff09;的开发要求 汽车功能安全(ISO 26262)系列: 到底什么是SEooC开发 安全措施(Safety measure)和安全机制(Safety mechanis…

【Leetcoode】2917. 找出数组中的 K-or 值

文章目录 题目思路代码结果 题目 题目链接 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。 nums 中的 K-or 是一个满足以下条件的非负整数&#xff1a; 只有在 nums 中&#xff0c;至少存在 k 个元素的第 i 位值为 1 &#xff0c;那么 K-or 中的第 i 位的值才是 1 。…

安卓手机投屏到win10系统电脑,在电脑上可操作手机

使用scrcpy工具实现 scrcpy 就是通过 adb 调试的方式来将手机屏幕投到电脑上&#xff0c;并可以通过电脑控制您的 Android 设备。它可以通过 USB 连接&#xff0c;也可以通过 Wifi 连接&#xff08;类似于隔空投屏&#xff09;&#xff0c;而且不需要任何 root 权限&#xff0…

openGauss基于存储复制的资源池化安装部署流程

第一步&#xff1a;在主存储上创建资源池化需要的lun&#xff0c;以及远程同步复制xlog卷对应的lun&#xff0c;并且所有lun全部映射到业务计算节点上 1. 登录主集群DeviceManager&#xff0c;选择服务->LUN组->创建 来创建主集群LUN组&#xff1b; 2.登录主集群Device…

会议活动如何高效地执行?邀请媒体到场报道的注意点

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 会议活动高效执行要点与媒体邀请注意事项 一、会议活动高效执行要点&#xff1a; 明确目标&#xff1a;确立清晰、具体的会议目的和预期成果。 详细规划&#xff1a;制定详尽的活动流程…

波奇学Linux:信号的发送和保存

信号的发送的对象是pcb task_struct{ int signal; //0000 0000 .... 0001 进程pcb中存在int型的signal来保存信号&#xff0c;用位图的方式&#xff0c;比特位的0&#xff0c;1表示是否收到信号 比特位位置表示信号的编号。 发信号的本质就是修改task_struct的信号位图对应的…

“词苑千载,群芳竞秀,盛开一枝女儿花”说的是哪位历史人物?2024年3月8日蚂蚁庄园今日答案:李清照

蚂蚁庄园是一款爱心公益游戏&#xff0c;用户可以通过喂养小鸡&#xff0c;产生鸡蛋&#xff0c;并通过捐赠鸡蛋参与公益项目。用户每日完成答题就可以领取鸡饲料&#xff0c;使用鸡饲料喂鸡之后&#xff0c;会可以获得鸡蛋&#xff0c;可以通过鸡蛋来进行爱心捐赠。其中&#…

计算机大数据毕业设计-基于Flask的旅游推荐可视化系统的设计与实现

基于Flask的旅游推荐可视化系统的设计与实现 编程语言&#xff1a;Python3.10 涉及技术&#xff1a;FlaskMySQL8.0Echarts 开发工具&#xff1a;PyCharm 摘要&#xff1a;以Pycharm为旅游推荐系统开发工具&#xff0c;采用B/S结构&#xff0c;使用Python语言开发旅游景点推…

springcloud:3.6测试信号量隔离

服务提供者【test-provider8001】 Openfeign远程调用服务提供者搭建 文章地址http://t.csdnimg.cn/06iz8 相关接口 测试远程调用&#xff1a;http://localhost:8001/payment/index 服务消费者【test-consumer-resilience4j8004】 Openfeign远程调用消费者搭建 文章地址http://t…