Menu
CoddyTech

Récapitulatif : tirer le butin

Fait partie de la section Architecture de jeu dans Unity du Journey Unity de Coddy. Leçon 22 sur 64.

Ce chapitre a placé des classes sérialisables, des listes et des énumérations dans l’Inspector, et le tableau du coffre utilise les trois. Maintenant, le coffre effectue un tirage à partir de celui-ci.

challenge icon

Défi

Facile

Fais en sorte que la touche Espace ouvre le coffre et fasse apparaître un objet selon son poids.

  1. Écris public LootEntry Pick(int roll) : parcours table ; renvoie l’entrée lorsque roll est inférieur à son poids, sinon soustrais le poids. Après la boucle, return null;.
  2. À l’appui sur Espace, effectue un tirage avec Random.Range(0, TotalWeight()), fais apparaître son prefab à 1.5 unité au-dessus du coffre et affiche entry.rarity + ": " + entry.itemName dans le journal.

Appuie sur « Jouer » puis sur Espace : tu obtiendras le plus souvent Common: Apple ou Bread. Puis clique sur « Vérifier ».

Essayez vous-même

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;

public enum Rarity { Common, Rare, Epic, Legendary }

[System.Serializable]
public class LootEntry
{
    public string itemName;
    public GameObject prefab;
    public Rarity rarity;
}

public class LootChest : MonoBehaviour
{
    public List<LootEntry> table;

    public int WeightOf(Rarity rarity)
    {
        switch (rarity)
        {
            case Rarity.Common: return 10;
            case Rarity.Rare: return 4;
            case Rarity.Epic: return 2;
            case Rarity.Legendary: return 1;
        }
        return 0;
    }

    public int TotalWeight()
    {
        int total = 0;
        foreach (LootEntry entry in table) total += WeightOf(entry.rarity);
        return total;
    }

    // Pick(int roll) et l’ouverture du coffre avec Space vont ici
}
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 Architecture de jeu dans Unity

Entraînez-vous par vous-même : Playground Unity