我如何创建一个非均匀的随机生成的gameObjects(敌人)模仿这个图像的“部落”的形成:
我希望前面有更多的游戏对象,而后面的游戏对象越来越少。我想到制作一个空游戏对象并让敌人以这样的代码为目标:
null
然而,这样做不会给我带来“追踪”效果,因为他回来的人数较少。
这是我的随机生成敌人的代码,如果它有帮助:
public Vector3 target : Transform;
if (target == null && GameObject.FindWithTag("Empty"))
{
target = GameObject.FindWithTag("Empty").transform;
}
有没有人建议如何实现这个目标?
实施@Jerry代码后的结果:
更集中于前方;少在后面:)
答案 0 :(得分:1)
我会选择Maximilian Gerhardt的建议。这是一些原始实现,您可以根据需要进行调整。调整最重要的是定位在一列中,使用一些随机数可以实现。
void SpawnHorde()
{
int hordeCount = 200;
float xPosition = 0;
const int maxInColumn = 20;
while (hordeCount > 0)
{
int numberInColumn = Random.Range(5, maxInColumn);
hordeCount -= numberInColumn;
if (hordeCount < 0)
numberInColumn += hordeCount;
for (int i = 0; i < numberInColumn; i++)
{
Vector3 spawnPosition = new Vector3(xPosition, 50, Random.Range(0, 100));
Instantiate(Resources.Load("Prefabs/Sphere"), spawnPosition, Quaternion.identity);
}
xPosition += (float)maxInColumn * 2f / (float)hordeCount;
}
}