Menu
CoddyTech

Repaso: tabla de botín

Parte de la sección Arquitectura de juegos en Unity del Journey de Unity de Coddy. Lección 18 de 50.

challenge icon

Desafío

Fácil

Un cofre del tesoro deja caer un objeto cada vez que pulsas Espacio. Escribe LootChest.cs. La escena rellena su tabla de botín en el Inspector, así que los nombres deben coincidir:

  • Un enum Rarity con Common, Rare, Epic y Legendary, en ese orden.
  • Una clase LootEntry que el Inspector pueda mostrar, con un string itemName, un GameObject prefab y una Rarity rarity, y en el cofre una List<LootEntry> pública llamada table. La tabla de la escena contiene la manzana y el pan (Common), el anillo de plata (Rare), el huevo de dragón (Epic) y la corona dorada (Legendary), en ese orden.
  • public int WeightOf(Rarity rarity) proporciona el peso de una entrada según su rareza: Common 10, Rare 4, Epic 2, Legendary 1. public int TotalWeight() suma los pesos de toda la tabla.
  • public LootEntry Pick(int roll), para una tirada desde 0 hasta, sin incluir, TotalWeight(), recorre la tabla en orden, y cada entrada abarca tantas tiradas como indique su peso: las tiradas del 0 al 9 dan la manzana, del 10 al 19 el pan, del 20 al 23 el anillo de plata, y así sucesivamente.
  • Al pulsar Espacio, se ejecuta una vez Random.Range(0, TotalWeight()), se elige esa entrada, se genera su prefab a 1.5 unidades por encima del cofre y se registra su rareza y nombre, como en Rare: Silver Ring.

Pulsa Play, abre el cofre unas cuantas veces y luego pulsa Check.

Pruébalo tú mismo

using System.Collections.Generic;
using UnityEngine;

public class LootChest : MonoBehaviour
{
}

Todas las lecciones de Arquitectura de juegos en Unity