右侧显示

对应逻辑,初始化主要是定了,选中上面音频的相关颜色显示 还有注册,拖曳资产,到轨道上

拖曳资源,也是跟动画资源类似,检测是否为音频,然后根据帧索引,进行放置,刷新页面,保存配置文件

其中,音频的U控件比较简单

相关样式逻辑

刷新界面,设置标题相关

回到音频轨道类,调用上面音频控件相关显示逻辑,然后也注册鼠标相关,交互逻辑

鼠标交互逻辑,和之前动画片段的,交互逻辑基本一样

选中某个音频,或者特效,在对应的显示面板,新增了条件判断,去显示

对应的面板显示逻辑,还有修改音频资源,相关逻辑

音频的属性面板,交互相关逻辑,也就是修改音量相关

点击音频片段,表现

技能基类,也新增播放,虚函数接口

回到音频轨道类,这是播放音频的实现逻辑,包含从特定位置,播放音频,如果帧索引和音频的开始索引,相等,就从头开始播放的逻辑

这个逻辑,就是编辑器,驱动技能的统一接口重写

调用位置

根据逻辑,一个音效轨道上,只会有一个音频item,如果拖曳新的音频到,同一个轨道,就会对其重新赋值,取代旧的

重新构建逻辑

音频播放,在编辑器模式下,通过反射的形式,拿到对应的组件接口

填写音频采样率frequency,通过Invoke的方式,播放即可

调用

游戏运行时,播放音效的接口逻辑,是在音频管理器中

对象池,统一管理,音频播放器

音效播放之后,也是回收到对象池即可

游戏运行时,驱动音效接口,这里的音频是根据配置文件拿到的,没通过资源管理接口; 是从头播放,而且配置文件的,Voluem音量,也会传参过去

游戏运行,音效是可以正常播放的

特效的数据结构

分别是对应的特效预制体,位置,旋转,缩放,持续时间,是否自动销毁

初始化特效的入口:

这是特效轨道类逻辑; 样式,是用了跟音频轨道,相同的样式; 初始化的时候,会检测是否在技能编辑器场景,如果在的话,会找到Effects这个根节点,重置一下坐标; 如果根节点还有,特效子物体,会调用DestroyImmediate销毁实体

检测场景逻辑

对应场景,根节点

特效片段

对应逻辑类; 其中样式,也是用了,跟音效相同的,显示样式;

特效的预览,是需要实例化一个预览实体

这里是触发预览的重写函数; 如果已有实体,就销毁,然后也把角色实体的,坐标和旋转,通过换算,赋值给,新实例化出来的,预览特效实体

然后,调用预览实体上挂载的ParticleSystem组件,模拟播放特效即可

清理特效相关

销毁函数,也有调用