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.
Défi
Difficile- Dans
PowerUp, ajoutezpublic float fallSpeed = 3fetpublic float bottomY = -9f. DansUpdate(), faites-le descendre à une vitesse defallSpeedunités par seconde, puis détruisez le bonus lorsque son y est inférieur àbottomY. - Dans
GameManager, ajoutezpublic GameObject[] powerUps(la scène référence les préfabriqués WidePowerUp et MultiPowerUp) etpublic float dropChance = 0.15f. - Dans
BrickBroken, avec une probabilité dedropChance, faites apparaître un élément choisi au hasard danspowerUpsà 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.
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.