Récapitulatif : table de butin
Fait partie de la section Architecture de jeu dans Unity du Journey Unity de Coddy. Leçon 18 sur 50.
Défi
FacileUn coffre au trésor laisse tomber un objet chaque fois que tu appuies sur la barre d’espace. Écris LootChest.cs. La scène remplit sa table de butin dans l’Inspector, les noms doivent donc correspondre :
- Un enum
RarityavecCommon,Rare,EpicetLegendary, dans cet ordre. - Une classe
LootEntryque l’Inspector peut afficher, avec une chaîneitemName, un GameObjectprefabet un Rarityrarity, et sur le coffre uneList<LootEntry>publique nomméetable. La table de la scène contient l’Apple et le Bread (Common), la Silver Ring (Rare), le Dragon Egg (Epic) et la Golden Crown (Legendary), dans cet ordre. public int WeightOf(Rarity rarity)donne le poids d’une entrée selon sa rareté : Common 10, Rare 4, Epic 2, Legendary 1.public int TotalWeight()additionne les poids de toute la table.public LootEntry Pick(int roll), pour un tirage de 0 jusqu’à, mais sans l’inclure, àTotalWeight(), parcourt la table dans l’ordre, chaque entrée couvrant autant de tirages que son poids : les tirages de 0 à 9 donnent l’Apple, de 10 à 19 le Bread, de 20 à 23 la Silver Ring, et ainsi de suite.- La barre d’espace effectue une fois le tirage
Random.Range(0, TotalWeight()), sélectionne cette entrée, fait apparaître son prefab 1.5 unité au-dessus du coffre et consigne sa rareté et son nom, commeRare: Silver Ring.
Appuie sur Play, ouvre le coffre plusieurs fois, puis Check.
Essayez vous-même
using System.Collections.Generic;
using UnityEngine;
public class LootChest : MonoBehaviour
{
}
Toutes les leçons de Architecture de jeu dans Unity
1Des composants, pas des hiérarchies
Des composants simplesUn script de base pour les ennemisDes composants abstraitsDes composants qui fonctionnent ensembleRécapitulatif : tourelle modulaire4Données sérialisées
Classes sérialisablesListes dans l’inspecteurÉnumérations dans l’inspecteurRécapitulatif : table de butin7Machines à états
Les états sous forme de classesUne machine à étatsTransitionsLes cerveaux des ennemisRécapitulatif : états d’une porte10Projet : Survivant de l’arène
Le hérosTypes d’ennemis2Interfaces dans Unity
IDamageableInterfaces et TryGetComponentGetComponentsRécapitulatif : touche d’interaction5ScriptableObjects
Assets de donnéesStatistiques des armesParamètres partagésLes vagues sous forme de donnéesRécapitulatif : base de données d’objets