Unity基础(一)游戏中的数学Mathf函数

一Mathf总述

Math是C#中封装好的用于数学计算的工具类

Mathf是Unity中封装好的用于数学计算的工具结构体

Mathf既有Math的方法,还有特有的一些游戏开发的方法
Unity开发,使用Mathf中的方法。

二、常用方法

1圆周率

cs 复制代码
print(Mathf.PI);

2绝对值

cs 复制代码
 print(Mathf.Abs(-10));

3向上取整

cs 复制代码
print(Mathf.CeilToInt(1.001f));

4向下取整

cs 复制代码
print(Mathf.FloorToInt(9.6f));

5钳制函数

(x,y,z)x在yz之间就取x,比x大或小,就取对应边界

cs 复制代码
print(Mathf.Clamp(10, 11, 20));
print(Mathf.Clamp(21, 11, 20));
print(Mathf.Clamp(15, 11, 20));

6获取最大值

cs 复制代码
print(Mathf.Max(1, 3, 9, 10));

7获取最小值

cs 复制代码
print(Mathf.Min(1, 9, -10, 6));

8一个数的n次方 pow (x,y) x的y次方

cs 复制代码
print(Mathf.Pow(3,2));

9四舍五入

cs 复制代码
print(Mathf.RoundToInt(1.3f));

10返回一个数的平方根

cs 复制代码
print(Mathf.Sqrt(16));

11判断一个数是否2的n次方

cs 复制代码
print(Mathf.IsPowerOfTwo(4));

12判断正负数

返回的是float类型的1或者-1

cs 复制代码
 print(Mathf.Sign(10));

三、Math中的不停计算

插值运算公式 Mathf.Lerp(start,end,t)

t为插值系数,为0-1 结果result=start+(end-start)*t;

插值运算用法一

每帧改变start的值 ,变化速度先快后慢,位置无限接近,但是不会到达end位置

cs 复制代码
start = Mathf.Lerp(start, 10, Time.deltaTime);

插值用法二

每帧改变t的值,变化速度匀速,每帧位置接近 当t>=1时,到达end位置

cs 复制代码
time += Time.deltaTime;

result = Mathf.Lerp(start, 10, time);
相关推荐
魔士于安2 天前
unity 丑陋哥布林 哥布林有humannoid 动画没 带动画
unity·游戏引擎·材质·贴图·模型
JQweryuiop2 天前
中小型游戏陪练工作室数字化管理实践:基于七彩屋电竞护航小程序订单、履约与绩效系统的落地复盘
大数据·游戏·小程序·架构
小贺儿开发2 天前
Unity 家居视频遥控(细节优化)
科技·unity·程序员·udp·视频·工具·通信
淡海水2 天前
13-04-面试-源码级深度追问链
数据结构·unity·面试·c#·游戏引擎·源码·il2cpp
乌萨达3 天前
低配电脑玩手游怎么设置?4GB、8GB内存与模拟器选择指南
游戏·电脑·安卓模拟器·雷电模拟器
小小数媒成员3 天前
UGUI 性能优化(详细,全,深入)
开发语言·unity·游戏引擎
林川~013 天前
Unity新输入系统使用笔记
unity·input system
小贺儿开发4 天前
Unity 结合百度AI开放平台 手写文字识别
人工智能·科技·学习·unity·云服务·文字识别·手写文字
goujunwe4 天前
GEO 评估方法:如何自测你的内容,会不会被 AI 引用
搜索引擎·网络安全·游戏引擎·全文检索·中文分词
林川~014 天前
Unity 万能物理检测工具:射线检测 / 范围检测 / 层级过滤 / 编辑器可视化(可直接拿去用)
游戏·unity·c#·射线检测·通用工具