Unity3D C#Random Int Generator

时间:2016-05-08 23:22:31

标签: c# c++ random unity3d

我已经使用了很长时间的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);
    }
}

1 个答案:

答案 0 :(得分:3)

来自C ++,就像r = rand() % max + min会在C ++中给出minmax之间的随机数字一样,它在C#中是不同的。首先,使用Random.Range(min, max)获取Unity中的随机数。

要真正理解的是,Random.Range(min, max) 确实会在minmax之间随机提供给您,就像在C ++中一样。如果提供的min(max-1)是整数,它会在minmax之间给出一个随机数。

因此,如果您需要从15的随机数,请将1添加到最大值(5),否则您只会获得1到{{1}的数字}}。 4Random.Range(2, 5+1)。这可能是你的问题。