Loading resources from AssetBundles

加载和卸载资源包 (AssetBundle) 中的对象

使用下载的数据构建资源包 (AssetBundle) 对象后,可以使用三种不同的方法加载其中包含的对象:

要卸载资源,需要使用 AssetBundle.Unload。这个类函数包含一个布尔参数,可告诉 Unity 是卸载所有数据(包括已加载的资源对象),还是只卸载已下载资源包中的压缩数据。如果应用程序正在使用此资源包 (AssetBundle) 中的一些对象,并且需要释放一些内存,则可传递 false 以便卸载内存中的已压缩数据。如需完全卸载该资源包 (AssetBundle) 的所有对象,则应传递 true,以便销毁从资源包加载的资源 (Assets)。

从资源包 (AssetBundles) 异步加载对象

可使用 AssetBundle.LoadAsync 类函数异步加载对象,从而降低应用程序暂时中断的可能性。

using UnityEngine;

// Note:This example does not check for errors.Please look at the example in the DownloadingAssetBundles section for more information
IEnumerator Start () {
	// Start a download of the given URL
	WWW www = WWW.LoadFromCacheOrDownload (url, 1);

	// Wait for download to complete
	yield return www;

	// Load and retrieve the AssetBundle
	AssetBundle bundle = www.assetBundle;

	// Load the object asynchronously
	AssetBundleRequest request = bundle.LoadAsync ("myObject", typeof(GameObject));

	// Wait for completion
	yield return request;

	// Get the reference to the loaded object
	GameObject obj = request.asset as GameObject;

// Unload the AssetBundles compressed contents to conserve memory
bundle.Unload(false);
}

返回资源包 (AssetBundles) 简介

Page last updated: 2013-06-26