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);
相关推荐
hkNaruto9 小时前
【AI】游戏大模型智能体OODA过程记忆问题解决方案:AgenticSTS 有界记忆契约:技术分析与流水线改造操作手册
人工智能·游戏·机器学习
tealcwu14 小时前
【Unity基础】为什么游戏需要物理按键映射?从 Unity Input Manager 到跨引擎输入设计
java·游戏·unity
沐飞工具箱15 小时前
游戏、漫画、视频里的外语怎么实时翻译?从 OCR + AI 原理聊聊 VoriTrans 屏幕翻译
人工智能·游戏·实时互动·音视频·自动翻译
tealcwu1 天前
【Unity高级】Unity URP:构建同时支持 2D 与 3D 场景的项目完全指南
3d·unity·游戏引擎
淡海水1 天前
10-01-互操作-C#与C++边界的内存管理
unity·c#·游戏引擎·.netcore·gc
小小数媒成员2 天前
UGUI原理(一)
开发语言·游戏·unity·游戏引擎
暴走约伯2 天前
【VFX工具链源码拆解 04】拯救丢失的绑定:Timeline 一键克隆与层级相对路径重映射算法
unity·c#·游戏引擎·硬件工程
小小数媒成员2 天前
Unity UGUI布局组件(LayoutGroup、ContentSizeFitter、LayoutElement)详解
unity·游戏引擎
tealcwu2 天前
【Unity基础】Unity输入与Time.deltaTime的使用原则
unity·游戏引擎
chen_2272 天前
godot做仪表hmi
游戏引擎·godot