字典在Inspector的显示
方法一:实现ISerializationCallbackReceiver接口
《unity3D游戏开发第二版》记录
在编辑面板中可以利用序列化监听接口特性对字典进行序列化。
主要继承ISerializationCallbackReceiver接口 实现OnAfterDeserialize() OnBeforeSerialize() 的方法进行监听序列化和反序列化之前的事件。
例子:
配置的ScriptableObject脚本:
[CreateAssetMenu(fileName = "FileName2PathConfig", menuName = "xasset/Custom/FileName2PathConfig")]
public class FileName2PathConfig : ScriptableObject
{
public SerializationDic<string, string> fileDictionary;
}
// Dictionary<TKey, TValue> 可序列化字典
[Serializable]
public class SerializationDic<TKey, TValue> :ISerializationCallbackReceiver
{
[SerializeField]
List<TKey> keys;
[SerializeField]
List<TValue> values;
Dictionary<TKey, TValue> target;
public Dictionary<TKey, TValue> ToDictionary() { return tar

文章介绍了在Unity3D中如何利用ISerializationCallbackReceiver接口实现字典的序列化监听,以及使用OdinInspector插件简化配置。通过ScriptableObject和SerializationDic类展示了两种方法来控制Inspector面板的显示和序列化过程。
1157

被折叠的 条评论
为什么被折叠?



