我希望能够在二进制文件中保存和加载此PlayerStats
类的所有属性。 Weapon
和PlayerClass
是否也需要序列化?
武器数组包含继承自Weapon
的类,例如Pistol
和Rifle
。它们还需要可序列化吗?
[Serializable]
public class PlayerStats : Saveable<PlayerStats> {
private Weapon[] weapons;
private PlayerClass activeClass;
// ...
}
我已经用另一个类成功完成了这个,但是该类唯一的属性是字典。
编辑,这是我正在尝试使用的序列化,它适用于我的其他更简单的类而不是PlayerStats
类:
public abstract class Saveable<T> {
#region BinarySaveable
public virtual void saveInstanceToBinaryFile(T instance, string fileName) {
BinaryFormatter formatter = new BinaryFormatter ();
Stream stream = new FileStream (fileName, FileMode.Create, FileAccess.Write, FileShare.None);
formatter.Serialize(stream, instance);
stream.Close ();
}
public virtual T loadInstanceFromBinaryFile(string fileName) {
BinaryFormatter formatter = new BinaryFormatter ();
Stream stream = new FileStream (fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
T instance = (T)formatter.Deserialize (stream);
stream.Close ();
return instance;
}
#endregion
如果这是Java,我可能只能使用WriteObject(Object obj)
方法。
答案 0 :(得分:0)
是的,似乎他们确实这样做了。
在Unity中使用JsonUtility.ToJson(myObject);
比使用自己更容易。