unity产生不重复随机数
时间: 2023-09-01 17:11:35 浏览: 123
Procedural.Content.Generation.for.Unity.Game.Development.Jan.2016
在Unity中,可以使用Random.Range(min, max)函数生成随机数。如果要生成不重复的随机数,可以利用List数据结构来存储所有可能的值,然后随机从中取出一个值并从列表中移除,以保证不会重复。
以下是一个示例代码:
```
public class RandomGenerator : MonoBehaviour
{
private List<int> numbers = new List<int>(); // 存储所有可能的值
private int currentNumber; // 当前随机数
void Start()
{
// 添加所有可能的值到列表中
for (int i = 0; i < 10; i++)
{
numbers.Add(i);
}
// 初始化当前随机数
currentNumber = GetRandomNumber();
}
// 生成随机数并从列表中移除
private int GetRandomNumber()
{
int index = Random.Range(0, numbers.Count); // 随机取出一个索引
int number = numbers[index]; // 取出对应的值
numbers.RemoveAt(index); // 从列表中移除该值
return number;
}
// 示例用法:每次按下空格键生成一个新的随机数
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
currentNumber = GetRandomNumber();
Debug.Log("Current number: " + currentNumber);
}
}
}
```
在上述示例中,每次按下空格键会生成一个新的随机数,并且保证不会与之前生成的随机数重复。
阅读全文