おさらい:セーブスロット
CoddyのUnityジャーニー「Unityのゲームアーキテクチャ」セクションの一部。レッスン 33/64。
チャレンジ
中級セーブスロットを埋めましょう。PathFor(i) と Show() は準備できています。
SlotSaveで、day = 1、gold = 20の農場を開始します。Start()で、ファイルが存在する各スロットをslots[i]に読み込みます。- 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プレイグラウンド