27.11.2015

在Unity中新增了“按需”加载内容的支持

苹果在 iOS 9 和 tvOS 中引入的“按需加载”功能,现已正式向 在 Unity 上开发项目的开发者们开放。

Unity 中支持按需加载内容的功能

据 Unity 官方博客报道,为了简化开发者的工作,Unity 最近发布了第一个针对版本 5.2.0 的补丁,其中包含了用于按需资源创建的 API 包装器。

值得注意的是,按需加载功能是 iOS 9 和 tvOS 的新特性。它的目的是通过将一些内容转移到“云端”,来减少设备上分发包的大小。预计一旦用户需要这些新内容,它们将会被加载,而已经不再使用的内容则会被替换。

在 Unity 博客中,举了以下情况作为例子:有一款包含多个关卡的游戏。当玩家在第三关时,他并不需要第十关的内容。在通关第十六关时,玩家也不急需前几关的内容。

实际上,这个故事颇具争议,主要是出于苹果希望降低新款 Apple TV 的生产成本的考虑。

无论如何,今天的开发者们不得不考虑不断变化的现实,并调整他们的解决方案以适应主要市场。

根据 Unity 博客的说明,开发者在使用“按需资源”时需要执行两个步骤。首先,在构建时将标识符(标签)绑定到每个资源上。其次,在需要的时候使用已附加的标签来请求资源。

没有包装器时,第一步在 Xcode 中完成,请求通过 NSBundleResourceRequest API 实现。而在 Unity 中,这个过程如今是通过代码完成的(第一步是 UnityEditor.iOS.BuildPipeline.collectResources 事件 API,第二步是 UnityEngine.iOS.OnDemandResources.PreloadAsync API)。

苹果建议,加载的包大小不超过 64MB。

来源: http://blogs.unity3d.com

评论
写评论...
Related news