Revisão: Tabela de Loot
Parte da seção Arquitetura de jogos no Unity do Journey de Unity da Coddy. Lição 18 de 50.
Desafio
FácilUm baú de tesouro deixa cair um item cada vez que você pressiona Space. Escreva LootChest.cs. A cena preenche a tabela de itens no Inspector, então os nomes devem corresponder:
- Um enum
RaritycomCommon,Rare,EpiceLegendary, nessa ordem. - Uma classe
LootEntryque o Inspector possa exibir, com uma stringitemName, um GameObjectprefabe um Rarityrarity, e no baú umaList<LootEntry>pública chamadatable. A tabela da cena contém a Maçã e o Pão (Common), o Anel de Prata (Rare), o Ovo de Dragão (Epic) e a Coroa Dourada (Legendary), nessa ordem. public int WeightOf(Rarity rarity)fornece o peso de uma entrada com base em sua raridade: Common 10, Rare 4, Epic 2, Legendary 1.public int TotalWeight()soma os pesos de toda a tabela.public LootEntry Pick(int roll), para um sorteio de 0 até, mas sem incluir,TotalWeight(), percorre a tabela em ordem, cada entrada cobrindo tantos sorteios quanto seu peso: sorteios de 0 a 9 dão a Maçã, de 10 a 19 o Pão, de 20 a 23 o Anel de Prata e assim por diante.- Space faz uma única rolagem de
Random.Range(0, TotalWeight()), seleciona essa entrada, gera seu prefab 1.5 unidades acima do baú e registra sua raridade e nome, como emRare: Silver Ring.
Pressione Play, abra o baú algumas vezes e depois Check.
Experimente você mesmo
using System.Collections.Generic;
using UnityEngine;
public class LootChest : MonoBehaviour
{
}
Todas as lições de Arquitetura de jogos no Unity
1Componentes, não hierarquias
Componentes pequenosUm script-base para inimigosComponentes abstratosComponentes trabalhando juntosRevisão: Torre modular4Dados Serializados
Classes SerializáveisListas no InspectorEnums no InspectorRevisão: Tabela de Loot7Máquinas de Estados
Estados como ClassesUma Máquina de EstadosTransiçõesInteligências dos InimigosRevisão: Estados da Porta10Projeto: Sobrevivente da Arena
O HeróiTipos de Inimigos5ScriptableObjects
Assets de dadosAtributos das armasConfigurações compartilhadasOndas como dadosRevisão: banco de dados de itens