我目前正在尝试为我正在制作的游戏一次生成两个随机(全部)数字。我试图随机生成一个开始和结束的瓷砖。当我这样做时,我的两个随机生成的数字总是相同的。我明白这可能只是因为他们被称为计算在一起关闭,但我找不到任何有关如何获得两个不同的随机数字的信息。我的代码很简单(在C#中):Unity3d生成多个随机数
float startTile = Mathf.Ceil(Random.Range(1.0f, 8.0f));
float endTile = Mathf.Ceil(Random.Range(1.0f, 8.0f));
提前谢谢!
编辑
这被标记为重复的问题,其中对于老问题的答案是:
Random rand = new Random();
int t = rand.next(x,x2);
除非我做得不正确,我无法甚至使用rand.Next(x,x1)函数在单位内。
的实际代码:
private void SpawnStartandEndTiles()
{
Random rand = new Random();
int t = rand.N //<Next is not an option
//Other misc. Code that uses the random numbers
}
请让我知道,如果我只是没有得到与随机函数是如何工作的东西。
非常感谢。
随着你的更新的大小产生任何影响,展示如何你声明了'rand'。 –
我不认为这是重复的,因为你使用Unity的['Random.Range'](https://docs.unity3d.com/ScriptReference/Random.Range.html)而不是.NET的Random类。我不知道Unity,但是有一个['Random.InitState'](https://docs.unity3d.com/ScriptReference/Random.InitState.html)方法可以用一个整数种子值调用,所以一个潜在的解决方法是在'Random.Range'调用之间调用Random.InitState(new System.Random()。Next())'。但依靠.NET的随机生成一个随机种子,然后生成另一个随机数似乎很奇怪..也许只是使用.NET的随机本身。 – Quantic
澄清您正在使用'UnityEngine.Random'而不是'System.Random'可能有助于重新打开问题。 – Quantic