我正在尝试从数组中访问随机元素,但我使用的Random生成器依次按顺序给我数字:
数字将始终排序,从不完全随机(即,下一个数字总是更大,直到达到最大值,然后再次从低数字开始)。这也可以是递增的或递减的。
我正在使用种子Random对象和Random.Next(-100,100)。 这与MSDN Random.Next page
上显示的行为不同我能想到的是,与Unity打包的.Net版本没有最新的Random?这种混乱的任何解决方案?
//Example
//Seed and ods set before the Awake method is called
public int seed;
public GameObject[] pathPartOds;
Random random;
GameObject[] path;
void Awake ()
{
random = new Random (seed);
}
void CreatePath (int length)
{
path = new GameObject[length];
for (int i = 0; i < length; i++)
path[i] = pathPartOds[random.Next (0, pathPartOds.length)];
}
使用了多个种子并且它们都给出了相同的结果,并且我一直使用随机int
创建种子答案 0 :(得分:1)
您需要创建一个Random
完全一次的实例,并将其作为参数传递到绘制随机数的函数中。
否则,您将破坏生成器的统计属性,因为它以系统(即非随机)方式播种。这解释了输出的分段单调性。