2017-07-27 55 views
0

我一直試圖在Unity中使用C#創建自己的類,但遇到了一個小問題。在我的PlayerClass結構我想要使用Random.Range(0,9)作爲參考號碼生成一個字符串六個隨機數。目前,我使用這樣做的代碼行,如下所示:Unity - 無法在類構造中生成隨機數

refNum = Random.Range (0, 9) + Random.Range (0, 9) + Random.Range (0, 9) + Random.Range (0, 9) + Random.Range (0, 9) + Random.Range (0, 9); 

我已經創建的變量引用句柄之外構建的在班上名列前茅。每次運行我的遊戲時,我都會收到一個錯誤消息,說我無法從類構造中生成隨機數。有人知道解決這個問題的方法嗎?

非常感謝,

湯米

+0

不是一個真正的解決方案,但你只是總結6隨機數字?結果,你將有最多2位數字。另請參閱https://stackoverflow.com/a/36104497/384674 ;-) – Betlista

+0

這是一個monobehavior附加到一個對象?如果是這樣,請改用'Start()'或'Awake()'。 – Draco18s

+0

@Betlista六個骰子滾動和總結並沒有一個統一的分佈。這對提問者來說可能很重要。 – Draco18s

回答

1

要具有包含六個隨機數字組成的字符串(0-9),你需要首先確保其中要使用(一個從UnityEngineSystemRandom類)。如果您正在使用從UnityEngine的人,你應該做這樣的事情:

string randomString = Random.Range(0, 9).ToString() + Random.Range(0, 9).ToString() + Random.Range(0, 9).ToString() + Random.Range(0, 9).ToString() + Random.Range(0, 9).ToString() + Random.Range(0, 9).ToString(); 

或許更優雅的方式來做到這一點:

string randomString = ""; 
    for (int i = 0; i < 6; i++) 
     randomString += Random.Range(0, 9).ToString(); 
+0

我在我的PlayerClass中創建了一個獨立的函數,它保存了生成一個隨機數的第二種方法。它的工作原理,但我不能通過我的構造函數來調用它。無論如何,我可以在每次從任何其他腳本創建一個類型爲PlayerClass的新變量時調用此函數嗎? –

+0

我已經複製了您描述的內容,沒有任何錯誤。你是否確保在你正在編寫你的'PlayerClass'的文件中聲明'使用UnityEngine'? – Lui

+0

是的,我肯定使用UnityEngine –