Riepilogo: tabella del bottino
Fa parte della sezione Architettura dei giochi in Unity del percorso Unity di Coddy. Lezione 18 di 50.
Sfida
FacileUn forziere del tesoro lascia cadere un oggetto ogni volta che premi Space. Scrivi LootChest.cs. La scena riempie la tabella del bottino nell’Inspector, quindi i nomi devono corrispondere:
- Un enum
RarityconCommon,Rare,EpiceLegendary, in quest’ordine. - Una classe
LootEntryche l’Inspector possa visualizzare, con una stringaitemName, un GameObjectprefabe una Rarityrarity, e sul forziere unaList<LootEntry>pubblica chiamatatable. La tabella della scena contiene la Mela e il Pane (Common), l’Anello d’argento (Rare), l’Uovo di drago (Epic) e la Corona d’oro (Legendary), in quest’ordine. public int WeightOf(Rarity rarity)assegna a una voce un peso in base alla sua rarità: Common 10, Rare 4, Epic 2, Legendary 1.public int TotalWeight()somma i pesi dell’intera tabella.public LootEntry Pick(int roll), per un tiro da 0 fino a, ma senza includere,TotalWeight(), scorre la tabella in ordine, assegnando a ogni voce un numero di tiri pari al suo peso: i tiri da 0 a 9 danno la Mela, da 10 a 19 il Pane, da 20 a 23 l’Anello d’argento e così via.- Con Space viene generato una sola volta un tiro usando
Random.Range(0, TotalWeight()), viene scelta la voce corrispondente, viene generato il suo prefab a 1.5 unità sopra il forziere e vengono registrati la sua rarità e il suo nome, come inRare: Silver Ring.
Premi Play, apri il forziere qualche volta, poi premi Check.
Provalo tu
using System.Collections.Generic;
using UnityEngine;
public class LootChest : MonoBehaviour
{
}
Tutte le lezioni di Architettura dei giochi in Unity
1Componenti, non gerarchie
Componenti piccoliUno script base per i nemiciComponenti astrattiComponenti che collaboranoRiepilogo: torretta modulare4Dati serializzati
Classi serializzabiliListe nell'InspectorEnum nell'InspectorRiepilogo: tabella del bottino7Macchine a stati
Gli stati come classiUna macchina a statiTransizioniIntelligenze dei nemiciRiepilogo: stati della porta10Progetto: Sopravvissuto nell’arena
L’eroeTipi di nemici5ScriptableObjects
Asset di datiStatistiche delle armiImpostazioni condiviseOndate come datiRiepilogo: database degli oggetti