Это в официальной документации :
Размещение группы объектов в определенном шаблоне Допустим, вы хотите поместить группу объектов в сетку или шаблон круга.Традиционно это может быть сделано либо:
Создание объекта полностью из кода.Это утомительно!Ввод значений из скрипта является медленным, не интуитивным и не стоит хлопот.Сделайте полностью сфальсифицированный объект, продублируйте его и поместите несколько раз на сцену.Это утомительно, и точное размещение объектов в сетке сложно.Так что используйте Instantiate () с префабом вместо этого!Мы думаем, что вы поняли, почему префабы так полезны в этих сценариях.Вот код, необходимый для этих сценариев:
// Instantiates a prefab in a circle
public GameObject prefab;
public int numberOfObjects = 20;
public float radius = 5f;
void Start()
{
for (int i = 0; i < numberOfObjects; i++)
{
float angle = i * Mathf.PI * 2 / numberOfObjects;
Vector3 pos = new Vector3(Mathf.Cos(angle), 0, Mathf.Sin(angle)) * radius;
Instantiate(prefab, pos, Quaternion.identity);
}
}
// Instantiates a prefab in a grid
public GameObject prefab;
public float gridX = 5f;
public float gridY = 5f;
public float spacing = 2f;
void Start()
{
for (int y = 0; y < gridY; y++)
{
for (int x = 0; x < gridX; x++)
{
Vector3 pos = new Vector3(x, 0, y) * spacing;
Instantiate(prefab, pos, Quaternion.identity);
}
}
}