Menu
CoddyTech

סיכום: מסד נתוני פריטים

חלק מהיחידה ארכיטקטורת משחקים ב-Unity במסלול ה-Unity של Coddy. שיעור 23 מתוך 50.

challenge icon

אתגר

בינוני

החנות של הנפח מוכרת פריטים מתוך מסד נתונים שכל החנויות במשחק ישתפו. כתבו את שני סוגי הנכסים ואת Shop:

  • ItemData (בקובץ ItemData.cs): ScriptableObject עם פריט בתפריט Create והשדות הציבוריים itemName (מחרוזת) ו-price (מספר שלם).
  • ItemDatabase (בקובץ ItemDatabase.cs): ScriptableObject עם פריט בתפריט Create ושדה ציבורי אחד, items, רשימה של ItemData.
  • ל-Shop יש שדה ציבורי database מסוג ItemDatabase. itemText מציג את הפריט שנבחר בפורמט Iron Sword: 30 gold, החל מהפריט הראשון, ו-goldText מציג את כמות הזהב בפורמט Gold: 50.
  • החץ ימינה בוחר את הפריט הבא, ולאחר האחרון חוזר לראשון; החץ שמאלה נע בכיוון ההפוך, מהפריט הראשון לאחרון.
  • לחיצה על מקש הרווח קונה את הפריט שנבחר. אם השחקן כבר קנה פריט, נרשמת ההודעה Already owned: Iron Sword. אם מחיר הפריט גבוה מכמות הזהב, נרשמת ההודעה Not enough gold for Iron Sword. אחרת, כמות הזהב פוחתת בהתאם למחיר, הפריט מתווסף לרשימת הפריטים שבבעלות השחקן, הטקסטים מתעדכנים, וב-Console מופיעה ההודעה Bought Iron Sword.
  • שמרו את הפריטים שנקנו ב-Shop. הנכסים נשארים כפי שהם: מסד הנתונים משותף, ובעורך שינוי בנכס נשמר גם לאחר יציאה ממצב Play.

בפרויקט יש ארבעה נכסי ItemData (Iron Sword 30, Oak Shield 20, Healing Potion 10, Long Bow 45), נכס Database שמציג אותם בסדר הזה, וב-Inspector נכס ה-Database משויך לשדה database של Shop. לחצו על הפעלה, צאו לקניות ואז לחצו על בדיקה.

נסו בעצמכם

using UnityEngine;
using UnityEngine.InputSystem;
using TMPro;

public class Shop : MonoBehaviour
{
    public TMP_Text itemText;
    public TMP_Text goldText;
    public int gold = 50;

    // כאן יופיעו שדה מסד הנתונים, הדפדוף באמצעות החצים והקנייה באמצעות Space
}

כל השיעורים ביחידה ארכיטקטורת משחקים ב-Unity