Files
aibis-dream/Assets/Scripts/Utility/CommonUtil.cs
T
2024-11-01 20:57:36 +08:00

65 lines
1.8 KiB
C#

using System;
using System.Threading.Tasks;
using UnityEngine;
namespace AibisDream.Utility
{
public static class CommonUtil
{
private const float Epsilon = 1e-5f;
/// <summary>
/// 判断为0
/// </summary>
/// <param name="value">浮点数</param>
/// <returns>是否为0</returns>
public static bool IsZero(float value)
{
// 如果value小于epsilon,则认为它等于0
return Mathf.Abs(value) < Epsilon;
}
/// <summary>
/// 判断浮点数是否相等
/// </summary>
/// <param name="value1">value1</param>
/// <param name="value2">value2</param>
/// <returns>是否相等</returns>
public static bool IsEqual(float value1, float value2)
{
return Mathf.Abs(value1 - value2) < Epsilon;
}
/// <summary>
/// 简单延时实现
/// </summary>
/// <param name="delayTime">延时</param>
/// <param name="action">函数</param>
public static async Task Delay(int delayTime, Action action)
{
await Task.Delay(delayTime);
action?.Invoke();
}
/// <summary>
/// 受限加法
/// </summary>
/// <param name="target">目标数</param>
/// <param name="add">加数</param>
/// <param name="max">上限</param>
/// <param name="min">下限</param>
/// <returns>结果</returns>
public static float LimitedAdd(float target, float add, float max, float min)
{
var targetOil = target + add;
return targetOil switch
{
<= 0 => min,
>= 1 => max,
_ => targetOil
};
}
}
}