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

【零基础入门unity游戏开发——进阶篇】Marhf和Math的使用

考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇

  • 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的同学入门。
  • 【unity通用篇】:主要讲解unity的基础通用的知识,包括unity界面、unity脚本、unity资源管理、unity动画、unity摄像机等,适合unity初学者入门。
  • 【unity3D篇】:主要讲解unity3D的知识,unity3D角色、unity3D物理系统、unity3D光照等,适合只想做2D游戏的开发者学习。
  • 【unity2D篇】unity2D篇:主要讲解unity2D的知识,包括unity2D角色、unity2D物理系统、unity2D光照等,适合只想做3D游戏的开发者学习。

这样方便大家按需选择性的去学习,比如有编程基础的大概率可以直接从unity通用篇开始入门,没有编程基础的建议从C#篇开始学习。只想做2D游戏的话,可以直接从unity2D篇开始学习,3D篇大概率就不需要看了,节约学习时间成本。

文章目录

  • 一、Mathf 和 Math介绍
  • 二、Mathf 和 Math 的区别
  • 三、Mathf 中的常用方法
      • 1. **π - PI**
      • 2. **取绝对值 - Abs**
      • 3. **向上取整 - CeilToInt**
      • 4. **向下取整 - FloorToInt**
      • 5. **钳制函数 - Clamp**
      • 6. **获取最大值 - Max**
      • 7. **获取最小值 - Min**
      • 8. **一个数的 n 次幂 - Pow**
      • 9. **四舍五入 - RoundToInt**
      • 10. **返回一个数的平方根 - Sqrt**
      • 11. **判断一个数是否是 2 的 n 次方 - IsPowerOfTwo**
      • 12. **判断正负数 - Sign**
      • 13. **插值运算 - Lerp**
  • 总结
  • 专栏推荐
  • 完结

一、Mathf 和 Math介绍

  • Math 是 C# 中封装好的用于数学计算的工具类,位于 System 命名空间中。
  • Mathf 是 Unity 中封装好的用于数学计算的工具结构体,位于 UnityEngine 命名空间中。
  • 它们都提供了用于进行数学相关计算的功能。

二、Mathf 和 Math 的区别

  • MathfMath 中的相关方法几乎一样。
  • Math 是 C# 自带的工具类,主要提供一些数学相关的计算方法。
  • Mathf 是 Unity 专门封装的,不仅包含 Math 中的方法,还多了一些适用于游戏开发的方法。
  • 因此,在进行 Unity 游戏开发时,使用 Mathf 中的方法进行数学计算即可。

三、Mathf 中的常用方法

1. π - PI

  • 功能:获取圆周率 π 的值(约等于 3.14159)。
  • 使用场景:用于计算圆的周长、面积等与圆相关的数学运算。
print(Mathf.PI); // 输出:3.141592

2. 取绝对值 - Abs

  • 功能:返回一个数的绝对值(无论正负,都返回正数)。
  • 使用场景:计算距离、差值等需要忽略符号的场景。
print(Mathf.Abs(-10)); // 输出:10
print(Mathf.Abs(20));  // 输出:20

3. 向上取整 - CeilToInt

  • 功能:将一个浮点数向上取整为最接近的整数。
  • 使用场景:当需要确保数值不小于某个值时使用,例如计算物品数量、网格对齐等。
print(Mathf.CeilToInt(1.3f));  // 输出:2
print(Mathf.CeilToInt(1.0001f)); // 输出:2

4. 向下取整 - FloorToInt

  • 功能:将一个浮点数向下取整为最接近的整数。
  • 使用场景:当需要确保数值不超过某个值时使用,例如计算网格索引、分配资源等。
print(

http://www.kler.cn/a/586470.html

相关文章:

  • 【每日学点HarmonyOS Next知识】tab对齐、相对布局、自定义弹窗全屏、动画集合、回到桌面
  • HarmonyOS第21天:解锁分布式技术,开启跨设备协同新体验
  • 前端开发:混合技术栈的应用
  • 用SpringBoot做一个web小案例配置拦截器判断登录状态
  • 侯捷 C++ 课程学习笔记:进阶语法之lambda表达式(二)
  • Webpack 知识点整理
  • 缓存id路由页面返回,历史路由栈
  • leetcode51.N 皇后 回溯算法求解 + 效率优化
  • python离线安装
  • 【每日八股】Golang篇(四):GMP
  • vscode编译器的一些使用问题
  • 【人工智能】Transformer、BERT、GPT:区别与联系
  • Dubbo请求调用本地服务
  • Linux———迷你在线商城
  • mysql学习-常用sql语句
  • 无标签数据增强+高效注意力GAN:基于CARLA的夜间车辆检测精度跃升
  • easy-poi导出and导入一对多数据excel
  • 动手学深度学习11.8. RMSProp算法-笔记练习(PyTorch)
  • 【YOLOv8】YOLOv8改进系列(5)----替换主干网络之EfficientFormerV2
  • 麒麟系统利用pycharm生成deb文件