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

4.0 KiB
Raw Blame History

这个创建笔记的按钮

!Pasted image 20240321115340.png

逻辑入口在这里; 继承自垂直布局有一个常量字符串Key是以类本体命名的 构造函数中垂直布局样式选择box创建一个按钮界面调用工具类的PushCommand方法注册点击的功能是打开一个NoteEditorView编辑界面类布局上也会添加到自身Parent父物体上

!Pasted image 20240321115401.png

构造函数中还会注册一个全局事件key也就是自身类名的key上述已经完成赋值 事件系统通过这个全局事件,控制界面的打开和隐藏;

!Pasted image 20240321115856.png

复习一下整个系统的初始化入口是这里通过CreateViewController接口创建一个TodoListController界面控制器

!Pasted image 20240321120027.png

跳转过去这里就已经完成了创建笔记界面类NoteListView的实例化构造

!Pasted image 20240321120135.png

对于显隐界面,前面注册了事件系统; 这里就是,触发点击跳转逻辑

!Pasted image 20240321120259.png

界面,点击第二个,然后切换回第一个

!Pasted image 20240321120357.png

打断点,如预期,触发事件逻辑

!Pasted image 20240321120431.png

这里展示的是已经保存下来的Note笔记列表

!Pasted image 20240321121249.png

逻辑上这里是遍历数据模型的Notes笔记容器然后实例化出来

!Pasted image 20240321121514.png

其中的每个单一笔记,对应的逻辑; 使用编辑按钮调用笔记的Content文本显示还有编辑对应的步骤进程OpenProcessWindow 其余的,就是设置宽高颜色样式;

!Pasted image 20240321121636.png

还有删除按钮的逻辑也是调用模型管理类的RemoveNote接口移除笔记即可

!Pasted image 20240321122219.png

传参贴图名称,就是调用对应的资源加载接口,完成图标加载

!Pasted image 20240321124341.png

!Pasted image 20240321124535.png

这里的按钮对应的OpenProcessWindow逻辑比较复杂是问题和选择的逻辑框架的应用

!Pasted image 20240321125843.png

表现

!Pasted image 20240321125946.png

对应逻辑:

!Pasted image 20240321130018.png

一步一步拆解这部分逻辑; 这是问题的基类是由问题进程OnProcess和对应选项OnChoice构成

!Pasted image 20240321130106.png

再整一个问题容器基类,包含开始问题的声明,是调用了问题界面类; 还有获取选择的函数接口;

!Pasted image 20240321130216.png

问题界面类,继承自垂直布局,问题基类; 构造函数,是垂直布局的添加; Title标题Content问题 主体文本内容;

!Pasted image 20240321130314.png

TextArea输入文本区域 Menu菜单选择创建一个按钮触发进程逻辑

!Pasted image 20240321131501.png

RepeatSelfMenu接口是重复当前窗体只触发Action事件逻辑 Choice选择接口使用按钮类触发选择的Action事件再触发字符事件mOnChoice后续构建问题和旋转的时候是用字符串构建这个 mOnChoice

!Pasted image 20240321132321.png

!Pasted image 20240321132024.png

结束函数,就是直接返回获取器; 还有,进程和选择的,赋值函数;

!Pasted image 20240321132450.png

问题队列类ProcessSystem是统一管理进程的系统类后面会解析 获取的方法接口也是源自ProcessSystem 添加选择就是直接new实例化一个Choice就好

!Pasted image 20240321132713.png

处理问题就是从问题队列容器通过Dequeue方法拿一个问题出来调用Show去处理即可 如果队列容器总量为0就判断为完成触发mOnFinished完成的Action事件回调函数 OnFinish就是设定完成回调

!Pasted image 20240321133002.png

往队列容器,添加问题、选择的接口; Process就是触发处理问题的Next相关逻辑

!Pasted image 20240321133255.png