using UnityEngine;
[UnityEngine.Scripting.Preserve]
public static class ArrayExtensions
{
///
/// 从数组中随机取一个元素。
///
public static T Random(this T[] items)
{
System.Random rnd = new System.Random();
if (items.Length > 0)
{
return items[rnd.Next(0, items.Length)];
}
return default;
}
///
/// 获取与目标值最接近的元素索引。
///
public static int ClosestIndex(this int[] array, int value)
{
int closestIndex = 0;
int minDifference = Mathf.Abs(array[0] - value);
for (int i = 1; i < array.Length; i++)
{
int difference = Mathf.Abs(array[i] - value);
if (difference < minDifference)
{
minDifference = difference;
closestIndex = i;
}
}
return closestIndex;
}
}
namespace AlicizaX
{
[UnityEngine.Scripting.Preserve]
public static class MinMaxExtensions
{
public static float Random(this MinMax minMax)
{
return UnityEngine.Random.Range(minMax.RealMin, minMax.RealMax);
}
public static int Random(this MinMaxInt minMax)
{
return UnityEngine.Random.Range(minMax.RealMin, minMax.RealMax);
}
}
}