Unity编辑器扩展精粹_第五章
这个设计上,是一个待办事项软件,数据体,是弄一个Todo类,存储待办事项文本,还有一个是否完成的特性; 再弄一个Todos列表容器,去存储待办事项相关;
这个容器的调用,是异常情况下的,处理,也就是没拿到数据的,最初初始化状态
最开始时候,数据模型为空的时候,才会调用这个
一般运行时,使用的数据模型结构,是这个
这是运行时,使用的数据容器,获取器
Unity自带了一个测试运行器,入口
代码上,加Test标签
就会自动检索出来
运行,功能正常
数据模型,有一个升级更新器,使用的是Json解析序列化,在调用之前,是需要导入对应的,dll插件
更新器的Excute函数,是调用ConvertOld2New,遍历 待办事项 列表,将旧的数据模型,替换到新的数据模型
旧的
新的,包含guid实例化的Id序号,开始/结束 日期时间,完成状态,任务优先级,包含子任务,是否隐藏等信息
旧的任务列表
新的任务列表
数据模型,完成升级更新之后,需要一个,数据模型加载器; 这里是使用,unity的数据本地持久化,EditorPrefs.GetString和SetString进行获取和设置,对数据模型,进行加载和保存
加载,也是通过Json接口,完成解序列化即可,如果没拿到数据,就需要更新一下,数据信息
保存数据
新的Todo代办类,包含静态接口,根据花费时间数值,修改显示样式
获取,花费的时间,是结束时间和开始时间的差值
还有两个枚举,分别是,代办事项当前状态、优先级
除了待办事项,还有其他几种数据模型; 笔记的数据模型,是由Id和Content文本内容构成,在构造函数里,通过NewGuid方法,自动赋予一个独一无二的Id索引;
分类管理
产品和特性
针对数据模型,有一个统一的管理类; 创建和添加待办事项,相关函数; 还有4个获取器,分别获取,上述的几种数据模型容器;
移除笔记容器,整体的保存功能
之前提及过的,数据模型获取器
从待办事项字典容器,根据id这个key,获取到对应的,待办事项; 创建一个新的笔记文件接口; 排序分类列表;
移除对应的分类管理、创建分类管理,有调用之前的颜色工具类ColorUtil的,颜色转文本方法ToText; 移除,特定待办事项; 通过Index索引,拿到特定的分类;
Json序列化数据模型的打印; 产品的创建和删除逻辑;