Unity3d 如何使用“生成一个数字”;“随机范围”;换个环境?

Unity3d 如何使用“生成一个数字”;“随机范围”;换个环境?,unity3d,random,numbers,Unity3d,Random,Numbers,我有这个剧本: public class EmpezarJuego : MonoBehaviour { int number; public void Empezar() { number = Random.Range(1,4); if (number == 1) { SceneManager.LoadScene ("GAME"); } if (number == 2) { SceneManager.LoadScene ("

我有这个剧本:

public class EmpezarJuego : MonoBehaviour {

int number;

public void Empezar() {

    number = Random.Range(1,4);

    if (number == 1) {
        SceneManager.LoadScene ("GAME");
    }
    if (number == 2) {
        SceneManager.LoadScene ("GAME_1");
    }
    if (number == 3) {
        SceneManager.LoadScene ("GAME_2");
    }
    if (number == 4) {
        SceneManager.LoadScene ("GAME_3");
    }



 }
}

我想:如果数字=1,我的场景就是游戏,如果数字=2,那么我的场景就是游戏1。。。。但是它不起作用为什么??

要让SceneManager发挥作用,您需要将场景添加到构建索引中。您可以通过以下方式执行此操作:

文件->构建设置->添加打开的场景

之后,您可以调用
SceneManager.LoadScene(“NameOfScene”)
,或者,例如,如果您想加载下一个级别,您可以编写

SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);

要加载生成索引列表中的下一个场景。

要使SceneManager正常工作,您需要将场景添加到生成索引中。您可以通过以下方式执行此操作:

文件->构建设置->添加打开的场景

之后,您可以调用
SceneManager.LoadScene(“NameOfScene”)
,或者,例如,如果您想加载下一个级别,您可以编写

SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
加载生成索引列表中的下一个场景。

根据,
Random.Range

返回介于和最小值[包括]和最大值[排除]之间的随机整数

这意味着您必须执行
Random.Range(1,5)
才能在命中第四个
时执行该操作

希望能解决它

另外,如果
阻塞,则应使用
开关(数字)
而不是

根据,
随机范围

返回介于和最小值[包括]和最大值[排除]之间的随机整数

这意味着您必须执行
Random.Range(1,5)
才能在命中第四个
时执行该操作

希望能解决它



另外,如果
阻塞,您应该使用
开关(编号)
而不是

它以什么方式不工作?您的代码是否至少输入了适当的if语句?另外,int值的
Random.Range()
的上限是互斥的-这意味着如果您希望数字从1到4,您实际上应该使用
Random.Range(1,5)
。它以什么方式不起作用?你把场景添加到构建索引了吗?哈哈@Fredrik+1!我忘了在构建索引中添加场景!谢谢您可以使用
SceneManager.LoadScene(“游戏+(数字-1).ToString())
if/else
语句的
8
行代码简化为
1
。现在将第一个游戏场景更改为第0场。@Fredrik您可能应该发布一个答案,这样他就可以结束这个问题。如果现在一切都正常了,那么它在哪方面不正常呢?您的代码是否至少输入了适当的if语句?另外,int值的
Random.Range()
的上限是互斥的-这意味着如果您希望数字从1到4,您实际上应该使用
Random.Range(1,5)
。它以什么方式不起作用?你把场景添加到构建索引了吗?哈哈@Fredrik+1!我忘了在构建索引中添加场景!谢谢您可以使用
SceneManager.LoadScene(“游戏+(数字-1).ToString())
if/else
语句的
8
行代码简化为
1
。现在将第一个游戏场景更改为第0场。@Fredrik您可能应该发布一个答案,这样他就可以结束这个问题。如果现在一切正常,那么最好再加上他的随机范围(1,4)永远不会有值4。真的!除非您使用的是浮动,其中最大值是包含的
int Random.Range
具有独占的最大值。最好添加他的Random.Range(1,4)将永远不会有值4。的确!除非您使用的是浮动,其中最大值是包含的
int Random.Range
具有独占的最大值。我知道它是如何工作的,但根据文档,它说最小值和最大值都是包含的。。。但是如果你需要+1它才能将其包括在内,那么max显然是不包括在内的。它说明max是包含的,所以使用Random.Range(0.0f,1.0f)可以返回1.0作为值。在文档中,这表明情况并非如此。但显然不是这样,我只是自己测试了一下。古怪的头脑。这就是浮子过载。int重载有一个唯一的最大值。这很有意义,哈哈。我知道它是如何工作的,但根据文档,它说最小值和最大值都是包含的。。。但是如果你需要+1它才能将其包括在内,那么max显然是不包括在内的。它说明max是包含的,所以使用Random.Range(0.0f,1.0f)可以返回1.0作为值。在文档中,这表明情况并非如此。但显然不是这样,我只是自己测试了一下。古怪的头脑。这就是浮子过载。int重载有一个唯一的最大值。这很有意义,哈哈。