Loops 我想根据波浪中会产生的不同敌人的数量随机产生一系列敌人。(TD游戏),我该怎么做? private void determineenmyselection() { int _totalCount=0; for(int i=0;i

Loops 我想根据波浪中会产生的不同敌人的数量随机产生一系列敌人。(TD游戏),我该怎么做? private void determineenmyselection() { int _totalCount=0; for(int i=0;i,loops,random,crash,stack,Loops,Random,Crash,Stack,上下文:Enemicounts[]包含每种类型的敌人数量(Enemicounts[0]是将在波浪中繁殖的类型1的敌人数量) _totalCount是将在波浪中繁殖的敌人总数,包括所有敌人类型。 我的想法是有一堆数字作为敌人的类型id。数字从0到6,将被随机推送。如果enemyCounts[_sel]为空,我想创建一个新的随机数,如果可能,将该随机数从范围中排除(因此,如果enemyCounts[3]为空,可能会生成数字0 1 2 4 5) 我找不到解决办法。我已经有一个涉及了一个while循环,

上下文:Enemicounts[]包含每种类型的敌人数量(Enemicounts[0]是将在波浪中繁殖的类型1的敌人数量)

_totalCount是将在波浪中繁殖的敌人总数,包括所有敌人类型。 我的想法是有一堆数字作为敌人的类型id。数字从0到6,将被随机推送。如果enemyCounts[_sel]为空,我想创建一个新的随机数,如果可能,将该随机数从范围中排除(因此,如果enemyCounts[3]为空,可能会生成数字0 1 2 4 5)

我找不到解决办法。我已经有一个涉及了一个while循环,但由于某种原因,这使游戏在一段时间后崩溃,达到2701470次尝试生成下一个敌人,导致崩溃。我想要一个堆栈,它最终的长度为_totalCount(这样你就不会得到重复的敌人),看起来有点像{0,1,2,0,4,1,0,3,0,3,5,1,5,3,3,2,2,0}等等。这意味着这将是敌人的继承


没有无休止的循环,最好的解决方法是什么?

我自己找到了解决这个问题的方法:

    private void DetermineEnemySelection()
    {
        int _totalCount = 0;
        for(int i = 0; i < enemyCounts.Length; i++)
        {
            _totalCount += enemyCounts[i];
        }

        Stack<int> rn = new Stack<int>();

        for(int i = 0; i < _totalCount; i++)
        {
            int _sel = Random.Range(0, 5);
            if(enemyCounts[_sel] == 0)
            {

            }
        }
    }
private void determineenmyselection()
{
int _totalCount=0;
for(int i=0;i
我自己找到了解决此问题的方法:

    private void DetermineEnemySelection()
    {
        int _totalCount = 0;
        for(int i = 0; i < enemyCounts.Length; i++)
        {
            _totalCount += enemyCounts[i];
        }

        Stack<int> rn = new Stack<int>();

        for(int i = 0; i < _totalCount; i++)
        {
            int _sel = Random.Range(0, 5);
            if(enemyCounts[_sel] == 0)
            {

            }
        }
    }
private void determineenmyselection()
{
int _totalCount=0;
for(int i=0;i