【发布时间】:2017-08-03 09:36:27
【问题描述】:
我正在使用随机范围来选择要生成的敌人类型。
IEnumerator Spawn()
{
int randAmount = UnityEngine.Random.Range(minAmount, maxAmount); // Determine quantity of enemies to be spawned
int randType = UnityEngine.Random.Range(0, 1); // Determine which enemy is spawned
enemies[randType](randAmount); // Call enemy type, then amount
yield return new WaitForSeconds(spawnRate);
StartCoroutine(Spawn()); // Loop
}
当使用调试器附加到统一时,我可以看到每次调用协程时randAmountchanges,但是randType并没有从0改变,我一直在测试一遍又一遍,我开始思考这不再是厄运。
我知道第一个变量工作正常,是否有确保第二个变量正常工作,或者每次调用协程时获取 0 到 1 之间的随机数的替代方法。
【问题讨论】:
-
static function Range (min : int, max : int) : int描述返回一个介于 min [inclusive] 和 max [exclusive] 之间的随机整数(只读)。 -
@OmBiEaTer,我认为他们没有计算上限,所以你必须去 +1
-
Random.Range(0, 2) -
不是骗子——它是 Unity API,而不是 MS C# API。
标签: c# unity3d random delegates