Unity笔记—5(Unity常用API整理之运算类与3D数学)

8 篇文章 0 订阅
7 篇文章 1 订阅

Unity笔记—5(Unity常用API整理之运算类与3D数学)



前言

自学笔记,没有历史知识铺垫(省略百度部分),系列性的记录核心的实用笔记,本章主要记录Unity常用API 运算工具方法

一、Mathf类(运算方法-核心知识点)

静态属性

Mathf.Deg2Rad:角度值转弧度值的单位,如30°的弧度为30Mathf.Deg2Rad=0.5235988
Mathf.Rad2Deg:弧度值转角度值的单位,如0.5235988的角度为Mathf.Rad2Deg
0.5235988F=30
Mathf.PI: 3.1415926

静态方法

Mathf.Abs():绝对值方法
Mathf.Acos():反余弦–以弧度为单位计算并返回参数 f 中指定的数字的反余弦值。
Mathf.Approximately():用于比较两个浮点值,当浮点值比较接近时即可返回true(浮点值的不稳定性,并非每次都返回true,该方法可以在相近时返回true)
Mathf.Asin():反正弦–以弧度为单位计算并返回参数 f 中指定的数字的反正弦值。

更多参考Unity中Mathf常用方法整理
Unity中常用的Mathf函数(自用)

二、Vector3类(三维向量-核心知识点)

静态属性

如下静态属性一般在鼠标点击或操作后,转化为三维坐标时使用,参数为(x,y,z)

  1. forward: (0,0,1) --前
  2. back :(0,0,-1)–后
  3. left : (-1,0,0)–左
  4. right :(1,0,0)–右
  5. up :(0,1,0)–上
  6. down :(0,-1,0)–下
  7. one :(1,1,1)–三轴的正方向,通常用于坐标或者scale(分量相乘)
  8. zero:(0,0,0)
  9. positiveInfinity–正无穷大
  10. negativeInfinity–负无穷大

属性

  1. magnitude:向量长度 – 返回此向量的长度(xx+yy+z*z)的平方根(只读)。
  2. normalized:向量标准化 – 返回此向量,其大小最大为1,若向量过小可能为0(只读)
  3. sqrMagnitude:向量长度的平方 – 返回此向量的平方长度,如果向量长度过小,可是用向量长度的平方计算(只读)。
  4. this[int] – 分别使用[0],[1],[2]访问x,y,z分量。
  5. x – 向量的X分量。
  6. y – 向量的Y分量。
  7. z – 向量的Z分量。

公开方法

  1. Equals:比较三维向量是否相等
  2. Set: 设置三维向量
  3. ToString:三维向量字符串化

三维向量运算

三维向量支持+ - * / == != 进行运算

静态方法

  1. Normalize:向量标准化方法 – 与属性的区别是直接传入三维向量参数,返回值即为标准化三维向量

  2. Angle:夹角 – 两个三维向量之间的夹角(如计算范围技能的夹角使用)

  3. ClampMagnitude: 限制分量长度的向量 – (传入向量差和最大长度可以得到增量的三维向量,如做控制盘拖动限制时使用)

  4. Cross: 叉积

  5. Dot:点积

    Dot和Cross 点积和叉积详情

  6. Distance: 返回两个向量的距离

  7. Lerp:线性差值 – 最常用的方法之一,用于计算from到to之间的差值,第三位=0时为from,第三位=1时为to,=0.5时返回平均数,平滑跟随时常用,无限接近效果

  8. LerpUnclamped:非牵制性线性插值 – 与Lerp类似,不过范围会超出0-1的边界

  9. Max: 返回最大的向量

  10. Min: 返回最小的向量

  11. MoveTowards: 最常用方法之一,类似Lerp,当前向量向目标向量移动,移动速度不会超过设置的最大值,负值将远离目标

  12. OrthoNormalize: 向量标准化并相互正交,三个坐标轴的正交化

  13. Project:矢量投影 – 做弹道/轨迹等(具体没试过)

  14. ProjectOnPlane: 平面投影 – 可以用于血条等固定方向显示(不常用)

    Unity3d那些你不常用但确有其用的方法—Vector3.ProjectOnPlane

  15. Reflect: 获得反射向量

  16. RotateTowards: 当前向量转向目标(限制最大转向速度)

  17. Scale: 向量每个分量做乘积

  18. SignedAngle:根据指定轴和向量返回顺时针?? 正是右,负是左(不太了解)

  19. Slerp:球面线性插值 – 用于方向向量的场景(太阳东升西落/转身)

  20. SlerpUnclamped:非牵制球面线性插值 – 与Slerp的区别是范围会超出0-1的边界

  21. SmoothDamp:平滑阻尼 – 平滑的向目标推进,如平滑跟随相机

