Menu
CoddyTech

مراجعة: اختيار الغنائم عشوائيًا

جزء من قسم هندسة الألعاب في Unity في رحلة Unity على Coddy. الدرس 22 من 64.

وضع هذا الفصل الأصناف القابلة للتسلسل والقوائم والتعدادات في نافذة المفتش، ويستخدم جدول الصندوق العناصر الثلاثة. والآن يجري الصندوق سحبًا من الجدول.

challenge icon

التحدي

سهل

اجعل مفتاح المسافة يفتح الصندوق ويسقط عنصرًا واحدًا وفقًا لوزنه.

  1. اكتب public LootEntry Pick(int roll): مرّ على table؛ أعد الإدخال عندما تكون roll أقل من وزنه، وإلا فاطرح الوزن. بعد الحلقة، return null;.
  2. عند ضغط مفتاح المسافة، اختر باستخدام 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
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس هندسة الألعاب في Unity

تدرّب بنفسك: Playground لـ Unity