我目前正在嘗試爲我正在製作的遊戲一次生成兩個隨機(全部)數字。我試圖隨機生成一個開始和結束的瓷磚。當我這樣做時,我的兩個隨機生成的數字總是相同的。我明白這可能只是因爲他們被稱爲計算在一起關閉,但我找不到任何有關如何獲得兩個不同的隨機數字的信息。我的代碼很簡單(在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