Menu
CoddyTech

Criar objetos em uma grade

Parte da seção Noções básicas de scripting no Unity do Journey de Unity da Coddy. Lição 50 de 67.

Um loop dentro de outro loop percorre cada célula de uma grade: o loop externo escolhe uma coluna, o interno percorre essa coluna. Coloque um Instantiate dentro deles e cada célula receberá um objeto. Isso cria um piso de 3 por 3 usando peças de 2 unidades de largura, então as peças ficam separadas por 2 unidades:

public GameObject tilePrefab;

void Start()
{
    for (int x = 0; x < 3; x++)
    {
        for (int z = 0; z < 3; z++)
        {
            Vector3 spot = new Vector3(x * 2, 0, z * 2);
            Instantiate(tilePrefab, spot, Quaternion.identity, transform);
        }
    }
}

As peças ficam nas posições x = 0, 2, 4 e z = 0, 2, 4: nove delas, de (0, 0, 0) a (4, 0, 4). Os loops são executados em Start(), uma vez. Em Update(), eles adicionariam mais nove peças a cada quadro.

O quarto argumento é um objeto pai. Nove objetos Tile(Clone) soltos deixariam a Hierarchy desorganizada; passar transform os organiza sob o objeto ao qual este script está anexado, o Floor, para que possam ser recolhidos, movidos juntos ou excluídos juntos. A posição passada ainda é uma posição no mundo.

challenge icon

Desafio

Médio

Construa uma parede de tijolos usando o prefab Brick, com 4 tijolos de largura e 5 fileiras de altura, apoiada no chão. Um tijolo tem 1 unidade de largura e 0.5 de altura.

  • As 4 colunas estão em x = -1.5, -0.5, 0.5 e 1.5.
  • A fileira inferior fica apoiada no chão, então seus tijolos estão em y = 0.25. Cada fileira fica 0.5 acima da fileira abaixo dela.
  • Cada tijolo está em z = 0, não tem rotação e é filho de Wall, o objeto no qual este script está.

Pressione Play para ver a parede e, em seguida, Check.

Experimente você mesmo

using UnityEngine;

public class WallBuilder : MonoBehaviour
{
    public GameObject brickPrefab;

    void Start()
    {
        // 4 colunas por 5 fileiras de tijolos, cada um filho deste Wall
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Noções básicas de scripting no Unity