天天看點

Unity 産生各不相同的随機數

1. 網上很多方法都說用時間種子來解決,但是在極短的時間内,這種方法沒效

Random r = new Random(DateTime.Now.Millisecond);
 
Random Counter = new Random(unchecked((int)(DateTime.Now.Ticks >> ctr)));
 
Random Counter = new Random(System.Guid.NewGuid().GetHashCode());      

2. 用Random結合Hashtable才完美實作我想要的效果

    以下是随機生成3個小于3的各不相同正整随機數的代碼,生成的結果是0 1 2, 2 0 1等,而不會出現像 0 0 1 這樣有重複數的情況

string testStr;
    void OnGUI()
    {
        if (GUILayout.Button("産生随機數"))
        {
            testStr = "";
 
            Hashtable hashtable = new Hashtable();
            System.Random rm = new System.Random();
            int RmNum = 3;
            for (int i = 0; hashtable.Count < RmNum; i++)
            {
                int nValue = rm.Next(3);
                if (!hashtable.ContainsValue(nValue))
                {
                    hashtable.Add(nValue, nValue);    //Add(key,value)
                    testStr += nValue + " ";
                }
            }
        }
        GUILayout.Label(testStr);
    }      

效果很贊的表單線上制作工具推薦

作者:大表哥的筆記

出處:http://www.cnblogs.com/dabiaoge/

提示:本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。

如果覺得還有幫助的話,可以點一下右下角的【推薦】,希望能夠持續的為大家帶來好的技術文章!想跟我一起進步麼?那就【關注】我吧。

如果對文章有任何問題,都可以再評論中留言,我會盡可能的答複您,謝謝你的閱讀

繼續閱讀