Unity中序列化问题
程序员文章站
2022-03-02 11:48:30
...
prefab序列化保存Dictionary
先上一个序列化Dic的解决办法,后续更新
[System.Serializable]
public class SerializableDictionary<TKey, TValue> : Dictionary<TKey, TValue>, ISerializationCallbackReceiver
{
[SerializeField]
private List<TKey> _keys = new List<TKey>();
[SerializeField]
private List<TValue> _values = new List<TValue>();
public void OnBeforeSerialize()
{
this._keys.Clear();
this._values.Clear();
this._keys.Capacity = this.Count;
this._values.Capacity = this.Count;
foreach (var kvp in this)
{
this._keys.Add(kvp.Key);
this._values.Add(kvp.Value);
}
}
public void OnAfterDeserialize()
{
// Debug.Log("OnAfterDeserialize");
this.Clear();
int count = Mathf.Min(this._keys.Count, this._values.Count);
for (int i = 0; i < count; ++i)
{
this.Add(this._keys[i], this._values[i]);
}
}
}
上一篇: U3D保存物体位置信息,读取物体位置信息
下一篇: Unity 异步加载网络头像
推荐阅读
-
Mysql5.7中使用group concat函数数据被截断的问题完美解决方法
-
Windows 64 位 mysql 5.7以上版本包解压中没有data目录和my-default.ini及服务无法启动的快速解决办法(问题小结)
-
vs2015/vs2013中mvc5 viewbag总是出现问题该怎么办?
-
unity3d中四种光源有什么区别?
-
Win10安装VS2013中文语言包安装失败问题汇总
-
解决JavaEE开发中字符编码出现乱码的问题
-
Spring boot 和Vue开发中CORS跨域问题解决
-
Vue中android4.4不兼容问题的解决方法
-
js中的深浅拷贝问题简析
-
Android 使用volley过程中遇到的问题解决办法