Unity(二)——3D数学

数学计算公共类------Mathf

一、Mathf和Math

Math是c#中的数学方法,是一个静态类

Mathf是Unity中封装好的方法,是一个结构体

Math中有的,Mathf中都有

二、Mathf中一般计算一次的

三、Mathf中不停计算的

三角函数

一、角度和弧度

π=180度

二、三角函数

三、反三角函数

从值得到弧度是多少,然后弧度转角度

坐标系

一、世界坐标系

模型正朝向是z轴

向上为y轴

向右为x轴

二、物体坐标系

前面加Local

相对于父对象的坐标系

三、屏幕坐标系

四、视口坐标系

左下角为(0,0)右上角为(1,1)

Vector3向量

一、向量

1.两点决定一个向量

终点减起点

2.零向量和负向量

Vector3.zero

-Vector3.forward

3.向量的模长

magnitude

Vector3.Distance

4.单位向量

normalized

二、向量加减乘除

三、向量点乘

点乘>0两向量夹角为锐角

点乘=0两向量夹角为直角

点乘<0两向量夹角为钝角

1.调试画线

2.通过点乘判断对象的方位

两向量的点乘,结果判断大于小于0

3.公式求两向量夹角

β=Acos(单位向量A*单位向量B)

除了点乘的方法还有

Unity自带的API

四、向量叉乘

1.计算

X Y Z

Xa Xb

Ya Yb

Za Zb

算x向量 x行不看,从上到下,

x=YaZb-ZaYb

算Y向量同理

Y=ZaXb-XaZb

Z=XaYb-YaXb

直接使用API

2.几何意义

是A向量和B向量平面的法向量

A×B= -(B×A)

结果>0 A在B左侧

结果<0 A在B右侧

五、向量插值运算

1.线性插值

2.球形插值

是弧形轨迹

Quaternion四元数

一、为何使用四元素

1.欧拉角

heading:物体绕Y轴转

pitch:物体绕X轴转

bank:物体绕Z轴转

heading------pitch------bank

在Unity中,Rotation就是调整欧拉角

2.万向节死锁

欧拉角会出现万向节死锁,所以在界面上改数值是会产生死锁的,所以要用四元数来解决

二、四元数是什么

1.四元数的构成

由实数加上三个虚数单位组成

轴-角对

假设绕n轴旋转β度,n轴为(x,y,z)

四元数Q=[cos(β/2),sin(β/2)*n](一个标量和三个向量,表示绕着n轴旋转β度)

2.Unity中的四元数

3.四元数和欧拉角的相互转换

三、四元数的常用方法

1.单位四元数

标量为1或者-1且没有旋转角度的时候

2.四元数的插值运算

3.向量指向转四元数

面朝像盯向目标物体

类似于LookAt

四、四元数的计算

1.四元数相乘

相当于旋转

2.四元数乘向量

四元数乘向量返回新的向量

将向量转几度

相关推荐
淡海水6 小时前
【节点】[RandomRange节点]原理解析与实际应用
unity·游戏引擎·shadergraph·图形·randomrange
weixin_4242946721 小时前
在Unity中,摄像机移动时出现“残影”或“闪烁”是常见问题,主要原因和处理方法。
unity·游戏引擎
孟无岐21 小时前
【Laya】Browser 使用说明
typescript·游戏引擎·游戏程序·laya
天人合一peng1 天前
unity 3d 通过游戏对象的名子查到其对象
游戏·unity·游戏引擎
纯属个人爱好1 天前
Unity2020+PicoNeo3Pro开发
unity·vr
__water1 天前
RHK《Unity接入DeepSeek问答》
unity·游戏引擎·智能问答·deepseek接入·deepseekapikey
康de哥1 天前
MCP Unity + Claude Code 配置关键步骤
unity·mcp·claude code
美团骑手阿豪1 天前
Unity3D大规模点击检测:GPU Picking vs MeshCollider + Raycast
unity
在路上看风景1 天前
1.4 Unity运行时路径
unity·游戏引擎