Arrays
Parte da seção Fundamentos de Scripting no Unity do Journey de Unity da Coddy. Lição 41 de 85.
Um array armazena vários valores de um mesmo tipo em sequência. Seu tipo tem colchetes depois dele, e seus valores ficam entre chaves:
int[] scores = { 10, 25, 7 };Cada valor tem um índice, sua posição na sequência, e a contagem começa em 0: scores[0] é 10, scores[1] é 25 e scores[2] é 7. scores.Length indica quantos valores há, 3 neste caso. Acessar scores[3] interrompe o script com uma IndexOutOfRangeException: não existe um quarto valor.
Um loop for até Length percorre todos os valores, independentemente do que o array contém:
for (int i = 0; i < scores.Length; i++)
{
Debug.Log("Score " + i + ": " + scores[i]);
}Quando você não precisa do índice, foreach é mais curto: foreach (int s in scores) { Debug.Log(s); } é executado uma vez para cada valor, em ordem.
Desafio
MédioFaça o horizonte ter 7 torres de comprimento com um array e um loop.
- Adicione
6fe2fao final deheights:{ 2f, 5f, 3f, 1f, 4f, 6f, 2f }. - Substitua a linha
PlaceTowerporfor (int i = 0; i < heights.Length; i++). - Dentro dele, chame
PlaceTower(i * 1.5f - 4.5f, heights[i]);.
Pressione “Jogar”: sete torres de diferentes alturas ficam em uma fileira. Depois, “Verificar”.
Experimente você mesmo
using UnityEngine;
public class Skyline : MonoBehaviour
{
void Start()
{
float[] heights = { 2f, 5f, 3f, 1f, 4f };
// Posicione uma torre para cada altura.
PlaceTower(-4.5f, heights[0]);
}
void PlaceTower(float x, float height)
{
GameObject tower = GameObject.CreatePrimitive(PrimitiveType.Cube);
tower.name = "Tower";
tower.transform.position = new Vector3(x, height / 2, 0);
tower.transform.localScale = new Vector3(1, height, 1);
tower.GetComponent<Renderer>().material.color = new Color(0.35f, 0.45f, 0.7f);
}
}
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