Objets qui tombent
Leçon 14 sur 19 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.
Défi
DifficileLes briques cassées laissent parfois tomber un bonus.
- Dans
PowerUp, ajoutefallSpeed = 3fetbottomY = -9f; dansUpdate(), fais-le tomber à la vitesse fallSpeed et détruis-le lorsqu’il passe sous bottomY. - Dans
GameManager, ajoutepublic GameObject[] powerUps;etpublic float dropChance = 0.15f; - Dans BrickBroken, si
Random.value < dropChance, instanciepowerUps[Random.Range(0, powerUps.Length)]à la position de la brique.
Appuie sur « Jouer » et casse des briques : de temps en temps, l’une d’elles laisse tomber un bonus (tu apprendras à l’attraper ensuite). Puis appuie sur « Vérifier ».
Essayez vous-même
using UnityEngine;
public class PowerUp : MonoBehaviour
{
// Le dernier chapitre : les bonus qui tombent des briques cassées.
}
Toutes les leçons de Jeu Unity : casse-briques
4Bonus
Objets qui tombentEntraînez-vous par vous-même : Playground Unity