我已经使用了很长时间的C ++。现在,我刚刚开始在Unity3D中使用C#。我几乎完成了一个应用程序,但我似乎无法在Unity C#中找到一个工作的int生成器(具有最小值和最大值)。 我尝试过以下方法:
r = Random.Range(min, max)
和
Random rand = new Random();
r = rand.next(min, max)
两者都没有用。我知道你在C ++中使用:
r = rand() % max + min;
如果你想要一个随机数。但是Unity C#的情况如何呢? 代码:
修改:
using UnityEngine;
using System.Collections;
public class STarget : MonoBehaviour {
public GameObject inter;
int rand;
public GameObject TS1;
public GameObject TS2;
public GameObject TS3;
public GameObject TS4;
public GameObject TS5;
void Update () {
rand = Random.Range(1, 6);
}
public void GameRun () {
switch (rand){
case 1:
inter = TS1;
break;
case 2:
inter = TS2;
break;
case 3:
inter = TS3;
break;
case 4:
inter = TS4;
break;
case 5:
inter = TS5;
break;
}
Game.TargetSingle(inter);
}
}
答案 0 :(得分:3)
来自C ++,就像r = rand() % max + min
会在C ++中给出min
和max
之间的随机数字一样,它在C#中是不同的。首先,使用Random.Range(min, max)
获取Unity中的随机数。
要真正理解的是,Random.Range(min, max)
确实会在min
和max
之间随机提供给您,就像在C ++中一样。如果提供的min
和(max-1)
是整数,它会在min
和max
之间给出一个随机数。
因此,如果您需要从1
到5
的随机数,请将1
添加到最大值(5),否则您只会获得1
到{{1}的数字}}。 4
或Random.Range(2, 5+1)
。这可能是你的问题。