Menu
CoddyTech

Créer des objets sur une grille

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

Une boucle à l’intérieur d’une autre boucle parcourt chaque cellule d’une grille : la boucle externe choisit une colonne, la boucle interne la parcourt. Placez-y un Instantiate et chaque cellule reçoit un objet. Cela construit un sol de 3 sur 3 à partir de tuiles de 2 unités de large, espacées de 2 unités :

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);
        }
    }
}

Les tuiles se placent aux coordonnées x = 0, 2, 4 et z = 0, 2, 4 : il y en a neuf, de (0, 0, 0) à (4, 0, 4). Les boucles s’exécutent dans Start(), une seule fois. Dans Update(), elles ajouteraient neuf tuiles supplémentaires à chaque image.

Le quatrième argument est un parent. Neuf objets Tile(Clone) sans parent encombreraient la hiérarchie ; en passant transform, ils sont rangés sous l’objet auquel ce script est attaché, le sol, ce qui permet de les replier, de les déplacer ensemble ou de les supprimer ensemble. La position transmise reste une position dans le monde.

challenge icon

Défi

Moyen

Construis un mur de prefabs Brick, de 4 briques de large et de 5 de haut.

  1. Dans Start(), fais une boucle où c va de 0 à 3 et, à l’intérieur, où r va de 0 à 4.
  2. Dans la boucle interne, appelle Instantiate(brickPrefab, new Vector3(-1.5f + c, 0.25f + r * 0.5f, 0), Quaternion.identity, transform). Le dernier argument fait de chaque brique un enfant du mur.

Appuie sur « Jouer » : un mur de 20 briques se dresse sur le sol. Puis appuie sur « Vérifier ».

Essayez vous-même

using UnityEngine;

public class WallBuilder : MonoBehaviour
{
    public GameObject brickPrefab;

    void Start()
    {
        // 4 colonnes sur 5 rangées de briques, chacune étant un enfant de ce Wall
    }
}

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

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