统一的随机事件?
Random event with in unity?
仅供参考,我对编程和 C# 还很陌生。对不起,如果这个问题看起来很简单。
我有点难以解释我想做什么。所以基本上,有 array/list 个数字。该号码将通过使用 Random.Range() 来选择。每个数字都会有自己的动作,他们会激活。例如,1 号将启动 scene1,2 号将启动 scene2,依此类推。你如何将这个随机选择的数字分配给某个动作?
我什至不知道如何将其放入代码中(使用 array/string?),但基本思路可能如下所示:
int randomNumber = Random.Range(1, 10);
randomNumber[1] = SceneManager.LoadScene(Level1);
randomNumber[2] = SceneManager.LoadScene(Level2);
...
最简单的方法是:
int randomNumber = Random.Range(1, 10);
if(randomNumber == 1) {
// Load Scene 1
} else if (randomNumber == 2) {
// Load Scene 2
}
编辑:
在这种情况下,您不分配随机数。您检查随机数是否是特定数字。您可以使用 ==
.
检查数字是否相等
随机数的值介于 1 和 9 之间,每次您 运行 程序时这个数字都是随机的。
如果你想更动态地做到这一点,你可以看看@derHugo 的答案。取决于您如何使用它以及您必须编写多少 if-else 语句。
请注意 不准确 ;)
上限Random.Range(int,int)
独占所以
Random.Range(0, 10)
永远不会 return 10
但值介于 0
和 9
之间。
实际上更简单的方法是将所有场景存储在一个数组中,例如
public List<string> scenes = new List<string>();
然后使用
var randomIndex = Random.Range(0, scene.Length);
SceneManager.LoadScene(scenes[randomIndex]);
不需要冗长且不动态的 if-else
或 switch-case
。 array/list 可以在 Inspector 中甚至在运行时完全动态调整,而无需添加更多案例。
仅供参考,我对编程和 C# 还很陌生。对不起,如果这个问题看起来很简单。
我有点难以解释我想做什么。所以基本上,有 array/list 个数字。该号码将通过使用 Random.Range() 来选择。每个数字都会有自己的动作,他们会激活。例如,1 号将启动 scene1,2 号将启动 scene2,依此类推。你如何将这个随机选择的数字分配给某个动作?
我什至不知道如何将其放入代码中(使用 array/string?),但基本思路可能如下所示:
int randomNumber = Random.Range(1, 10);
randomNumber[1] = SceneManager.LoadScene(Level1);
randomNumber[2] = SceneManager.LoadScene(Level2);
...
最简单的方法是:
int randomNumber = Random.Range(1, 10);
if(randomNumber == 1) {
// Load Scene 1
} else if (randomNumber == 2) {
// Load Scene 2
}
编辑:
在这种情况下,您不分配随机数。您检查随机数是否是特定数字。您可以使用 ==
.
随机数的值介于 1 和 9 之间,每次您 运行 程序时这个数字都是随机的。
如果你想更动态地做到这一点,你可以看看@derHugo 的答案。取决于您如何使用它以及您必须编写多少 if-else 语句。
请注意
上限Random.Range(int,int)
独占所以
Random.Range(0, 10)
永远不会 return 10
但值介于 0
和 9
之间。
实际上更简单的方法是将所有场景存储在一个数组中,例如
public List<string> scenes = new List<string>();
然后使用
var randomIndex = Random.Range(0, scene.Length);
SceneManager.LoadScene(scenes[randomIndex]);
不需要冗长且不动态的 if-else
或 switch-case
。 array/list 可以在 Inspector 中甚至在运行时完全动态调整,而无需添加更多案例。