Unity编辑器扩展精粹_第八章
解析第一个子页签的相关逻辑,对应表现
对应逻辑; 其中TodoListInputView是,新增待办事项的输入框; 构造函数中,设定输入框的,设定完成回调OnTodoCreate的具体逻辑,调用数据模型类,对应方法,添加待办事项,保存; 打印对应的Json结构;
输入框对应的逻辑,使用PopupView控件,设定一个分类的,标签枚举; 再设置一个TextAreaView输入框;
添加按钮,创建一个Todo待办事项,设定对应的标签属性,调用OnTodoCreate回调,在上述的TodoListView中,会完善它的具体创建逻辑
单个待办事项,对应表现,是这个
这是它,对应的逻辑; 其中包含,开始和完成的按钮空间,还有CategoryComponent标签分类组件; 构造函数中,完成V1.Todo的数据类赋值,点击开始任务、完成任务 按钮的构建; 其中包含各个对应的时间戳:开始时间、结束时间; 调用数据模型的保存逻辑,刷新页面;
CategoryComponent分类组件,对应逻辑,是一个boxView的显示控件,Data数据类,设定一下颜色就好
继续构建,布局显示控件
使用TreeNode树节点,串联起来,各个UI控件,然后再通过Add2FirstLine方法,加上”process“和”add“两个按钮控件,对应触发的逻辑,分别是 OpenProcessWindow 和 OpenTodoEditor
表现
前者逻辑,是使用 问题&选择 系统,拆分逻辑,跟之前提及的,笔记转待办事项,拆分逻辑,基本一致
点击后的表现
除了添加,待办事项,编辑当前待办事项,也是用 OpenTodoEditor这个接口
表现
点击,包含Category分类,优先级选项,是否修改成 隐藏 待办事项,保存修改
如果隐藏,就会加到这个子页签
显隐,对应按钮的显示样式,触发函数
是否可显现的参数,是hide的布尔取反
这是整体的 待办事项 编辑器 逻辑; 使用PopupView控件,配合数据模型,整体的Model.Categories标签组,新增标签的分类枚举;
总的标签分类汇总,在这个子页签,后面会解析
复习,优先级是Todo数据类里面,这个序列化的枚举
回到Todo界面类,Todo编辑器的优先级调用,和标签分类,使用PopupView控件,同理
保存修改,是根据传参todo是否为空,判断是,编辑已有待办事项,还是新增子待办事项; 如果只是编辑已有的,就修改对应的参数,save就好,如果是添加子待办事项,就需要加到Todo的Children列表;
表现:
子控件的逻辑,包含缩进相关,是在OnRefresh刷新函数实现
刷新函数还会根据,事项状态,控制对应按钮的显隐
还有优先级的文本和颜色,也是在刷新函数,有相关逻辑处理