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.
Défi
MoyenConstruis un mur de prefabs Brick, de 4 briques de large et de 5 de haut.
- Dans
Start(), fais une boucle oùcva de 0 à 3 et, à l’intérieur, oùrva de 0 à 4. - 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
1Les bases de C# dans Unity
Bonjour, UnityVariablesLes nombres décimaux ont besoin d’un fDu texte dans la consoleDes variables qui mémorisentSi et sinonComparer des nombresRécapitulatif : le collecteur de pièces7Boucles et méthodes
Répéter avec forBoucles imbriquéesÉcrire une méthodeMéthodes qui renvoient une réponseTableauxRécapitulatif : escalier10Rechercher des objets
Rechercher par nomTagsRechercher par typeLes références plutôt que la rechercheLe null de UnityRécapitulatif : la pièce la plus proche13Projet : Éviter les blocs
Le coureurDes blocs tombent du ciel2Mettez-le en mouvement
Placez le cubeDéplacez-le à chaque frameTournez chaque secondeDirigez avec les touchesRécapitulatif : pilotez le cube5Vecteurs
Additionner des vecteursDirectionsEspace local et espace globalVitesse diagonaleDistance entre des objetsVector3 est une structureRécapitulatif : pilote de drone8GameObjects et composants
Références dans l’InspectorObtenir un composantComposants manquantsAjouter un composantRequireComponentAfficher et masquerRécapitulatif : interrupteur11Prefabs et création d’objets
Prefabs et instanciationCréer des objets avec un minuteurCréer des objets sur une grilleListes d’objetsRécupérer le plus récentDétruireCréations aléatoiresRécapitulatif : feux d’artifice3L’inspecteur
Champs de l’inspecteurSerializeFieldFlottants et MathfAttributs de l’inspecteurRécapitulatif : ascenseur6Transformations et hiérarchie
Parents et enfantsHissez le drapeauÉchelleRegarder les objetsSe déplacer vers un pointRécapitulatif : la lune en orbite9Projet : Attrape l’étoile
Le receveurUne étoile filanteEntraînez-vous par vous-même : Playground Unity