概述
一个简单的随机数获得 0或1
使用了这样的代码,想要获得0或者1
if (Input.anyKeyDown)
{
float i = -1;
if (i == -1)
{
i = Random.Range(0, Rang);
i = i < 0.5 ? 0 : 1; Debug.Log(" Count i; " + i);
}
if (i == 0)
{
MinCount++;
Debug.Log(" Count 0; " + MinCount);
}
if (i != 0)
{
MaxCount++; Debug.Log(" Count 1; "+ MaxCount);
}
}
测试结果,只有0,并没有得到我想要的结果。
使用了参考资料6,5,之后,发现Unity Random.Range(Min,Max)使用的是浮点型Float变量,因此0和1不能是整型Int,必须是Float 才行
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
private int Rang = 1;
if (Input.anyKeyDown)
{
int i = -1;
if (i == -1)
{
i = Random.Range(0, Rang);
//i = i < 49 ? 0 : 1;
}
Debug.Log(" 随机数 1 " + i);
}
private int Rang = 100;
if (Input.anyKeyDown)
{
int i = -1;
if (i == -1)
{
i = Random.Range(0, Rang);
i = i < 49 ? 0 : 1;
}
Debug.Log(" 随机数 1 " + i);
}
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
上面的结果,会连续显示2次相同的结果。不知道为什么。
查看了参考资料8,9。代码是没有问题的
代码如下所示。
int i = -1;
// Update is called once per frame
void Update () {
if (Input.GetMouseButtonDown(0))
{
i = Random.Range(0, 100);
i = i < 49 ? 0 : 1;
Debug.Log(" 随机数 " + Random.Range(0, 100));
}
}
然后新建了一个.cs文件,带入上述代码。发现是只执行1次。
理论上该代码在update函数里面,点击一次使用一次。
莫名其妙 执行2次,或者多次。有几种情况
1.使用了Input.GetMouseButton(0)
使用该函数,只要按住鼠标就会一直执行。
2.没有把代码放入update函数。而是OnGUI函数中
3.有多个物体 挂载了相同 的脚本。
取随机数,在0和1的范围内
如果想使用float浮点型变量,该怎么办
float i = -1;
// Update is called once per frame
void Update () {
if (Input.GetMouseButtonDown(0))
{
i = Random.Range(((float)0), ((float)1));
Debug.Log(" 随机数 " + i);
}
}
尽量少使用float 变量,因为该变量会导致占用较大的内存,如果变量都是该类型,就会造成大量的空间浪费,影响运行效率。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
参考资料:
1.
Unity3D -- 获取不重复的随机数
2.
Unity3D中Random.seed属性解析
3.
Unity3D 学习日记(四)生成不重复的随机数
4.
用C#生成不重复的随机数
5.
Random.Range 范围
6.
Random.Range
7.
Unity使用Random每次生成与上次不一致的随机数
8.为什么点击一次,update里的函数执行两次
9.
为什么点击一次,update里的函数执行两次
10.
11.
12.
13.
14.
8.
最后
以上就是发嗲糖豆为你收集整理的【Unity&C#&随机数】随机数Unity3D -- 获取不重复的随机数Unity3D中Random.seed属性解析用C#生成不重复的随机数Random.Range 范围Random.RangeUnity使用Random每次生成与上次不一致的随机数为什么点击一次,update里的函数执行两次为什么点击一次,update里的函数执行两次的全部内容,希望文章能够帮你解决【Unity&C#&随机数】随机数Unity3D -- 获取不重复的随机数Unity3D中Random.seed属性解析用C#生成不重复的随机数Random.Range 范围Random.RangeUnity使用Random每次生成与上次不一致的随机数为什么点击一次,update里的函数执行两次为什么点击一次,update里的函数执行两次所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复