Laços dentro de laços
Parte da seção Fundamentos de Scripting no Unity do Journey de Unity da Coddy. Lição 38 de 85.
Uma linha precisa de um loop. Um andar inteiro, com linhas e colunas, precisa de um loop dentro de outro:
for (int column = 0; column < 3; column++)
{
for (int row = 0; row < 2; row++)
{
Debug.Log(column + ", " + row);
}
}A cada rodada do loop externo, o loop interno é executado até o fim. Então, isso escreve 0, 0 e 0, 1, depois 1, 0 e 1, 1, depois 2, 0 e 2, 1: 3 colunas vezes 2 linhas, 6 linhas ao todo.
Os dois loops precisam de contadores com nomes diferentes. Aqui, eles recebem nomes de acordo com o que contam, column e row, o que torna o código mais fácil de ler do que i e j.
Desafio
MédioMonte um piso com 12 peças: 4 colunas, 3 linhas.
- Em
Start(), substituaPlaceTile(0, 0);porfor (int column = 0; column < 4; column++). - Dentro das chaves, escreva
for (int row = 0; row < 3; row++)e chamePlaceTile(column, row);dentro desse loop interno.
Pressione “Jogar”: aparece um piso com 4 por 3 peças. Em seguida, pressione “Verificar”.
Experimente você mesmo
using UnityEngine;
public class TileFloor : MonoBehaviour
{
void Start()
{
// Disponha 4 colunas e 3 linhas de ladrilhos.
PlaceTile(0, 0);
}
void PlaceTile(int column, int row)
{
GameObject tile = GameObject.CreatePrimitive(PrimitiveType.Cube);
tile.name = "Tile";
tile.transform.position = new Vector3(column * 1.1f - 1.65f, 0.1f, row * 1.1f);
tile.transform.localScale = new Vector3(1, 0.2f, 1);
tile.GetComponent<Renderer>().material.color = new Color(0.85f, 0.85f, 0.9f);
}
}
Todas as lições de Fundamentos de Scripting no Unity
1Fundamentos de C# no Unity
Olá, UnityVariáveisDecimais precisam de um fTexto no ConsoleVariáveis que guardam valoresIf e ElseComparar númerosRevisão: Coletor de Moedas7Laços e Métodos
Repita com forLaços dentro de laçosEscreva um métodoMétodos que respondemArraysRevisão: Escada10Encontrando coisas
Buscar pelo nomeTagsBuscar por tipoReferências são melhores que FindO null do UnityRevisão: moeda mais próxima13Projeto: Desvie dos Blocos
O CorredorBlocos do Céu2Faça-o se mover
Posicione o cuboMova a cada quadroGire a cada segundoDirija com as teclasRecapitulando: dirija o cubo5Vetores
Somando vetoresDireçõesEspaço local e globalVelocidade diagonalDistância entre objetosVector3 é uma structRevisão: piloto de drone8GameObjects e Componentes
Referências no InspectorObter um componenteComponentes ausentesAdicionar um componenteRequireComponentMostrar e ocultarRevisão: Interruptor de luz6Transformações e hierarquia
Pais e filhosIçar a bandeiraEscalaOlhar para as coisasMover-se em direção a um pontoRevisão: Lua em órbita9Projeto: Pegue a Estrela
O PegadorUma Estrela CadentePratique por conta própria: Playground de Unity