חזרה: טבלת שלל
חלק מהיחידה ארכיטקטורת משחקים ב-Unity במסלול ה-Unity של Coddy. שיעור 18 מתוך 50.
אתגר
קלתיבת אוצר מפילה פריט אחד בכל פעם שלוחצים על Space. כתבו LootChest.cs. הסצנה ממלאת את טבלת השלל שלה ב־Inspector, לכן השמות חייבים להתאים:
- enum בשם
RarityעםCommon,Rare,Epicו־Legendary, בסדר הזה. - מחלקה בשם
LootEntryשה־Inspector יכול להציג, עם מחרוזתitemName, אובייקט GameObject מסוגprefabו־Rarity בשםrarity, ועל התיבה רשימה ציבוריתList<LootEntry>בשםtable. הטבלה של הסצנה מכילה את Apple ואת Bread (Common), את Silver Ring (Rare), את Dragon Egg (Epic) ואת Golden Crown (Legendary), בסדר הזה. public int WeightOf(Rarity rarity)מחזירה את המשקל של רשומה לפי הנדירות שלה: Common 10, Rare 4, Epic 2, Legendary 1.public int TotalWeight()מחברת את המשקלים של הטבלה כולה.public LootEntry Pick(int roll), עבור גלגול מ־0 ועד, אך לא כולל,TotalWeight(), עוברת על הטבלה לפי הסדר, כאשר כל רשומה מכסה מספר גלגולים השווה למשקל שלה: גלגולים 0 עד 9 נותנים את Apple, 10 עד 19 את Bread, 20 עד 23 את Silver Ring, וכן הלאה.- לחיצה על Space מגרילה פעם אחת באמצעות
Random.Range(0, TotalWeight()), בוחרת את הרשומה המתאימה, יוצרת את ה־prefab שלה 1.5 יחידות מעל התיבה ומתעדת את הנדירות ואת השם שלה, כמוRare: Silver Ring.
לחצו על Play, פתחו את התיבה כמה פעמים, ואז לחצו על Check.
נסו בעצמכם
using System.Collections.Generic;
using UnityEngine;
public class LootChest : MonoBehaviour
{
}
כל השיעורים ביחידה ארכיטקטורת משחקים ב-Unity
1רכיבים, לא היררכיות
רכיבים קטניםסקריפט בסיס לאויברכיבים מופשטיםרכיבים שעובדים יחדסיכום: צריח מודולרי