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