مراجعة: اختيار الغنائم عشوائيًا
جزء من قسم هندسة الألعاب في Unity في رحلة Unity على Coddy. الدرس 22 من 64.
وضع هذا الفصل الأصناف القابلة للتسلسل والقوائم والتعدادات في نافذة المفتش، ويستخدم جدول الصندوق العناصر الثلاثة. والآن يجري الصندوق سحبًا من الجدول.
التحدي
سهلاجعل مفتاح المسافة يفتح الصندوق ويسقط عنصرًا واحدًا وفقًا لوزنه.
- اكتب
public LootEntry Pick(int roll): مرّ علىtable؛ أعد الإدخال عندما تكونrollأقل من وزنه، وإلا فاطرح الوزن. بعد الحلقة،return null;. - عند ضغط مفتاح المسافة، اختر باستخدام
Random.Range(0, TotalWeight())، وأنشئ نسخة منprefabعلى ارتفاع 1.5 وحدة فوق الصندوق، وسجّلentry.rarity + ": " + entry.itemName.
اضغط «العب» ثم مفتاح المسافة: غالبًا ستحصل على Common: Apple أو خبز. ثم اضغط «تحقق».
جرّب بنفسك
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
public enum Rarity { Common, Rare, Epic, Legendary }
[System.Serializable]
public class LootEntry
{
public string itemName;
public GameObject prefab;
public Rarity rarity;
}
public class LootChest : MonoBehaviour
{
public List<LootEntry> table;
public int WeightOf(Rarity rarity)
{
switch (rarity)
{
case Rarity.Common: return 10;
case Rarity.Rare: return 4;
case Rarity.Epic: return 2;
case Rarity.Legendary: return 1;
}
return 0;
}
public int TotalWeight()
{
int total = 0;
foreach (LootEntry entry in table) total += WeightOf(entry.rarity);
return total;
}
// تُضاف هنا Pick(int roll) وآلية فتح الصندوق باستخدام Space
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس هندسة الألعاب في Unity
1المكوّنات، لا التسلسلات الهرمية
مكوّنات صغيرةنص برمجي أساسي للعدومكوّنات مجرّدةالمكوّنات تعمل معًامراجعة: برج معياريمراجعة: مدفع مزدوج4البيانات المُسلسلة
الأصناف القابلة للتسلسلالقوائم في Inspectorالتعدادات في Inspectorمراجعة: جدول الغنائممراجعة: اختيار الغنائم عشوائيًا2الواجهات في Unity
IDamageableالواجهات وTryGetComponentGetComponentsمراجعة: مفتاح التفاعلمراجعة: أقرب عنصر ضمن النطاقتدرّب بنفسك: Playground لـ Unity