obsidian/笔记文件/2.笔记/技能编辑器_第二章.md
2025-03-26 00:02:56 +08:00

3.5 KiB
Raw Permalink Blame History

而技能配置文件,相关逻辑,就更加简单了

!Pasted image 20240307124048.png

对技能配置进行赋值,刷新轨道和帧总数,是后面的逻辑

!Pasted image 20240307124037.png

根据逻辑为空的时候帧上限是100

!Pasted image 20240307124306.png

有了配置之后就根据配置的来了这里是130

!Pasted image 20240307124358.png

是一致的:

!Pasted image 20240307124415.png

!Pasted image 20240307125745.png

查看基本信息:

!Pasted image 20240307124736.png

逻辑就是选中,对应的技能配置文件

!Pasted image 20240307124746.png

技能配置文件的,逻辑入口

!Pasted image 20240307125023.png

继承自框架内,配置基类:

!Pasted image 20240307125429.png

结构上,主要是各个动画数据

!Pasted image 20240307125039.png

最底层的,是帧事件类; 主要是动画帧片段是否RootMotion跟随移动动画过渡时间动画持续帧

!Pasted image 20240307125128.png

动画帧数据其中标签指的是odin序列化这个字典

!Pasted image 20240307125457.png

这里实例化

!Pasted image 20240307125546.png

具体配置表现:

!Pasted image 20240307125625.png

第二个总布局,就是,主体时间轴,是这个部件

!Pasted image 20240307130136.png

继续,分左右俩部件

!Pasted image 20240307130213.png

时间轴:

!Pasted image 20240307131530.png

时间轴和下方的轨道,鼠标滚轮缩放,会同步控制 所以逻辑上,也会关联起来

!Pasted image 20240307131710.png

这是时间轴相关的,组件

!Pasted image 20240307131825.png

时间轴是这个部件:

!Pasted image 20240307131904.png

获取方式,也是同理:

!Pasted image 20240307131947.png

这是一个滑动ScrollView

!Pasted image 20240307132050.png

!Pasted image 20240307132205.png

这俩组件:

!Pasted image 20240307132236.png

对应:

!Pasted image 20240307132247.png

时间轴的绘制逻辑

!Pasted image 20240307132305.png

具体实现; 颜色是白,根据偏转坐标,拿到起始索引 Mathf.RoundToInt 根据技能配置的帧宽度,打点,去绘制线条和文本

!Pasted image 20240307132825.png

!Pasted image 20240307132332.png

偏转坐标是跟上述ScrollView组件是关联的

!Pasted image 20240307132424.png

具体绘制出来的效果:

!Pasted image 20240307132738.png

绘制完成之后,还需要注册,不同的交互事件逻辑,分别是: 鼠标滚轮移动,鼠标点击、移动、抬起,移出

!Pasted image 20240307132853.png

滚轮控制,放大和缩小

!Pasted image 20240307132959.png

打脏标记,重绘

!Pasted image 20240307133026.png

也会同步控制,列表的宽度

!Pasted image 20240307133112.png

这个帧线的绘制

!Pasted image 20240307133204.png

表现和逻辑:

!Pasted image 20240307133250.png

!Pasted image 20240307133227.png

!Pasted image 20240307133221.png

选中线的pos坐标是根据当前选中的索引运算得到

!Pasted image 20240307133416.png

鼠标按下逻辑,也是修改这个,选中索引

!Pasted image 20240307133502.png

鼠标点击,转换帧索引逻辑:

!Pasted image 20240307133549.png

鼠标移动、抬起、移出时间轴相关逻辑; 也是修改帧索引,和布尔值

!Pasted image 20240307133619.png

最终实现效果:

!Pasted image 20240307133700.png