Menu
CoddyTech

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.

challenge icon

Défi

Facile

Un 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 Rarity avec Common, Rare, Epic et Legendary, dans cet ordre.
  • Une classe LootEntry que l’Inspector peut afficher, avec une chaîne itemName, un GameObject prefab et un Rarity rarity, et sur le coffre une List<LootEntry> publique nommée table. 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, comme Rare: 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