unity 如何随机数
时间: 2025-04-16 22:05:29 浏览: 40
### Unity 中生成随机数的方法
在 Unity 中,`UnityEngine.Random.Range()` 是最常用的生成随机数方法之一。此函数可以用于生成浮点型或整型的随机数值。
对于生成指定范围内不重复的随机数,可以通过移除已选中的元素来确保唯一性:
```csharp
using System.Collections.Generic;
using UnityEngine;
public class UniqueRandomNumbers : MonoBehaviour {
private List<int> Nums = new List<int>();
void Start() {
// 初始化列表
for (int i = 0; i < 10; ++i) {
Nums.Add(i);
}
for (int i = 0; i < 5; i++) {
int id = UnityEngine.Random.Range(0, Nums.Count); // 随机下标
Debug.Log(Nums[id]); // 获取随机数
Nums.RemoveAt(id); // 移除该元素以防止重复选取[^1]
}
}
}
```
如果只需要简单的随机数而不需要考虑去重,则可以直接调用 `Random.Range(minValue,maxValue)` 方法,在给定区间内返回一个伪随机数。当参数为两个整数时会得到一个闭区间的整数;若是浮点数则获得开区间的实数[^4]。
为了保证每次运行程序都能有不同的种子序列从而改变产生的随机数列,可以在脚本开头加入如下语句初始化随机状态:
```csharp
System.Random.InitState(System.Environment.TickCount);
// 或者使用 C# 的 Random 类实例化对象
var randomInstance = new System.Random();
float value = randomInstance.NextDouble(); // 获得 [0.0, 1.0) 区间内的双精度浮点数
```
需要注意的是,Unity 自带的 `Random.Range()` 函数已经足够满足大多数情况下的需求,并且其内部实现了良好的分布特性,因此通常无需手动设置种子除非有特殊要求。
阅读全文
相关推荐



















