Mathf函数的使用

MAthf函数在开发过程中是回经常用到的

不同的方法有不同的用法,在一些特定的场合会非常好用

void Start () {
		float a = Mathf.Abs(-3);//绝对值
		float b = Mathf.Clamp(3, 3, 10);//限制范围 x,y,z
		float c = Mathf.Ceil(4.4f);//上限
		float d = Mathf.Floor(4.4f);//下线
		print(a + "\t" + b + "\t" + c + "\t" + d);

		float e = Mathf.Max(4, 5, 3, 6, 7);
        float f = Mathf.Min(4, 5, 3, 6, 7);
        print(e + "\t" + f );

		float i = Mathf.PI;//圆周率
		print(i);
		float j = Mathf.Pow(3, 5);//次方
		float k = Mathf.Sqrt(8);//开方
		print(j + "\t" + k);

		float l = Mathf.RoundToInt(3.14f);//四舍五入到整数  int
		float m = Mathf.Round(3.14f);//四舍五入到整数  float
        print(l + "\t" + m);

		float p = Mathf.PI / 3;
		float q = Mathf.Rad2Deg * p;//弧度转度 
		float n = Mathf.Rad2Deg * q;//度转弧度
		print(q+"\t"+n);
    }

    // Update is called once per frame
    void Update () {
		float g = Mathf.Repeat(Time.time, 5);//重复函数  
		print(g);
		float h = Mathf.PingPong(Time.time, 5);//乒乓函数
        print(h);
    }

Abs      为绝对值

Clamp   限制范围     

Coil       上限   例如4.4f  取5  

Floor      下限     这时4.4f取4

Max  Min 分别为最小值和最大值

PI     为圆周率

Pow  为次方  前面的值为底数  后面的值为次方项

RoundToInt    Round   都是四舍五入  RoundToInt 的返回值为int类型    Round 为float类型

Rad2Deg     它乘上一个PI时求出的是一个角度  乘上一个角度时求出的是一个弧度

Repeat     是一个重复函数(设定一个值,它重0开始到设定值后再次从0开始)

PingPong   乒乓函数  到达设定值到着返回来

### 关于 C#Mathf使用C# 编程中,`Mathf` 并不是标准库的一部分,而是 Unity 游戏开发框架中的一个类[^2]。它提供了许多用于学计算的静态方法和常量,这些功能特别适用于游戏开发场景下的值操作。 #### Mathf 的主要特性 - `Mathf` 是专门为单精度浮点 (`float`) 设计的工具集。 - 它包含了常见的函数,例如取整、三角函数、指运算等。 - 提供了一些常用的学常量,比如 π 和 ε (最小正)[^3]。 以下是几个常用的方法及其说明: #### 取整操作 1. **Round**: 将给定的浮点四舍五入到最接近的整。 ```csharp float value = 10.5f; int roundedValue = Mathf.RoundToInt(value); // 结果为 10 ``` 2. **Floor**: 返回不大于指定字的最大整部分。 ```csharp float value = 10.9f; int flooredValue = Mathf.FloorToInt(value); // 结果为 10 ``` 3. **Ceil**: 返回不小于指定字的最小整部分。 ```csharp float value = 10.1f; int ceiledValue = Mathf.CeilToInt(value); // 结果为 11 ``` #### 学运算 除了基本的取整外,`Mathf` 还支持多种学运算: 1. **Clamp**: 将某个值限制在一个范围内。 ```csharp float clampedValue = Mathf.Clamp(15, 10, 20); // 结果为 15 ``` 2. **Lerp**: 执行线性插值,在两个值之间平滑过渡。 ```csharp float interpolatedValue = Mathf.Lerp(0, 10, 0.5f); // 结果为 5 ``` 3. **Sin/Cos/Tan**: 计算角度对应的三角函数值(输入单位为弧度)。 ```csharp float sineValue = Mathf.Sin(Mathf.PI / 2); // 结果约为 1 ``` #### 常见示例代码 下面是一个综合使用的例子,展示如何利用 `Mathf` 实现简单的物理模拟效果: ```csharp using UnityEngine; public class Example : MonoBehaviour { void Update() { float angle = Time.time * Mathf.PI; // 时间转换成弧度制的角度 Vector2 position = new Vector2( Mathf.Cos(angle), // X 轴上的余弦波形运动 Mathf.Sin(angle) // Y 轴上的正弦波形运动 ); transform.position = (Vector3)position; // 更新物体位置 } } ``` --- ### 注意事项 虽然 `Mathf` 面向的是 `float` 类型的据处理需求,但如果需要更高精度的支持,则可以考虑使用 .NET 自带的 `System.Math` 库来完成类似的计算任务[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值