右侧显示 ![[Pasted image 20240311171105.png]] 对应逻辑,初始化主要是定了,选中上面音频的相关颜色显示 还有注册,拖曳资产,到轨道上 ![[Pasted image 20240311171411.png]] 拖曳资源,也是跟动画资源类似,检测是否为音频,然后根据帧索引,进行放置,刷新页面,保存配置文件 ![[Pasted image 20240311171528.png]] 其中,音频的U控件比较简单 ![[Pasted image 20240311171823.png]] 相关样式逻辑 ![[Pasted image 20240311171929.png]] 刷新界面,设置标题相关 ![[Pasted image 20240311171946.png]] 回到音频轨道类,调用上面音频控件相关显示逻辑,然后也注册鼠标相关,交互逻辑 ![[Pasted image 20240311172042.png]] 鼠标交互逻辑,和之前动画片段的,交互逻辑基本一样 ![[Pasted image 20240311172247.png]] ![[Pasted image 20240311172254.png]] 选中某个音频,或者特效,在对应的显示面板,新增了条件判断,去显示 ![[Pasted image 20240311172426.png]] 对应的面板显示逻辑,还有修改音频资源,相关逻辑 ![[Pasted image 20240311172622.png]] 音频的属性面板,交互相关逻辑,也就是修改音量相关 ![[Pasted image 20240311172701.png]] 点击音频片段,表现 ![[Pasted image 20240311172746.png]] 技能基类,也新增播放,虚函数接口 ![[Pasted image 20240312115311.png]] 回到音频轨道类,这是播放音频的实现逻辑,包含从特定位置,播放音频,如果帧索引和音频的开始索引,相等,就从头开始播放的逻辑 ![[Pasted image 20240312105254.png]] 这个逻辑,就是编辑器,驱动技能的统一接口重写 ![[Pasted image 20240312105431.png]] 调用位置 ![[Pasted image 20240312105526.png]] 根据逻辑,一个音效轨道上,只会有一个音频item,如果拖曳新的音频到,同一个轨道,就会对其重新赋值,取代旧的 ![[Pasted image 20240312114117.png]] 重新构建逻辑 ![[Pasted image 20240312114215.png]] 音频播放,在编辑器模式下,通过反射的形式,拿到对应的组件接口 ![[Pasted image 20240312114916.png]] 填写音频采样率frequency,通过Invoke的方式,播放即可 ![[Pasted image 20240312114945.png]] 调用 ![[Pasted image 20240312115045.png]] 游戏运行时,播放音效的接口逻辑,是在音频管理器中 ![[Pasted image 20240312115801.png]] 对象池,统一管理,音频播放器 ![[Pasted image 20240312115950.png]] 音效播放之后,也是回收到对象池即可 ![[Pasted image 20240312120254.png]] 游戏运行时,驱动音效接口,这里的音频是根据配置文件拿到的,没通过资源管理接口; 是从头播放,而且配置文件的,Voluem音量,也会传参过去 ![[Pasted image 20240312120328.png]] 游戏运行,音效是可以正常播放的 ![[Pasted image 20240312120601.png]] 特效的数据结构 ![[Pasted image 20240312120637.png]] 分别是对应的特效预制体,位置,旋转,缩放,持续时间,是否自动销毁 ![[Pasted image 20240312120644.png]] 初始化特效的入口: ![[Pasted image 20240312121249.png]] ![[Pasted image 20240312121350.png]] 这是特效轨道类逻辑; 样式,是用了跟音频轨道,相同的样式; 初始化的时候,会检测是否在技能编辑器场景,如果在的话,会找到Effects这个根节点,重置一下坐标; 如果根节点还有,特效子物体,会调用DestroyImmediate销毁实体 ![[Pasted image 20240312121409.png]] 检测场景逻辑 ![[Pasted image 20240312121621.png]] ![[Pasted image 20240312121631.png]] 对应场景,根节点 ![[Pasted image 20240312121644.png]] 特效片段 ![[Pasted image 20240312121733.png]] 对应逻辑类; 其中样式,也是用了,跟音效相同的,显示样式; ![[Pasted image 20240312121745.png]] ![[Pasted image 20240312121850.png]] 特效的预览,是需要实例化一个预览实体 ![[Pasted image 20240312121943.png]] 这里是触发预览的重写函数; 如果已有实体,就销毁,然后也把角色实体的,坐标和旋转,通过换算,赋值给,新实例化出来的,预览特效实体 ![[Pasted image 20240312122013.png]] 然后,调用预览实体上挂载的ParticleSystem组件,模拟播放特效即可 ![[Pasted image 20240312122212.png]] 清理特效相关 ![[Pasted image 20240312122254.png]] 销毁函数,也有调用 ![[Pasted image 20240312122326.png]]