データの保存と読み込み
データ入力を使用する
エンティティ内のデータ入力は自動的にシリアライズされます。つまり、カスタムアセットまたはノードにデータを保存する必要がある場合、データ入力を定義するのが最適な方法です。
[DataInput]
public Vector3 MySpecialVector3;
ユーザーに表示したくない場合は、非表示のデー タ入力にすることもできます。
[DataInput]
[Hidden]
public Vector3 MySpecialVector3;
より複雑な状態については、JSON文字列にシリアライズし、必要に応じてデシリアライズできます。
[DataInput]
[Hidden]
public string MyJSONState;
// Use Newtonsoft.Json to serialize and deserialize
MyJSONState = JsonConvert.SerializeObject(mySerializableObject);
mySerializableObject = JsonConvert.DeserializeObject<MySerializableObject>(MyJSONState);
Persistent Data Managerを使用する
シリアライズできないデータには、Context.PersistentDataManagerを使用して、データフォルダーに制限されたファイルシステムAPIへアクセスできます。たとえば、カスタムディレクトリから画像を読み込み・保存するには、次のようにします。
var bytes = await Context.PersistentDataManager.ReadFileBytesAsync("MyPlugin/MyProfileImage.png");
await Context.PersistentDataManager.WriteFileBytesAsync("MyPlugin/MyProfileImage.png", bytes);
プラグインModを使用する
プラグインModでは、Modフォルダーにテキストアセットを保存でき、プラグインは実行時にそれらへア クセスできます。たとえば、ModフォルダーにJSONファイルAnimations.jsonを保存し、プラグインで読み込めます。
protected override void OnCreate() {
base.OnCreate();
var json = ModHost.Assets.Load<TextAsset>("Assets/MyModFolder/Animations.json"); // Change the path to match your mod folder structure
}