unity 不重复随机数
时间: 2025-02-24 18:29:28 浏览: 84
### 如何在 Unity 中生成不重复的随机数
为了实现这一功能,在Unity中可以采用列表来存储已经产生的随机数,从而确保每次新生成的随机数不会与之前的结果重复。下面是一个具体的解决方案:
定义一个类用于管理这些唯一的随机数值,并利用`List<int>`结构保存已抽取过的整型数据[^2]。
```csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UniqueRandomNumberGenerator : MonoBehaviour {
private List<int> generatedNumbers = new List<int>();
public int minRange = 0;
public int maxRange = 9; // 区间上限应大于等于下限
/// <summary>
/// 获取下一个唯一随机数.
/// </summary>
/// <returns></returns>
public int GetNextUniqueRandom()
{
if ((maxRange - minRange + 1) <= generatedNumbers.Count)
throw new System.Exception("No more unique numbers can be generated within the specified range.");
while (true)
{
int randomNumber = Random.Range(minRange, maxRange + 1);
if (!generatedNumbers.Contains(randomNumber))
{
generatedNumbers.Add(randomNumber);
return randomNumber;
}
}
}
void Start(){
Debug.Log(GetNextUniqueRandom());
}
}
```
此代码片段展示了如何通过不断尝试直到找到一个新的未被使用的随机数并将其加入到记录数组中的方法来保证所得到的是独一无二的随机数序列[^3]。
当所有可能的数字都被选过后,则无法再从中选取新的独特值;此时应当抛出异常通知开发者当前范围内不存在更多可用的选择项。
阅读全文
相关推荐


















