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