四元数(Quaternion)和欧拉角(Eulerangle)这两个老朋友我们在游戏开发的时候会非常,非常频繁的使用他们。然而有时候我会混淆他们的定义以及用法,所以今天写一篇博客,来总结一下,夯实基础。

1.首先我们还是要了解一下定义,这位大神写的非常好,非常专业,非常全面!请务必读完这位大神的文章再读此篇博客!

https://blog.csdn.net/AndrewFan/article/details/62057519

2.然后是API和主要用途

首先是Quaternion。

然后我们都知道,Unity里面的Transform组件里的Rotation是四元数,但是他是以欧拉角(Vector3)的形式展现在我们面前,目的就是为了方便我们修改。因此,我们给Rotation直接赋值的时候,也只能用Quaternion赋值。意识到这点很重要。

当然,硬要给Rotation赋值也是可以的,不过要用到Quaternion.eulerAngles这个API。

例如


public class ExampleClass : MonoBehaviour {public Quaternion rotation = Quaternion.identity;void Example() {rotation.eulerAngles = new Vector3(0, 30, 0);print(rotation.eulerAngles.y);}}

下面介绍几个四元数的常用API,返回值类型有的不为四元数,请多加注意

返回的是一个float变量

返回的是四元数

返回的是四元数

返回的是四元数

返回的是四元数,与上一个的区别是可以控制旋转速率,我更习惯于把这个当做translate的那种类型的API用,而上面那个我用来计算角度。

这个通常用来控制相机的跟随,或者人物的注视方向。

public Transform target;void Update() {Vector3 relativePos = target.position - transform.position;Quaternion rotation = Quaternion.LookRotation(relativePos);transform.rotation = rotation;}

****************************************************************************************************************************************

然后对于欧拉角,Unity中并没有专门的API,所以这里我们用transform和rigidbody相关的API进行讨论。

这个很不常用,因为他时常会导致意想不到的副作用,我建议使用rotation

通过上面几个例子,我们可以发现,欧拉角可以看成一个Vector3变量,对应的旋转顺序和法则可以从博客开始的大神文章得知。

好了,这篇博客到此为止,祝大家天天进步!

Unity基础篇:四元数(Quaternion)和欧拉角(Eulerangle)讨论相关推荐

  1. 【Unity编程】四元数(Quaternion)与欧拉角

    欧拉旋转.四元数.矩阵旋转之间的差异 除了欧拉旋转以外,还有两种表示旋转的方式:矩阵旋转和四元数旋转.接下来我们比较它们的优缺点. 欧拉角 优点:三个角度组成,直观,容易理解. 优点:可以进行从一个方 ...

  2. Unity基础篇:Serializable总结与深入研究。

    [HideInInspector]表示将原本显示在面板上的序列化值隐藏起来.  [SerializeField]表示将原本不会被序列化的私有变量和保护变量变成可以被序列化的,那么它们在下次读取的值就是 ...

  3. Unity基础篇:解决Asset Store资源商店点下载或导入没反应

    我们有时候会想从资源商店下载项目或素材,但是发现点击下载按钮没有反应. 虽然不知道怎么回事,但我们只需要进入自己的愿望清单就可以了. 不建议使用老版商店了,因为它确实是没反应............. ...

  4. 【Unity编程】Unity中关于四元数的API详解

    Unity中关于四元数的API详解 Quaternion类 Quaternion(四元数)用于计算Unity旋转.它们计算紧凑高效,不受万向节锁的困扰,并且可以很方便快速地进行球面插值. Unity内 ...

  5. Unity基础(四)--3D数学

    文章目录 一.向量 基本属性 向量与标量的乘除 二.三角函数 角的度量方式 三角函数 点乘(Dot) 叉乘 三.欧拉角与四元数 欧拉角 四元数 基本运算 1.与向量相乘 2.与四元数相乘 四.三维向量 ...

  6. 【Unity】6.8 Quaternion类(四元数)

    分类:Unity.C#.VS2015 创建日期:2016-04-20 一.四元数的概念 四元数包含一个标量分量和-个三维向量分量,四元数Q可以记作: Q=[w,(x,y,z)] 在3D数学中使用单位四 ...

  7. unity中的四元数,欧拉角,方向向量之间的相互转换方法。

    四元数: 到欧拉角:quaternion.eulerAngles 到方向向量:(quaternion * Vector3.forward).normalized 欧拉角: 到四元数:Quaternio ...

  8. Unity Editor 基础篇(四):Handles

    本文参自: 克森http://mp.weixin.qq.com/s/qxsKDPjJS30S9OXeQ8WKTw 本文为本人学习上链接的笔记微有改动,请点击以上链接查看原文,尊重楼主知识产权. Uni ...

  9. ugui源码_UGUI整体解决方案基础篇(Unity 2019)

    课程介绍:本课程是UGUI系列课程的第一篇:基础篇 主要是讲解UGUI的基础组件及接口的使用方法,目前UGUI是unity最常用的UI系统,这部分基础只是是每个同学都应该掌握的,这里我就是简单的讲解了 ...

最新文章

  1. 入门Promise的正确姿势
  2. php上传下载excel,PHPExcel 上传下载的示例代码
  3. jira服务断电导致索引文件损坏问题解决
  4. sql server 2008安装图解
  5. 活动合作 | AI NEXTCon 硅谷AI技术峰会(北京分会)大咖来袭
  6. 数字光电耦合器为汽车应用提供低功耗和高隔离
  7. SAP License:浅析SAP智能云ERP – SAP S/4HANA Coud之美
  8. 10分钟带你彻底搞懂企业服务总线
  9. excel报表汇总工具
  10. android手机访问网站时 出现您未被授权查看该页 您试图访问的 Web 服务器上有一个不被允许访问该网站的 IP 地
  11. 2021-12-12
  12. Pycharm控制台中文输出乱码怎么办?控制台输出乱码问题的解决方法
  13. 随机四位数的猜数游戏
  14. 深入理解空洞卷积:优点以及存在问题
  15. C#蓝牙链接+传输文件
  16. Alpha865qqz勒索病毒解密
  17. 一文搞清楚安卓屏幕密度、像素密度、分辨率、安卓计量单位(dp)
  18. 连接路由器的电脑到底是怎样上网的
  19. java unset_PHP--isset()和unset()函数的用法-Java架构师必看
  20. 计算机取证磁盘镜像研究,存储介质的计算机取证技术研究

热门文章

  1. 基于Matlab编辑器Z-N法整定PID参数
  2. 尼科尔斯图matlab绘制,自动控制原理(上册)
  3. 两仪四象四书五经小知识
  4. Python—wordcloud(pip安装失败问题解决)
  5. Eslint 配置及规则说明
  6. 美梦与现实 流言困扰
  7. 紫龙劝星矢考研的一封信
  8. 微信可以登录QQ了!
  9. 记一次因tcp_tw_recycle误设置为1导致服务器无法正常建立TCP连接的问题排查
  10. lle matlab 实例_lle算法详解及matlab代码实现