Menu
CoddyTech

おさらい:セーブスロット

CoddyのUnityジャーニー「Unityのゲームアーキテクチャ」セクションの一部。レッスン 33/64。

challenge icon

チャレンジ

中級

セーブスロットを埋めましょう。PathFor(i) と Show() は準備できています。

  1. SlotSave で、day = 1、gold = 20 の農場を開始します。
  2. Start() で、ファイルが存在する各スロットを slots[i] に読み込みます。
  3. Space キーを押すと、選択中の空のスロットに new SlotSave() を入れるか、1日進めます。day を+1、gold を+15します。保存してから、Show() を呼び出します。

「プレイ」を押してから Space キーを押します。> 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()
    {
        // Space: 選択中のスロットで農場を始めるか、そこで1日プレイしてから保存する
    }

    // 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プレイグラウンド