본문 바로가기

카테고리 없음

[Unity] AssetBundle 사용하기 - 안드로이드 디바이스에서 로드하기

하나. 유니티 엔진으로 빌드한 apk가 설치된 프로젝트 폴더 내부가 아닌 위치에서 로드하기.

using UenityEngine;
using System.Collections;

public class LoadExternal : MonoBehaviour
{
 // file:///sdcard/ 로 시작하면 안드로이드 디바이스의 다른 폴더에 접근할 수 있다.
 private string _path = "file:///sdcard/download/AssetBundle.unity3d";

 void OnGUI ()
 {
  if ( GUILayout.Button ( "Local Asset" ) )
  {
   StartCoroutine ( LoadAsset ( path, 1 ) );
  }
 }

 IEnumerator LoadAsset ( string path, int version )
 {
  while ( !Caching.ready )
  {
   yield return null;
  }

  using ( WWW asset = WWW.LoadFromCacheOrDownload ( path, version ) )
  {
   yield return asset;

   if ( asset.error != null )
   {
    Debug.Log ( "error : " + asset.error.ToString () );
   }
   else
   {
    GameObject go = GameObject.CreatePrimitive ( PrimitiveType.Plane );
    go.transform.rotation = Quaternion.Euler ( new Vector3 ( 90f, 180f, 0f ) );
    go.renderer.material.mainTexture = asset.assetBundle.mainAsset as Texture2D;
   }

   asset.assetBundle.Unload ( false );
  }
 }
}

 

반응형