当前位置: 首页 > news >正文

Unity基础

基础

Mathf

Mathf和Math

Math是C#中封装好的用于数学计算的工具类,位于System命名空间中

Mathf是Unity中封装好的用于数学计算的工具结构体,位于UnityEngine命名空间中

他们都是提供来用于进行数学相关计算的

他们的区别

Mathf和Math中的相关方法几乎一样

Math是C#自带的工具类,主要提供一些数学相关计算方法

Mathf是Unity专门封装的,不仅包含Math中的方法,还多了一些适用于游戏开发的方法

所以用Unity开发游戏时,使用Mathf中的方法用于数学计算即可

Mathf中的常用方法

重要方法

插值运算:Mathf.Lerp((float a, float b, float t);

Lerp 函数公式:result = Mathf.Lerp(start, end, t);

t为插值系数,取值范围为0~1

result = start + (end - start) * t;

用法一

每帧改变start的值,速度先快后慢,无限接近end,但是不会到达end,类似于一个反函数的图像

start = Mathf.Lerp(start, 10, Time.deltaTime)

用法二

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

tim += Time.deltaTime;

result = Mathf.Lerp(start, 10, time);

一般方法

  1. π:Mathf.PI
  2. 取绝对值:Mathf.Abs(float f);
  3. 向上取整:Mathf.CeilToInt(float f);
  4. 向下取整:Mathf.FloorToInt(float f);
  5. 钳制函数:Mathf.Clamp(float value, float min, float max);,限制value的大小在min到max区间
  6. 获取最大值:Mathf.Max(params float[] values);
  7. 获取最小值:Mathf.Min(params float[] values);
  8. 一个数的n次幂:Mathf.Pow(float f, float n);
  9. 四舍五入:Mathf.RoundToInt(float f);
  10. 一个数的平方根:Mathf.Sqrt(float f);
  11. 判断一个数是否是2的n次方:Mathf.IsPowerOfTwo(int value);
  12. 判断正负数:Mathf.Sign(float f);

三角函数

radian:弧度 angle:角度 degree:度

  1. 弧度、角度相互转化
//弧度转角度
float rad = 1;
float anger = rad * Mathf.Rad2Deg;
print(anger);
//角度转弧度
anger = 1;
rad = anger * Mathf.Deg2Rad;
print(rad);//注意:Mathf中的三角函数相关函数,传入的参数需要是弧度值
print(Mathf.sin(30*Mathf.Deg2Rad));//0.5
print(Mathf.cos(60*Mathf.Deg2Rad));//0.5//注意:反三角函数得到的结果是 正弦值或者余弦值对应的弧度
rad = Mathf.Asin(0.5f);
print(rad *Mathf.Rad2Deg);//30
rad = Mathf.Acos(0.5f);
print(rad * Mathf.Rad2Deg);//60

坐标系

世界坐标系

this.transform.position;
this.transform.rotation;
this.transform.eulerAngles;
this.transform.lossyScale;

物体坐标系

this.transform.localPosition;
this.transform.localRotation;
this.transform.localEulerAngles;
this.transform.localScale;

屏幕坐标系

Input.mousePosition;
Screen.width;
Screen.height;

坐标转换

//世界转本地
this.transform.InverseTransformDirection;
this.transform.InverseTransformPoint;
this.transform.InverseTransformVector;
//本地转世界
this.transform.TransformDirection;
this.transform.TransformPoint;
this.transform.TransformVector;
//世界转屏幕
Camera.main.WorldToScreenPoint;
//屏幕转世界
Camera.main.ScreenToWorldPoint;
//世界转视口
Camera.main.WorldToViewportPoint;
//视口转世界
Camera.main.ViewportToWorldPoint;

向量

//三维问量:-Vector3
//Vector3有两种几何意义
//1.位置 - 代表一个点
print(this.transform.position);
//2.方向 - 代表一个方向
print(this.transform.forward);
print(this.transform.up);//两点决定一个向量
//A和B此时 几何意义 是两个点
Vector3 A = new Vector3(1.2,3);
Vector3 B = new Vector3(5,1,5);
//求向量
//此时 AB和 BA 他们的几何意义 是两个向量
Vector3 AB = B - A;
Vector3 BA = A - B;//零向量和负向量
print(Vector3.zero);
print(Vector3.forward);
print(-Vector3.forward);//向量的模长
//vector3中提供了获取向量模长的成员属性
//magnitude
print(AB.magnitude);
Vector3 c = new Vector3(5,6,7);
print(c.magnitude);
print(Vector3.Distance(A,B));//单位向量
//Vector3中提供了获取单位向量的成员属性
//normalized
print(AB.normalized);
print(AB / AB.magnitude);//点乘
Vector3.Dot(Vector3 lhs, Vector3 rhs);
//叉乘(左手螺旋定则,因为unity是左手坐标系,向上的是y轴)
Vector3.Cross(Vector3 lhs, Vector3 rhs);//向量之间的夹角
Vector3.Angle(Vector3 from, Vector3 to);
http://www.jsqmd.com/news/1294511/

相关文章:

  • 火山模型与算子
  • AI配音语速调节的“隐形阈值”:基于137个商用项目的语速-情感-时长三维回归分析报告
  • SSM框架在咖啡馆管理系统中的实践与优化
  • 论文开题总被打回❌终于找到贴合校内审核的开题工具
  • Android端侧AI技术:从模型轻量化到性能优化
  • 【仅限首批开放】AI用户行为分析私密工作坊:手把手拆解千万级DAU平台的实时会话聚类引擎
  • Python文件操作与Excel处理
  • C语言二维字符数组与字符串排序实践指南
  • GJB 5000B与A版深度对比:从过程合规到价值交付的范式跃迁
  • Spring Boot自动配置核心:spring.factories详解
  • 微信 SDK + Senparc.AI + MCP 打造微信 AI 开发助手(二):在 Cursor、VS Code 等 IDE 中自动编写
  • 2026 年金税四期下海南企业如何应对税务稽查?靠谱财税服务商怎么选? - GrowthUME
  • 2026年苏州工业减震降噪服务商介绍:金音诺尔减震降噪科技 - 海棠依旧大
  • Blender MMD Tools完全指南:从零到精通的MMD工作流
  • 刚需王牌专业!动物医学小自考,不限户籍全国可报 - Luckyone王
  • All-In-One WP Migration With Import:32GB大文件迁移的终极解决方案
  • HTML5视频播放器架构设计:ArtPlayer模块化架构与插件化扩展技术解析
  • 公证单身证明多少钱?公证单身证明需要怎么办理?
  • 远程控制软件哪个好用无延迟?2026年六款远控延迟画质稳定性实测横评
  • Ubuntu 22.04 LTS安装与C++开发环境配置全攻略
  • 空调PTC电辅热技术解析:工作原理、控制逻辑与能效优化
  • 从零开始:如何让Switch游戏在PC上流畅运行的完整解决方案
  • 2026年口碑深圳翻译公司推荐:从专利法律翻译到跨境仲裁实务的服务纵深考察 - 资讯快报
  • 液氮低温恒温器有哪些优势
  • 湖科大教书匠计算机网络笔记:考研面试核心考点与分层排错实践
  • 如何用嘎嘎降AI处理经济学论文:经济学毕业论文降AI4.8元知网达标完整操作教程
  • 单细胞测序揭示内分泌失调与衰老的分子机制
  • 东莞电缆回收正规回收商资源盘点 - 广东再生资源回收
  • 2026北京医院食堂承包学校食堂托管团餐配送指南 - LYL仔仔
  • Stable Diffusion游戏贴图量产实战:3步实现4K PBR材质一键生成,附可复用ControlNet工作流