obsidian/笔记文件/2.笔记/Unity 编辑器扩展精粹_第八章.md
2025-03-26 00:02:56 +08:00

3.8 KiB
Raw Permalink Blame History

解析第一个子页签的相关逻辑,对应表现

!Pasted image 20240321150014.png

对应逻辑; 其中TodoListInputView是新增待办事项的输入框 构造函数中设定输入框的设定完成回调OnTodoCreate的具体逻辑调用数据模型类对应方法添加待办事项保存 打印对应的Json结构

!Pasted image 20240321150043.png

输入框对应的逻辑使用PopupView控件设定一个分类的标签枚举 再设置一个TextAreaView输入框

!Pasted image 20240321154151.png

添加按钮创建一个Todo待办事项设定对应的标签属性调用OnTodoCreate回调在上述的TodoListView中会完善它的具体创建逻辑

!Pasted image 20240321154312.png

单个待办事项,对应表现,是这个

!Pasted image 20240321154631.png

这是它,对应的逻辑; 其中包含开始和完成的按钮空间还有CategoryComponent标签分类组件 构造函数中完成V1.Todo的数据类赋值点击开始任务、完成任务 按钮的构建; 其中包含各个对应的时间戳:开始时间、结束时间; 调用数据模型的保存逻辑,刷新页面;

!Pasted image 20240321154659.png

CategoryComponent分类组件对应逻辑是一个boxView的显示控件Data数据类设定一下颜色就好

!Pasted image 20240321154828.png

继续构建,布局显示控件

!Pasted image 20240321155510.png

使用TreeNode树节点串联起来各个UI控件然后再通过Add2FirstLine方法加上”process“和”add“两个按钮控件对应触发的逻辑分别是 OpenProcessWindow 和 OpenTodoEditor

!Pasted image 20240321155555.png

表现

!Pasted image 20240321155845.png

前者逻辑,是使用 问题&选择 系统,拆分逻辑,跟之前提及的,笔记转待办事项,拆分逻辑,基本一致

!Pasted image 20240321155909.png

点击后的表现

!Pasted image 20240321160046.png

除了添加,待办事项,编辑当前待办事项,也是用 OpenTodoEditor这个接口

!Pasted image 20240321160931.png

表现

!Pasted image 20240321161003.png

点击包含Category分类优先级选项是否修改成 隐藏 待办事项,保存修改

!Pasted image 20240321161158.png

如果隐藏,就会加到这个子页签

!Pasted image 20240321161310.png

显隐,对应按钮的显示样式,触发函数

!Pasted image 20240321161400.png

是否可显现的参数是hide的布尔取反

!Pasted image 20240321161437.png

!Pasted image 20240321161458.png

这是整体的 待办事项 编辑器 逻辑; 使用PopupView控件配合数据模型整体的Model.Categories标签组新增标签的分类枚举

!Pasted image 20240321161540.png

总的标签分类汇总,在这个子页签,后面会解析

!Pasted image 20240321161755.png

复习优先级是Todo数据类里面这个序列化的枚举

!Pasted image 20240321161830.png

回到Todo界面类Todo编辑器的优先级调用和标签分类使用PopupView控件同理

!Pasted image 20240321161932.png

保存修改是根据传参todo是否为空判断是编辑已有待办事项还是新增子待办事项 如果只是编辑已有的就修改对应的参数save就好如果是添加子待办事项就需要加到Todo的Children列表

!Pasted image 20240321162114.png

!Pasted image 20240321162241.png

表现:

!Pasted image 20240321162317.png

子控件的逻辑包含缩进相关是在OnRefresh刷新函数实现

!Pasted image 20240321162426.png

刷新函数还会根据,事项状态,控制对应按钮的显隐

!Pasted image 20240321162501.png

还有优先级的文本和颜色,也是在刷新函数,有相关逻辑处理

!Pasted image 20240321162534.png