unity3d 团结一致的敌人

ecr0jaav  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(187)

我想从不同的和超过50+的立场产卵的敌人。
我尝试用这个代码来生成15个位置,但是我能为100个位置做些什么呢?有什么捷径吗?我试着用s[randomIndex],但是它没有定义,所以我得到了一个错误。
`

switch (randomIndex)
            {
                case 0:
                    spawnedEnemy.transform.position = s0.position;
                    break;

                case 1: spawnedEnemy.transform.position = s1.position;
                    break;

                case 2:   spawnedEnemy.transform.position = s2.position;
                    break;

                case 3: spawnedEnemy.transform.position = s3.position;
                    break;

                case 4: spawnedEnemy.transform.position = s4.position;
                    break;

                case 5:
                    spawnedEnemy.transform.position = s5.position;
                    break;

                case 6:
                    spawnedEnemy.transform.position = s6.position;
                    break;

                case 7:
                    spawnedEnemy.transform.position = s7.position;
                    break;

                case 8:
                    spawnedEnemy.transform.position = s8.position;
                    break;

                case 9:
                    spawnedEnemy.transform.position = s9.position;
                    break;

                case 10:
                    spawnedEnemy.transform.position = s10.position;
                    break;

                case 11:
                    spawnedEnemy.transform.position = s11.position;
                    break;

                case 12:
                    spawnedEnemy.transform.position = s12.position;
                    break;

                case 13:
                    spawnedEnemy.transform.position = s13.position;
                    break;

                case 14:
                    spawnedEnemy.transform.position = s14.position;
                    break;

`

nimxete2

nimxete21#

我认为你可能是以一种非统一中心的方式来处理这个问题的。
“让我们来想想你要做什么,看起来你需要一堆刷新点,然后随机选择一个刷新点,在那里刷新一个敌人。”
我会创建一个非常简单的MonoBehaviour,它基本上只是一个标签,是一个空的MonoBehaviour脚本,叫做SpawnPoint。
现在,让我们通过在场景中创建一个空的游戏对象来创建一个产卵点,并将我们的新脚本添加到其中。将其作为一个预制件,以便您可以重用它。
将其复制100次,然后在场景中将其移动到正确的位置。
现在你有了你的出生点,我们需要把它们收集在一个列表中,然后随机选择一个。下面是伪代码,但应该足够让你开始了:

public class RandomSpawner() : Monobehaviour {

    List<SpawnPoint> _spawnPoints;

    void Awake() {

       // Gathers all spawn points in your scene. There are more optimized ways to do this. but this is a good start.
       _spawnPoints = FindObjectsOfType<SpawnPoint>();
    }

    public void Spawn() {

        // generate some random index from your list

        SpawnPoint randomSpawnPoint = _spawnPoints[index];

        GameObject enemy = Instantiate(enemyPrefab);
        enemy.transform.position = randomSpawnPoint.transform.position;

    }

    

}

希望这能帮助你开始。
根据我的经验,如果你使用switch语句,并且有超过4个选项,这通常意味着你需要从不同的Angular 考虑问题。

相关问题