在unity中如何只在一小块区域中生成怪物1和怪物2
时间: 2024-02-24 08:53:39 浏览: 24
你可以使用 Random.Range 方法生成一个在一小块区域内的随机位置,然后根据该位置在该区域内生成怪物1或怪物2。具体来说,你可以在 GenerateRandomMonster 方法中添加以下代码:
```C#
void GenerateRandomMonster() {
float randomX = Random.Range(minX, maxX);
float randomY = Random.Range(minY, maxY);
Vector2 randomPos = new Vector2(randomX, randomY);
if (IsInArea(randomPos)) {
Instantiate(monster1, randomPos, Quaternion.identity);
} else {
Instantiate(monster2, randomPos, Quaternion.identity);
}
}
bool IsInArea(Vector2 pos) {
return pos.x >= minX && pos.x <= maxX && pos.y >= minY && pos.y <= maxY;
}
```
在这个代码中,我们首先使用 Random.Range 方法分别生成一个在 minX 和 maxX 之间、在 minY 和 maxY 之间的随机位置 randomX 和 randomY。然后,我们将这个位置组合成一个 Vector2 类型的随机位置 randomPos。
接着,我们定义了一个 IsInArea 方法,用于判断一个位置是否在一小块区域内。在 GenerateRandomMonster 方法中,我们调用 IsInArea 方法判断随机位置 randomPos 是否在该区域内。如果在区域内就生成怪物1,否则生成怪物2。
需要注意的是,这种方法只是在一小块区域内生成怪物1或怪物2,而不是在整个场景中生成。如果你需要在整个场景中生成怪物,请忽略 IsInArea 方法的代码,并将相关的区域边界变量设为场景边界。