标签:
先声明一下,我是在那篇文章上看到的解决方法:
http://dl.download.csdn.net/down10/20141103/4b173214e41ff3207305c2470524b0f3.zip?response-
content-disposition=attachment%3Bfilename%3D%E8%84%9A%E6%9C
%AC.zip&OSSAccessKeyId=9q6nvzoJGowBj4q1&Expires=1454872774&Signature=HKeFoCiyZteMjgO9ScKmje
iXMg4%3D
方法其实没啥不同 只是代码由于大神手打,导致代码大小写不清楚,新人看到还得改许多,就如我!所以将代码重新写一遍。一是为了方便大家也是为了怕忘了,毕竟不常用/
其中重点是Guid:全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符。GUID主要用于在拥有多个节点、多台计算机的网络或系统中。在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。GUID 的总数达到了2^128(3.4×10^38)个,所以随机生成两个相同GUID的可能性非常小,但并不为0。GUID一词有时也专指微软对UUID标准的实现。
1 //声明一个静态整数变量 通过他的改变 测试后感觉可以是随机数 不再紧靠(就是随机数虽然不同但是 接近) 2 private static int randomCount = 0; 3 /// <summary> 4 /// 利用guid哈希值、当前时间ticks和计数器相乘来计算种子,生成rand变量。 5 /// </summary> 6 static float CreateRandomInt() 7 { 8 randomCount++; 9 //s实例化一个Guid类 10 Guid guid = Guid.NewGuid(); 11 12 int key1 = guid.GetHashCode(); 13 // 摘要:获取表示此实例的日期和时间的计时周期数。 14 // 返回结果: 表示此实例的日期和时间的计时周期数。该值介于 DateTime.MinValue.Ticks 和 DateTime.MaxValue.Ticks 15 // 之间。 16 int key2 = unchecked((int)DateTime.Now.Ticks); 17 18 int seed = unchecked(key1 * key2 * randomCount); 19 // 使用指定的种子值初始化 System.Random 类的新实例。 20 //Seed:用来计算伪随机数序列起始值的数字。如果指定的是负数,则使用其绝对值。 21 //这就保证了rand的不同 22 Random rand = new Random(seed); 23 float newRand = rand.Next(0, 100); 24 return newRand; 25 }
标签:
原文地址:http://www.cnblogs.com/redUnity/p/5185329.html