如何让我的敌人在4个不同的Vector3位置之间随机产卵



我目前正在创建一个游戏,玩家在方形平台上,我希望敌人从平台的四个边缘随机产生。到目前为止,我可以让我的敌人从一个边缘随机产卵,但不知道如何让他们从四个边缘都产卵。我想它能和Vector3数组一起工作吗?但我正在努力把这件事做好。请帮忙!

到目前为止我的生成代码:

void SpawnRandomEnemy()
{
if(!playerControllerScript.gameOver && !playerControllerScript.hasFreezePowerup)
{
int enemyIndex = Random.Range(0, enemyPrefabs.Length);
Vector3 spawnPos = new Vector3(Random.Range(-spawnRange, spawnRange), 0, spawnPosZ);
Instantiate(enemyPrefabs[enemyIndex], spawnPos, enemyPrefabs[enemyIndex].transform.rotation);
}        
}

你可以做的最简单的事情是在正方形的4条边上各放置4个空游戏对象作为spawner。将它们放在由游戏对象组成的数组中(类似于您对enemyPremabs数组所做的操作(。

然后你会随机选择其中一个,就像选择敌人的索引一样:

int spawnIndex = Random.Range(0, spawnPoints.Length);

然后你就可以找到那个产卵点的位置。

Vector3 spawnPos = spawnPoints[spawnIndex].transform.position;

然后你可以用多种方式编辑产卵位置。例如,您可以将Y设置为等于0(或任何适合您需要的值(,也可以向游戏对象的X位置添加一些偏移(这样它们就不会每次都在同一位置生成(。你基本上可以对X、Y、Z都这样做——你只需要摆弄它,直到它真正开始扮演一个随机设置的产卵者(只是要小心偏移,这样你的敌人就不会从正方形中产卵(。

spawnPos.X = spawnPos.X + someOffset;

你也必须随机生成偏移量——就像上面的事情一样。

最新更新