Podsumowanie: tabela łupów
Część sekcji Architektura gier w Unity ścieżki Unity w Coddy. Lekcja 18 z 50.
Wyzwanie
ŁatwySkrzynia ze skarbami upuszcza jeden przedmiot za każdym razem, gdy naciśniesz spację. Napisz LootChest.cs. Scena wypełnia tabelę łupów w Inspectorze, więc nazwy muszą się zgadzać:
- Wyliczenie
Rarityz wartościamiCommon,Rare,EpiciLegendary, w tej kolejności. - Klasa
LootEntry, którą Inspector może wyświetlić, zawierająca stringitemName, GameObjectprefabi Rarityrarity, a na skrzyni publicznaList<LootEntry>o nazwietable. Tabela sceny zawiera Apple i Bread (Common), Silver Ring (Rare), Dragon Egg (Epic) oraz Golden Crown (Legendary), w tej kolejności. public int WeightOf(Rarity rarity)zwraca wagę elementu na podstawie jego rzadkości: Common 10, Rare 4, Epic 2, Legendary 1.public int TotalWeight()sumuje wagi całej tabeli.public LootEntry Pick(int roll), dla losowania od 0 do, ale bez uwzględnienia,TotalWeight(), przechodzi przez tabelę w kolejności, a każdy element obejmuje tyle losowań, ile wynosi jego waga: losowania od 0 do 9 dają Apple, od 10 do 19 Bread, od 20 do 23 Silver Ring i tak dalej.- Spacja losuje raz wartość z zakresu
Random.Range(0, TotalWeight()), wybiera ten element, tworzy jego prefab 1.5 jednostki nad skrzynią i zapisuje jego rzadkość oraz nazwę, na przykładRare: Silver Ring.
Naciśnij Play, otwórz skrzynię kilka razy, a następnie naciśnij Check.
Spróbuj swoich sił
using System.Collections.Generic;
using UnityEngine;
public class LootChest : MonoBehaviour
{
}
Wszystkie lekcje w sekcji Architektura gier w Unity
1Komponenty, nie hierarchie
Małe komponentyPodstawowy skrypt przeciwnikaKomponenty abstrakcyjneWspółpracujące komponentyPodsumowanie: modułowa wieżyczka4Dane serializowane
Klasy serializowalneListy w InspectorzeWyliczenia w InspectorzePodsumowanie: tabela łupów10Projekt: Arena przetrwania
BohaterTypy wrogów2Interfejsy w Unity
IDamageableInterfejsy i TryGetComponentGetComponentsPodsumowanie: klawisz interakcji5ScriptableObjects
Zasoby danychStatystyki broniWspółdzielone ustawieniaFale jako danePowtórka: baza danych przedmiotów8Kod wielokrotnego użytku
Metody rozszerzająceGeneryczny singletonGeneryczne metody pomocniczePodsumowanie: FindNearest