Есть ли способ для размещения GameObjects в сетке (аналогично плитке)? - PullRequest
1 голос
/ 09 апреля 2019

Я довольно новичок в единстве, поэтому извините, если я произнесу это странно.

Я пытаюсь создать большую область, где каждая "плитка" может порождать случайный объект.У меня это работает для одного пустого GameObject, но для создания большой сетки потребуется копировать / вставлять один и тот же объект снова и снова и устанавливать его положение.

1 Ответ

1 голос
/ 09 апреля 2019

Это в официальной документации :

Размещение группы объектов в определенном шаблоне Допустим, вы хотите поместить группу объектов в сетку или шаблон круга.Традиционно это может быть сделано либо:

Создание объекта полностью из кода.Это утомительно!Ввод значений из скрипта является медленным, не интуитивным и не стоит хлопот.Сделайте полностью сфальсифицированный объект, продублируйте его и поместите несколько раз на сцену.Это утомительно, и точное размещение объектов в сетке сложно.Так что используйте 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);
        }
    }
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...