Faire apparaître des objets dans une grille
Fait partie de la section Les bases du scripting dans Unity du Journey Unity de Coddy. Leçon 50 sur 67.
Une boucle à l’intérieur d’une boucle parcourt chaque cellule d’une grille : la boucle externe choisit une colonne, la boucle interne la parcourt. Placez un Instantiate à l’intérieur et chaque cellule reçoit un objet. Cela construit un sol de 3 par 3 à partir de tuiles de 2 unités de largeur, les tuiles sont donc 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 trouvent 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) indépendants encombreraient la Hiérarchie ; en passant transform, ils sont rattachés à l’objet sur lequel se trouve ce script, le Floor, afin de pouvoir être repliés, déplacés ensemble ou supprimés ensemble. La position transmise reste une position dans le monde.
Défi
MoyenConstruis un mur de briques à partir du prefab Brick, large de 4 briques et haut de 5 rangées, posé sur le sol. Une brique mesure 1 unité de large et 0,5 de haut.
- Les 4 colonnes sont aux positions x = -1.5, -0.5, 0.5 et 1.5.
- La rangée du bas repose sur le sol, ses briques sont donc à y = 0.25. Chaque rangée est 0.5 au-dessus de celle qui se trouve en dessous.
- Chaque brique est à z = 0, n’a aucune rotation et est un enfant de Wall, l’objet sur lequel se trouve ce script.
Appuie sur Play pour voir le mur, puis sur Check.
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
}
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Les bases du scripting dans Unity
1Votre premier script
Bonjour, UnityPlacez le cubeBouger à chaque imageTourner chaque secondeDirigez avec les touchesRécapitulatif : conduisez le cube4Vecteurs
Addition de vecteursDirectionsEspaces local et mondeVitesse diagonaleDistance entre les objetsVector3 est une structRécapitulatif : pilote de drone7Projet : Attrape l’étoile
L’attrapeurUne étoile qui tombe2L’inspecteur
Champs de l’inspecteurSerializeFieldNombres flottants et MathfAttributs de l’inspecteurRécapitulatif : ascenseur5Transformations et hiérarchie
Parents et enfantsÉchelleRegarder les objetsSe déplacer vers un pointRécapitulatif : Lune en orbite8Rechercher des objets
Rechercher par nomTagsRechercher par typeLes références plutôt que FindLe null de UnityRécapitulatif : la pièce la plus proche11Projet : Esquivez les blocs
Le coureurBlocs qui tombent6GameObjects et composants
Références dans l’InspectorObtenir un composantComposants manquantsAjouter un composantRequireComponentAfficher et masquerRécapitulatif : interrupteur9Prefabs et apparition d’objets
Prefabs et instanciationFaire apparaître des objets avec un minuteurFaire apparaître des objets dans une grilleListes d’objetsDétruireApparitions aléatoiresRécapitulatif : feux d’artifice