>セーブロード
通常のセーブデータか、システムセーブデータ(ゲーム全体で一つだけのセーブデータ)か扱いがちがうのですが、
今回のようなギャラリー的な機能であれば、システムセーブデータのほうを使う必要があるかと思います。
TIPS拡張で実際に使用しているので、こちらのソースコードを参考にしてください
Utage/Scripts/ADV/Custom/Tips/TipsManagerSystemSave.cs
Utage/Scripts/ADV/Custom/Tips/TipsManager.cs
TIPS拡張自体のサンプルはこちらです。
宴のセーブロードは、UnityのJson機能ができる前に設計されたため、バイナリ読み書きをする仕様になっています。
そのため、書き方が古くて難しいかもしれません。
セーブデータのシリアライズにUnityのJSONを使用したい場合は、
下記のサンプルのようにJSONを文字列としてBinaryReader/Writerで読み書きするとコーディングしやすいと思います。
JSONを使う場合のサンプル(SaveDataクラスのフォーマットは仮。MakeJsonSaveData、ReadJsonSaveDataを定義して実際のセーブデータを読み書きします)
[Serializable]
class SaveData
{
[Serializable]
class SaveDataElelment
{
public string text;
public string filePath;
}
public List<SaveDataElelment> SaveDataElelments = ();
}
public void OnWrite(BinaryWriter writer)
{
SaveData savdedata = MakeJsonSaveData();
string json = JsonUtility.ToJson(savdedata);
writer.Write(json);
}
public void OnRead(BinaryReader reader)
{
string json = reader.ReadString();
SaveData savedata = JsonUtility.FromJson<SaveData>(json);
ReadJsonSaveData(savedata);
}
これ以外にもパラメーターに任意のStringのパラメーターを追加して、それにJson形式でReadWriteするという手法もあります。
>ローカライズは実現可能でしょうか?
先述したとおり既にローカライズ済みのテキストが取得されています。ほとんどのケースではこれで問題ないかと思います。
取得後に別の言語に切り替えるのは、バックログの情報では不可能です。(これは通常のバックログを言語切り替えできないの同じ理由です)
なので、先述したとおり、シナリオデータやコマンドデータを解析するしかないです。