اختر خانة واحذفها
جزء من قسم هندسة الألعاب في Unity في رحلة Unity على Coddy. الدرس 34 من 64.
كتب هذا الفصل ملفات الحفظ بصيغة JSON: فئة حفظ [System.Serializable]، وملفات في Application.persistentDataPath، ومهيئات الحقول التي تملأ ما ينقص ملف الحفظ القديم. أصبحت قائمة الخانات تضم الآن عنصري التحكم الأخيرين.
التحدي
متوسطدع اللاعب يختار خانة ويحذفها.
- في
Update()، يضيف سهم الأسفل 1 إلىselectedويطرح سهم الأعلى 1، مع إبقاء القيمة بين 0 و2 باستخدامMathf.MinوMathf.Max. ثم استدعِShow(). - تحذف
DeleteSelected()ملف الخانة المحددة باستخدامFile.Delete، وتعيّن الخانة إلىnull، ثم تستدعيShow().
اضغط على «العب»، واملأ الخانة 3، ثم انقر على Delete: ستظهر فارغة. ثم اضغط على «تحقق».
جرّب بنفسك
using System.IO;
using UnityEngine;
using UnityEngine.InputSystem;
using TMPro;
public class SlotMenu : MonoBehaviour
{
public TMP_Text[] slotTexts;
private SlotSave[] slots = new SlotSave[3];
private int selected;
void Start()
{
for (int i = 0; i < slots.Length; i++)
{
if (File.Exists(PathFor(i)))
{
slots[i] = JsonUtility.FromJson<SlotSave>(File.ReadAllText(PathFor(i)));
}
}
Show();
}
void Update()
{
// تختار الأسهم خانةً
if (Keyboard.current.spaceKey.wasPressedThisFrame)
{
if (slots[selected] == null)
{
slots[selected] = new SlotSave();
}
else
{
slots[selected].day++;
slots[selected].gold += 15;
}
File.WriteAllText(PathFor(selected), JsonUtility.ToJson(slots[selected]));
Show();
}
}
// يستدعي زر Delete هذا
public void DeleteSelected()
{
}
string PathFor(int index)
{
return Path.Combine(Application.persistentDataPath, "slot" + (index + 1) + ".json");
}
void Show()
{
for (int i = 0; i < slots.Length; i++)
{
string line = "Slot " + (i + 1) + ": ";
if (slots[i] == null)
{
line += "empty";
}
else
{
line += "Day " + slots[i].day + ", " + slots[i].gold + " gold";
}
if (i == selected)
{
line = "> " + line;
}
slotTexts[i].text = line;
}
}
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس هندسة الألعاب في Unity
1المكوّنات، لا التسلسلات الهرمية
مكوّنات صغيرةنص برمجي أساسي للعدومكوّنات مجرّدةالمكوّنات تعمل معًامراجعة: برج معياريمراجعة: مدفع مزدوج4البيانات المُسلسلة
الأصناف القابلة للتسلسلالقوائم في Inspectorالتعدادات في Inspectorمراجعة: جدول الغنائممراجعة: اختيار الغنائم عشوائيًا2الواجهات في Unity
IDamageableالواجهات وTryGetComponentGetComponentsمراجعة: مفتاح التفاعلمراجعة: أقرب عنصر ضمن النطاقتدرّب بنفسك: Playground لـ Unity