Menu
CoddyTech

Objets à ramasser

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

Une brique cassée laisse parfois tomber un bonus qui tombe vers la raquette. La décision de le faire tomber est déterminée par un tirage : Random.value est un nombre flottant aléatoire compris entre 0 et 1, donc Random.value < 0.15f est vrai environ 15 fois sur 100. Stocker la probabilité dans un champ permet de l’ajuster et permet à un test de la définir à 1 pour obtenir une chute à chaque fois, ou à 0 pour n’en obtenir aucune.

Le bonus qui tombe est déterminé par un second tirage : un index aléatoire dans un tableau de prefabs. Avec des entiers, Random.Range exclut sa valeur maximale, donc Random.Range(0, array.Length) peut sélectionner chaque élément. Le butin d’un ennemi :

public GameObject[] loot;
public float lootChance = 0.25f;

void DropLoot()
{
    if (Random.value >= lootChance) return;
    int pick = Random.Range(0, loot.Length);
    Instantiate(loot[pick], transform.position, Quaternion.identity);
}

Un bonus tombe à vitesse constante en se déplaçant à chaque image, et se détruit une fois sous la zone de jeu, afin que ceux qui sont manqués ne s’accumulent pas. Son prefab possède un Rigidbody cinématique et un collider déclencheur, afin que le système physique sache qu’il se déplace et qu’il puisse détecter quand il atteint la raquette.

challenge icon

Défi

Difficile
  1. Dans PowerUp, ajoutez public float fallSpeed = 3f et public float bottomY = -9f. Dans Update(), faites-le descendre à une vitesse de fallSpeed unités par seconde, puis détruisez le bonus lorsque son y est inférieur à bottomY.
  2. Dans GameManager, ajoutez public GameObject[] powerUps (la scène référence les préfabriqués WidePowerUp et MultiPowerUp) et public float dropChance = 0.15f.
  3. Dans BrickBroken, avec une probabilité de dropChance, faites apparaître un élément choisi au hasard dans powerUps à l’emplacement de la brique.

Pour l’instant, les bonus traversent la raquette : vous apprendrez à les attraper ensuite.

Appuyez sur Play, cassez des briques jusqu’à ce qu’un bonus tombe, puis cliquez sur Check.

Essayez vous-même

using UnityEngine;

public class PowerUp : MonoBehaviour
{
    // Le dernier chapitre : les bonus qui tombent des briques cassées.
}
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