이 섹션에서는 당신이 이미 에셋 번들을 빌드하는 법을 배웠다고 가정한다. 만약 안 배웠다면 Building AssetBundles 문서를 보시오.
에셋번들을 다운로드하는 방법은 두 가지가 있다.
Here's an example of a non-caching download:
using System; using UnityEngine; using System.Collections; class NonCachingLoadExample : MonoBehaviour { public string BundleURL; public string AssetName; IEnumerator Start() { using (WWW www = new WWW(BundleURL)) { yield return www; if (www.error != null) throw new Exception("WWW download had an error:" + www.error); AssetBundle bundle = www.assetBundle; if (AssetName == "") Instantiate(bundle.mainAsset); else Instantiate(bundle.Load(AssetName)); } } }
The recommended way to download AssetBundles is to use WWW.LoadFromCacheOrDownload. For example:
using System; using UnityEngine; using System.Collections; public class CachingLoadExample : MonoBehaviour { public string BundleURL; public string AssetName; public int version; IEnumerator Start() { using(WWW www = WWW.LoadFromCacheOrDownload (BundleURL, version)){ yield return www; if (www.error != null) throw new Exception("WWW download had an error:" + www.error); AssetBundle bundle = www.assetBundle; if (AssetName == "") Instantiate(bundle.mainAsset); else Instantiate(bundle.Load(AssetName)); } } }
When you access the .assetBundle
property, the downloaded data is extracted and the AssetBundle object is created. At this point, you are ready to load the objects contained in the bundle. The second parameter passed to LoadFromCacheOrDownload specifies which version of the AssetBundle to download. If the AssetBundle doesn't exist in the cache or has a version lower than requested, LoadFromCacheOrDownload will download the AssetBundle. Otherwise the AssetBundle will be loaded from cache.
Now that the components are in place you can build a scene that will allow you to load your AssetBundle and display the contents on screen.
First create an empty game object by going to GameObject→CreateEmpty. Drag the CachingLoadExample script onto the empty game object you just created. Then type the the URL of your AssetBundle in the BundleURL field. As we have placed this in the project directory you can copy the file directory location and add the prefix file:
, for example
file:C:/UnityProjects/AssetBundlesGuide/Assets/AssetBundles/Cube.unity3d
You can now hit play in the Editor and you should see the Cube prefab being loaded from the AssetBundle. This is the end of the basic example of how to build and use an AssetBundle.