Menu
CoddyTech

Tableaux

Fait partie de la section Les bases du scripting dans Unity du Journey Unity de Coddy. Leçon 41 sur 85.

Un tableau contient plusieurs valeurs d’un même type à la suite. Son type est suivi de crochets, et ses valeurs sont placées entre accolades :

int[] scores = { 10, 25, 7 };

Chaque valeur possède un indice, sa position dans la suite, et le comptage commence à 0 : scores[0] vaut 10, scores[1] vaut 25 et scores[2] vaut 7. scores.Length indique le nombre de valeurs, soit 3 ici. Demander scores[3] arrête le script avec une IndexOutOfRangeException : il n’y a pas de quatrième valeur.

Une boucle for allant jusqu’à Length parcourt toutes les valeurs, quel que soit le contenu du tableau :

for (int i = 0; i < scores.Length; i++)
{
    Debug.Log("Score " + i + ": " + scores[i]);
}

Lorsque tu n’as pas besoin de l’indice, foreach est plus court : foreach (int s in scores) { Debug.Log(s); } s’exécute une fois pour chaque valeur, dans l’ordre.

challenge icon

Défi

Moyen

Fais une ligne d’horizon de 7 tours à l’aide d’un tableau et d’une boucle.

  1. Ajoute 6f et 2f à la fin de heights : { 2f, 5f, 3f, 1f, 4f, 6f, 2f }.
  2. Remplace la ligne PlaceTower par for (int i = 0; i < heights.Length; i++).
  3. À l’intérieur de la boucle, appelle PlaceTower(i * 1.5f - 4.5f, heights[i]);.

Appuie sur « Jouer » : sept tours de différentes hauteurs se dressent en rangée. Puis appuie sur « Vérifier ».

Essayez vous-même

using UnityEngine;

public class Skyline : MonoBehaviour
{
    void Start()
    {
        float[] heights = { 2f, 5f, 3f, 1f, 4f };

        // Place une tour pour chaque hauteur.
        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);
    }
}

Toutes les leçons de Les bases du scripting dans Unity

Entraînez-vous par vous-même : Playground Unity