还有一个动画片段,也是一个子物体

父物体是一个label文本,然后子物体,是两个显示要素VisualElement

动画片段的抽象父类,设置根节点,背景颜色,宽度,位置

其中,背景颜色,就是有选中,和消选,两个调用

表现:

动画片段,对应的具体逻辑: 加载对应的uxml配置,,设置一下主拖曳区域,和动画帧结束点线条; 设置标题的接口; 传参tracStyle是一个VisualElement,会新增该动画片段root节点,

传参tracStyle是这个

也就是回到,前面两个基础轨道类,是动画片段的显示父节点; 初始化函数,设置一下,自身的显示父节点 menuParent 和 contentParent; 然后加载俩配套的,轨道uxml文件;

是继承自SkillTrackStyleBase,主要逻辑就是,往自身根节点,通过代码的形式,添加子节点

继续,动画轨道AnimationTrack是继承自,SkillTrackBase技能基类

初始化,实例化基础轨道类相关,设置标题,然后注册回调函数,拖曳相关

表现:

在技能编辑器页面,会有一个统统一管理,所有轨道的list列表

在初始化动画轨道的时候,会加上这个; 后续还会加上,特效和音效轨道

动画片段,是可以点击,修改颜色等逻辑操作; 相关抽象基类: 选择、消选,重置帧宽度

继承子类; 选择的时候,unity属性面板,显示对应轨道信息,选中和消选颜色设置

面板显示相关

设置,选择当前轨道; 这个是技能编辑器本身的,CustomEditor属性面板逻辑; 调用当前轨道的OnSelect选中函数

Instance在创建面板中,有设置为this,调用的Show函数,是用来显示,动画相关数据

选中的,表现

动画片段的交互逻辑; SkillAnimationTrackItemStyle的实例化,已经调用了对应的uxml显示文件,也设置了默认颜色,和选中颜色;

绑定对应的鼠标事件:点击,抬起,移出,移动; 重置动画帧宽度

重置函数,除了自身根据,动画帧的位置信息设定,还有动画终结线的显示属性,和位置设置

鼠标交互里面,点击,抬起,移出,这三个的逻辑,都还是比较简单的; 点击,就是触发选中函数,抬起和移出,都会调用,拖曳动画片段,本体的函数

选中的业务逻辑,会跳转到面板显示,还有选择和消选,调用了对应的,设置背景函数

拖曳,就是设置帧索引相关了

对应动画数据,字典存储的修改,删除旧的,增加新的,而且会自动保存配置文件

鼠标移动逻辑,会相对复杂一点; 需要计算开始坐标,和鼠标位置之间的偏移; 而且可能考虑到,整个轨道,边界的情况;

举例说明,表现上,有可能出现,两者之间,没有冗余空间,进行左边拖曳

这是配合,遍历,轨道整体动画数据的,帧索引,判断是否会出现,重叠的情况

检测,不能超过最大边界

以上,就是动画片段本身,相关的交互逻辑; 回到轨道逻辑,这是初始化最后需要做的,重置数据 先销毁,再重新绘制

这里遍历的,是配置信息数据

销毁是这里的,显示要素销毁

创建,就是根据帧索引,创建前面提及的,动画片段了; 然后加到,对应的trackItemDic字典