Unity3D C# 随机输入生成器

Unity3D C# Random Int Generator

本文关键字:输入 随机 Unity3D      更新时间:2023-10-16

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

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

真正要理解的是,Random.Range(min, max)不会像C++那样真正从minmax之间随机给你。如果提供的minmax是整数,它将为您提供一个介于min (max-1)之间的随机数。

所以当你需要从 15 的随机数时,将 1 添加到 max(5( 中,否则你将只得到从 14 的数字。 Random.Range(2, 5+1)Random.Range(min, max+1) .这可能是你的问题。