סיכום: מסד נתוני פריטים
חלק מהיחידה ארכיטקטורת משחקים ב-Unity במסלול ה-Unity של Coddy. שיעור 23 מתוך 50.
אתגר
בינוניהחנות של הנפח מוכרת פריטים מתוך מסד נתונים שכל החנויות במשחק ישתפו. כתבו את שני סוגי הנכסים ואת 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
1רכיבים, לא היררכיות
רכיבים קטניםסקריפט בסיס לאויברכיבים מופשטיםרכיבים שעובדים יחדסיכום: צריח מודולרי