Menu
CoddyTech

Le mur

Leçon 5 sur 16 du cours Jeu Unity : casse-briques de Coddy.

Les briques sont disposées en grille : les rangées vont du haut vers le bas, les colonnes de gauche à droite, chacune étant une copie d’un prefab de brique créé dans deux boucles imbriquées. La position d’une brique est déterminée par ses numéros de rangée et de colonne multipliés par l’espacement entre les centres des briques, qui correspond à la taille d’une brique plus un petit intervalle.

Pour centrer une grille sur x = 0, détermine où se trouve la première colonne. Entre n colonnes, il y a n moins 1 intervalles ; avec un espacement de s, les centres des colonnes aux extrémités sont séparés de (n - 1) * s, et la première se trouve à la moitié de cette distance vers la gauche. Cinq poteaux de clôture espacés de 2 unités :

int posts = 5;
float spacing = 2f;
float left = -(posts - 1) * spacing / 2f;
for (int i = 0; i < posts; i++)
{
    Instantiate(postPrefab, new Vector3(left + i * spacing, 0f, 3f), Quaternion.identity);
}

Ils se trouvent à -4, -2, 0, 2 et 4 : le premier poteau est à -4, et non à -5, car quatre intervalles séparent cinq poteaux. Le quatrième argument d’Instantiate, un Transform parent, place chaque copie sous un même objet afin que la Hierarchy reste bien organisée. Lorsque le type du champ prefab est un script, comme Brick, Instantiate renvoie le script de la nouvelle copie, prêt à être utilisé.

challenge icon

Défi

Moyen

Construisez le mur dans GameManager :

  1. Ajoutez public Brick brickPrefab et public Transform wall (la scène relie le prefab Brick et l’objet Wall), ainsi que public int rows = 5, public int columns = 9, public float spacingX = 1.75f, public float spacingY = 0.75f et public float topY = 6f.
  2. Écrivez void BuildWall() : une brique pour chaque ligne et colonne, enfant de wall. La ligne 0 est à y = topY et chaque ligne est située spacingY plus bas. Les colonnes sont espacées de spacingX et centrées sur x = 0. Les briques se trouvent à z = 0.
  3. Appelez BuildWall() depuis Start().

Appuyez sur Play et faites rebondir la balle contre le mur (les briques ne se cassent pas encore), puis cliquez sur Check.

Essayez vous-même

using UnityEngine;

public class GameManager : MonoBehaviour
{
    public static GameManager Instance;

    void Awake()
    {
        Instance = this;
    }

    // Plus tard : le mur de briques, le score, les vies et les niveaux.
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Jeu Unity : casse-briques