[英]Is there a method that would be called right before the serialization of the object in Unity3D?
有一個類具有無法輕松序列化的數據。 但是,我可以將它准備為可序列化的形式。 那么,是否有任何覆蓋方法將在序列化之前調用以准備數據?
[System.Serializable]
public MyCalss {
//Unity can serialise this list;
public List<int> serializableData;
//class contains a lot of data that cannot be serialized by Unity3D
protected override void OnSerialize() { // <-- looking for this method
//pack all my data into the serializableData array
}
}
public Behaviour: MonoBehaviour {
MyClass instanceOfMyClass; // will be serialized by Unity3D
}
void OnBeforeSerialize()
void OnAfterDeserialize()
它們存在於界面中
ISerializationCallbackReceiver
所以只需實現此界面即可
如果你想要一個.Net解決方案(而不是afpro的特定於Unity的答案 ),你也可以使用OnSerializingAttribute :
[Serializable]
public MyCalss {
//Unity can serialise this list;
public List<int> serializableData;
//class contains a lot of data that cannot be serialized by Unity3D
[OnSerializing]
internal void OnSerializingMethod(StreamingContext context)
{
//pack all my data into the serializableData array
}
}
與OnSerializing
類似,您還具有OnSerialized
, OnDeserializing
和OnDeserialized
屬性。 它們都需要一個以StreamingContext
作為參數的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.