当前位置:首页 > 关注 > > 正文

Unity 可序列化的Dictionary 天天快播

来源:哔哩哔哩    时间:2023-05-24 14:51:26


(资料图)

需求:

ScriptableObject可以保存Dictionary类型的数据

检视面板可以展示Dictionary类型的数据

可序列化的Dictionary支持复杂嵌套

问题:

Unity无法序列化Dictionary类型的数据,而ScriptableObject只能保存可序列化的数据,导致ScriptableObject无法使用Dictionary类型,并且检视面板无法显示Dcitionary类型的数据

思路:

重写Dictionary类,再通过PropertyDrawer自定义可序列化的Dictionary的显示方式

缺陷:

检视面板不支持对Dictionary的key进行更改,不支持新增和删除key,但可以修改value的内容,如果有需求,可自行更改PropertyDrawer中的代码,增加新增和删除key的按钮。由于数据类型不确定,处理新增会是一个麻烦的事情,还是建议只能通过代码新增和删除key。

效果图:

代码:

使用方法:

定义变量:

展示变量:

关键词:

精心推荐

X 关闭

X 关闭