
一、什么是热更新热更新是什么意思
1、热更新是一种各大手游等众多App常用的更新方式。
2、热更新就是动态下发代码,它可以使开发者在不发布新版本的情况下,修复 BUG和发布功能,让开发者得以绕开苹果的审核机制,避免长时间的审核等待以及多次被拒造成的成本。
3、2017年6月,AppStore审核团队针对AppStore中热更新的App开发者发送邮件,要求移除所有相关的代码、框架或SDK,并重新提交审核,否则就会在AppStore中**该软件。
4、在iOS中有两种App更新方式:一种是在AppStore内进行更新,更新时重新下载全部安装包;另一种就是热更新。
5、用户只有在打开App时才会发现热更新包,更新时只需下载安装更新部分的代码,再次打开时即可。
6、热更新*大的优点就是快,它可以绕过苹果方面的审核,更新通常只需一个晚上即可上线,另一大优点就是更新包较小,一般都在1M左右,用户不连接WiFi也可随意下载。
7、参考资料来源:百度百科—热更新
二、Unity手游的Wwise初始化(考虑热更)
1、Unity手游的Wwise初始化(考虑热更)
2、在Unity手游项目中,Wwise的初始化是一个关键步骤,特别是在需要考虑热更(热更新)的情况下。以下是一个详细的初始化流程,旨在满足热更需求并优化游戏*能。
3、一、加载AkTerminator和AkInitializer脚本
4、为了初始化Wwise,首先需要加载AkTerminator和AkInitializer两个脚本。这里有两种常用的方法:
5、缺点:在加载AkInitializer时就会完成Wwise初始化,导致只有少部分参数设置(如Log开关)会生效,而大多数参数设置(如SoundEngine内存分配、默认语言)不会生效。
6、优点:所有初始化参数都可以配置并热更。
7、缺点:需要在初始化Wwise时进行Prefab的实例化操作。但考虑到热更的需求和稳定*,推荐使用此方法。
8、为了优化CPU资源,通常会注册一个全*声音对象来播放所有2D声音(如音乐、环境、UI声音)。这个对象不需要同步坐标,从而避免了频繁注册和注销SoundObject的损耗。
9、在游戏开始时,需要加载一些必要的SoundBank,如音量设置、UI、音乐等。这可以通过以下三种方式实现:
10、在Lua中保存字段并调用C#接口加载。通过.asset配置文件读取并加载。将加载SoundBank操作做成Prefab并实例化。考虑到设计师可能需要修改要加载的SoundBank,第三种方式对设计师*友好,但同样需要Prefab的实例化操作。
11、关于音乐、音效、语音的开关及音量的设置,应保存在客户端本地,并在Wwise播出**个声音前设置正确的参数。这些设置通常依赖于LoadBank的完成,因此需要将与功能相关的SoundBank单*拆出来,使用同步方式加载或通过回调确定LoadBank已完成。
12、Wwise提供了SetBasePath和AddBasePath两个API用于设置SoundBank路径。在iOS和Android平台上,SetBasePath的默认路径为Application.streamingAssetsPath/Audio/GeneratedSoundBanks/(Platform),而AddBasePath的默认路径为Application.persistentDataPath。为了支持热更,可以将AddBasePath的路径改为Application.persistentDataPath/Audio/GeneratedSoundBanks/(Platform),并在发布热更包时将音频资源放到对应位置。
13、Wwise有两种SoundBank:Init bank和资源bank。Init bank包含了总线、游戏同步器、环境效果等设置。考虑到Init Bank也需要热更,初始化有以下几种选择:
14、在完成资源热更后再进行初始化:这是*安全的方法,但在热更完成前游戏会处于无声状态。在游戏运行时进行初始化并载入登陆音乐:热更完成后卸载并重新加载Init Bank和登陆音乐的SoundBank。但Wwise官方不推荐这种方法,因为它可能导致不稳定。在游戏运行时进行初始化并载入登陆音乐:热更完成后不重新加载。游戏下次运行时会使用全新的SoundBank,而本次会使用旧的Init bank及登陆音乐SoundBank。同样,Wwise官方不推荐这种方法,但一些项目可能出于某种原因选择了它。需要注意的是,非Stream的SoundBank文件在加载后被播放时,源文件不会被占用,可以通过热更替换。而Stream文件播放时,源文件会被占用,不能热更。因此,如果登陆音乐有热更需求,就不能使用Stream。
15、综上所述,Unity手游的Wwise初始化在考虑热更时,需要仔细规划加载脚本、注册全*声音对象、加载必要的SoundBank、设置音量以及处理热更和初始化时机等步骤。通过合理的规划和实施,可以确保Wwise在游戏中的稳定运行和***能。













