Menu
CoddyTech

Casser

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

Les briques n’ont pas de Rigidbody, mais la balle en a un, et Unity envoie OnCollisionEnter aux deux objets lors d’une collision. Une brique peut donc détecter elle-même le choc. Dans le script de la brique, gameObject désigne la brique et collision.gameObject désigne l’objet qui l’a percutée.

Le score appartient au GameManager, et les briques sont des copies d’un prefab. Un prefab est un asset situé hors de la scène ; ses champs ne peuvent donc pas pointer vers le GameManager de la scène dans l’Inspector. Le GameManager définit GameManager.Instance comme une référence statique vers lui-même dans Awake(), ce qui permet à n’importe quel script d’y accéder, y compris les copies du prefab.

Un vase qui se brise lorsque le joueur le percute :

void OnCollisionEnter(Collision collision)
{
    if (collision.gameObject.CompareTag("Player")) Shatter();
}

public void Shatter()
{
    Destroy(gameObject);
}

Destroy(gameObject) supprime le vase. Destroy(collision.gameObject) supprimerait le joueur, et Destroy(this) supprime uniquement le script, en laissant le vase debout. Le fait de conserver la destruction dans sa propre méthode publique permet aussi à d’autres éléments de code, comme une bombe ou un bonus, de briser le vase.

challenge icon

Défi

Moyen
  1. Dans GameManager, ajoute un int score et public void BrickBroken(Brick brick), qui ajoute les points de la brique à score.
  2. Dans Brick, écris public void Hit() : cette méthode indique à GameManager.Instance que cette brique a été détruite, puis détruit la brique.
  3. Ajoute OnCollisionEnter à Brick : lorsque l’objet portant l’étiquette Ball le touche, appelle Hit().

Appuie sur Play, détruis quelques briques, puis clique sur Check.

Essayez vous-même

using UnityEngine;

public class Brick : MonoBehaviour
{
    public int points = 10;

    // Ensuite : la balle casse une brique et marque les points correspondants.
}
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