动态下载关卡是很多网页游戏的必备功能,想玩多少次都是一个合理的解决方案。
这里首先要解决的是如何创建用于下载的资源。 为此,Unity提供了,这是一个编辑器类,所以只能放在目录下。 它主要提供2个功能,一是,二是。
对于第一个,这里有一些解释。 虽然不是官方的,但我是这么想的。 如果有什么疑问,可以讨论一下。 这实际上意味着每个平台的版本。 Unity本身包含一个虚拟机,它更像是一个播放器,可以播放您在编辑器中创建的关卡。 如果你在编辑器中手动浏览File->,你想要生成的“播放器”有各种配置。
是的,我们也可以通过脚本来生成这个“玩家”。 这个函数有一个函数是用来设置如何构建这个的。 其中之一就是,如果设置了这个参数,生成的结果将不是传统的,而是一个可以在运行时动态加载的关卡文件。 该级别资源在运行时通过WWW类加载。
传统的为关卡生成额外资源的方法是可以的,但是当目标设置为 时,这个功能根本不起作用,至少在 3.3.04f ios pro 上是这样。 不知道是bug还是这个方法在iOS平台上不起作用。 如果在iOS上强行加载其他关卡,运行时会报错。 但遗憾的是,官方并没有说这个方法不能在iOS平台上使用。 至少在相关文件中,他并没有明确表示不能用于iOS。 这无疑扼杀了在iOS平台上动态下载关卡的想法。
没关系,还有动态下载资源。 提供的另一个功能是用于将编辑器中的任何非级别资源创建为资源文件(使用lzma方法压缩,容量有保证),然后可以在运行时通过WWW类加载。 这也是Unity在iOS平台上推荐的方法。 对于关卡,我们还可以将一个关卡中的所有内容打包成一个资源文件,然后下载。 这样,前面的问题就解决了。
具体demo可以参见,相关信息也可以参见。
虽然使用第二种方法可以解决下载关卡的问题,但是关卡仍然与Unity场景密切相关。 这就需要注意将这些信息输出到某个脚本中。 最后希望Unity能够尽快解决这个问题,避免开发者以这种扭曲的方式在iOS平台上实现动态关卡下载。