مراجعة: جدول الغنائم
جزء من قسم هندسة الألعاب في Unity في رحلة Unity على Coddy. الدرس 18 من 50.
التحدي
سهليُسقط صندوق كنز عنصرًا واحدًا في كل مرة تضغط فيها على Space. اكتب LootChest.cs. يملأ مشهد اللعبة جدول الغنائم في Inspector، لذا يجب أن تتطابق الأسماء:
- تعداد
RarityيضمCommonوRareوEpicوLegendary، بهذا الترتيب. - فئة
LootEntryيمكن لـ Inspector عرضها، وتضم سلسلة نصيةitemName، وGameObjectprefab، وRarityrarity، وعلى الصندوق قائمة عامة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)الجدول بالترتيب، لقيمة roll من 0 إلى ما قبلTotalWeight()، بحيث يغطي كل عنصر عددًا من قيم roll يساوي وزنه: القيم من 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المكوّنات لا التسلسلات الهرمية
مكوّنات صغيرةسكربت أساسي للعدومكوّنات مجرّدةتعمل المكوّنات معًامراجعة: برج دفاعي معياري4البيانات المتسلسلة
الأصناف القابلة للتسلسلالقوائم في Inspectorالتعدادات في Inspectorمراجعة: جدول الغنائم10مشروع: الناجي في الساحة
البطلأنواع الأعداء