|
创造了从下载的数据资源包的对象,你可以加载对象中使用三种不同的方法:
assetbundle.loadasset将使用自己的名称作为参数加载一个对象标识符。这个名字是一个在项目视图中可见。你可以把一个对象类型作为参数的负载的方法来确保对象加载是一种特定类型的。
assetbundle.loadassetasync作为上述负载方法相同但不会阻塞主线程的同时资产装入。这是有用的当装载大型资产或一次多资产以避免在应用程序中的停顿。
assetbundle.loadallassets将你的资源包中的所有对象。作为资源包。负荷,你可以随意用自己的过滤器对象。
卸下的资产,你需要使用资源包。卸载。这种方法需要一个布尔参数告诉Unity是否要卸载所有的数据(包括加载的资源对象)或压缩数据的下载包。如果你的应用程序是使用AssetBundle有些对象你想释放一些内存,你可以通过假从内存中卸载压缩数据。如果你想完全卸载你应该通过真正的将破坏从资源包加载的资产相关的一切。
从资源包异步加载对象
你可以使用assetbundle.loadassetasync在异步加载对象,减少应用程序中有问题的可能性方法。
using UnityEngine;
// Note: This example does not check for errors. Please look at the example in the DownloadingAssetBundles section for more information
IEnumerator Start () {
while (!Caching.ready)
yield return null;
// 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.LoadAssetAsync ("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);
// Frees the memory from the web stream
www.Dispose();
}
|
|