右侧显示
![[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]]