Menu
CoddyTech

回顾:存档槽

本课属于 Coddy Unity 学习旅程的“Unity 游戏架构”单元。第 33 课,共 64 课。

challenge icon

挑战

中等

填充存档槽;PathFor(i) 和 Show() 已准备就绪。

  1. 在 SlotSave 中,将农场的初始值设为 day = 1 和 gold = 20。
  2. 在 Start() 中,将文件存在的每个存档槽加载到 slots[i] 中。
  3. 按下空格键时,如果选中的存档槽为空,就放入一个 new SlotSave();否则让农场过一天:day +1,gold +15。保存,然后调用 Show()。

点击“开始”并按下空格键:> Slot 1: Day 1, 20 gold。然后点击“检查”。

亲手试试

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()
    {
        // 加载所有有文件的存档位
        Show();
    }

    void Update()
    {
        // 空格键:在选中的存档位创建农场,或在其中度过一天,然后保存
    }

    // 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 游戏架构中的所有课

自己练习: Unity 在线编辑器