unity3D C# 在区间内生成不重复的随机数
private void Start()
{
foreach (var item in GetHashtableRandomNum(5, 0, 6).Values)
{
Debug.Log(item);
}
}
/// <summary>
/// 生成随机数
/// </summary>
/// <param name="num">随机数个数</param>
/// <param name="min">最小随机数</param>
/// <param name="max">最大随机数</param>
/// <returns></returns>
public static Hashtable GetHashtableRandomNum(int num, int min, int max)
{
System.Random random = new System.Random();
Hashtable hashtable = new Hashtable();
for (int i = 0; hashtable.Count < num; i++)
{
int nValue = random.Next(min, max);
if (!hashtable.ContainsValue(nValue) && nValue != min)
{
hashtable.Add(i, nValue);
}
}
return hashtable;
}