三、Vector3Int类(三维向量整数化)

和Vector3的区别是,Vector3Int用于不需要浮点精度的位置和矢量运算
其他方法和属性与Vector3几乎一致,此处不再记录

  1. CeilToInt:三维向量分量按照最大整数值转换为整数三维向量
  2. Distance:返回两个向量的距离,方法等同于(a-b).magnitude
  3. FloorToInt:三维向量分量按照最小整数值转换为整数三维向量
  4. Max:返回两个三维向量较大的一个
  5. Min:返回两个三维向量较小的一个
  6. RoundToInt:三维向量四舍五入为整数三维向量
  7. Scale:整数三维向量缩放

四、Vector2类(二维向量)

可以通过三维向量的方法和属性直接推出二位向量的方法和属性,少了x轴

静态属性

如下静态属性一般在鼠标点击或操作后,转化为二维坐标时使用,参数为(x,y)

  1. left : (-1,0)–左
  2. right :(1,0)–右
  3. up :(0,1)–上
  4. down :(0,-1)–下
  5. one :(1,1)–三轴的正方向,通常用于坐标或者scale(分量相乘)
  6. zero:(0,0)
  7. positiveInfinity–正无穷大
  8. negativeInfinity–负无穷大

属性

  1. magnitude:向量长度 – 返回此向量的长度(xx+yy)的平方根(只读)。
  2. normalized:向量标准化 – 返回此向量,其大小最大为1,若向量过小可能为0(只读)
  3. sqrMagnitude:向量长度的平方 – 返回此向量的平方长度,如果向量长度过小,可是用向量长度的平方计算(只读)。
  4. this[int] – 分别使用[0],[1]访问x,y分量。
  5. x – 向量的X分量。
  6. y – 向量的Y分量。

公开方法

  1. Equals:比较二维向量是否相等
  2. Set: 设置二维向量
  3. ToString:二维向量字符串化
  4. Normalize:二维向量标准化

二维向量运算

二维向量支持+ - * / == != 进行运算

静态方法

  1. Angle:夹角 – 两个二维向量之间的夹角(如计算范围技能的夹角使用)
  2. ClampMagnitude: 限制分量长度的向量 – (传入向量差和最大长度可以得到增量的二维向量)
  3. Dot:点积: 返回两个二维向量的点积,当两个向量方向一致时返回1,相反是返回-1,其他方向是[-1,1]之间的过渡值(向量的角度越小,值越大)
  4. Distance: 返回两个向量的距离
  5. Lerp:线性差值 – 最常用的方法之一,用于计算from到to之间的差值,第三位=0时为from,第三位=1时为to,=0.5时返回平均数,平滑跟随时常用,无限接近效果
  6. LerpUnclamped:非牵制性线性插值 – 与Lerp类似,不过范围会超出0-1的边界
  7. Max: 返回最大的向量
  8. Min: 返回最小的向量
  9. MoveTowards: 最常用方法之一,类似Lerp,当前向量向目标向量移动,移动速度不会超过设置的最大值,负值将远离目标
  10. Perpendicular:返回垂直于指定二维向量的二维向量(二维向量默认以Y轴逆向旋转90)
  11. Reflect: 获得反射向量
  12. Scale: 向量每个分量做乘积
  13. SignedAngle:返回较小的夹角
  14. SmoothDamp:平滑阻尼 – 平滑的向目标推进

五、Vector2Int类(二维向量整数化)

与整数化的三维向量和三维向量的关系和方法一致,此处不再记录,目的是将二维向量与整数二维向量相互转换

六、Vector4类(四维向量)

在官方文档中看到这个类,四维向量本身不代表任何意义,只是有4个属性 w x y z,通常可以表示颜色,如xyz表示RPG,w表示透明度,也可以表示三维向量,xyz表示方向,w表示缩放等,四维向量的方法基本上是三维向量的基础方法,暂时不再记录,等到类似场景时再记录用法,大多数情况使用三维向量即可

七、3D数学干货贴收集

记录在这里方便随时回顾

unity中3D数学相关类、属性、方法、用途总结+超级综合的案例

【Unity】3D数学基础笔记
【游戏开发3D数学笔记】3.向量和矩阵
【游戏开发3D数学笔记】4.矩阵和线性变换


总结

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值