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.
Desafio
MédioConstrua 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
}
}
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
1Seu primeiro script
Olá, UnityPosicione o cuboMova a cada quadroGire a cada segundoConduza com as teclasRecapitulando: dirija o cubo4Vetores
Adicionando vetoresDireçõesEspaço local e espaço do mundoVelocidade diagonalDistância entre objetosVector3 é uma structRevisão: piloto de drone7Projeto: Pegue a Estrela
O ApanhadorUma Estrela Cadente10O ciclo de vida dos scripts
Awake e StartUpdate e LateUpdateOnEnable e OnDisableA ordem do ciclo de vidaRevisão: registrador do ciclo de vida5Transformações e Hierarquia
Pais e FilhosEscalaObserve as CoisasMova-se em Direção a um PontoRevisão: Lua em Órbita6GameObjects e Componentes
Referências no InspectorObter um ComponenteComponentes AusentesAdicionar um ComponenteRequireComponentMostrar e OcultarRevisão: Interruptor de Luz9Prefabs e criação de objetos
Prefabs e InstantiateCriar objetos com um temporizadorCriar objetos em uma gradeListas de objetosDestruirCriação aleatória de objetosRevisão: fogos de artifício