סיכום: קנייה בחנות
חלק מהיחידה ארכיטקטורת משחקים ב-Unity במסלול ה-Unity של Coddy. שיעור 29 מתוך 64.
בפרק הזה העברנו נתונים לנכסים שמשותפים לאובייקטים רבים. הפריטים בחנות הם נכסים כאלה, ולכן מה שהשחקן קונה שייך ל־Shop, ולא לפריטים עצמם.
אתגר
קללחץ על מקש הרווח כדי לקנות את הפריט שנבחר, בלי לשנות את הנכסים.
- שמור את הפריטים שנקנו ב־
List<ItemData> ownedבתוך Shop. - בעת לחיצה על מקש הרווח, אם הפריט כבר נמצא בבעלותך, רשום
Already owned: Iron Sword; אם מחירו גבוה מ־gold, רשוםNot enough gold for Iron Sword. - אחרת, הפחת את המחיר מ־
gold, הוסף את הפריט ל־owned, רשוםBought Iron Swordועדכן את הטקסטים.
לחץ על "שחק" וקנה את Long Bow. לאחר מכן לחץ על "בדיקה".
נסו בעצמכם
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
using TMPro;
public class Shop : MonoBehaviour
{
public ItemDatabase database;
public TMP_Text itemText;
public TMP_Text goldText;
public int gold = 50;
private int index;
void Start()
{
Show();
}
void Update()
{
if (Keyboard.current.rightArrowKey.wasPressedThisFrame)
{
index = (index + 1) % database.items.Count;
Show();
}
if (Keyboard.current.leftArrowKey.wasPressedThisFrame)
{
index = (index - 1 + database.items.Count) % database.items.Count;
Show();
}
// Space: קנה את הפריט שנבחר
}
void Show()
{
ItemData item = database.items[index];
itemText.text = item.itemName + ": " + item.price + " gold";
goldText.text = "Gold: " + gold;
}
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה ארכיטקטורת משחקים ב-Unity
1רכיבים, לא היררכיות
רכיבים קטניםסקריפט בסיסי לאויברכיבים מופשטיםרכיבים שפועלים יחדחזרה: צריח מודולריחזרה: תותח כפול4נתונים שעברו סריאליזציה
מחלקות שניתנות לסריאליזציהרשימות ב־Inspectorטיפוסי Enum ב־Inspectorחזרה: טבלת שללהגרלת השלל2ממשקים ב-Unity
IDamageableממשקים ו-TryGetComponentGetComponentsסיכום: מקש אינטראקציהסיכום: הקרוב ביותר בטווח5ScriptableObjects
נכסי נתוניםנתוני נשקהגדרות משותפותהצילו את הרוחגלים כנתוניםסיכום: מסד נתונים של פריטיםסיכום: קנייה בחנותתרגלו בעצמכם: Unity אונליין