À¯´ÏƼ5¿¡¼ ¾î¼Â¹øµéÀ» »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ °£·«ÇÏ°Ô ¾Ë¾Æº¸ÀÚ. °£´ÜÇÏ°Ô ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö ¾Ë¾Æº¸±â À§ÇÑ ÀåÀÌ´Ù. ¸Þ´º > GameObject > UI > ImageÀÇ Image¸¦ ´Ù¿î·Îµå ¹Þ¾Æ¼ ±³Ã¼ Çغ¸ÀÚ. ¾î¼Â¹øµé ij½Ì »èÁ¦¿¡¼Â¹øµéÀ» Å×½ºÆ® ÇÒ¶§ ij½¬¸¦ Áö¿ì´Â ÇÔ¼ö´Â ´ÙÀ½°ú °°´Ù.Caching.CleanCache() À¯´ÏƼ ¿¡µðÅÍ¿¡¼ Å×½ºÆ® Çϱâ À§ÇØ Editor Æú´õ ¾Æ·¡¿¡ µÐ´Ù. [EditorUtil.cs ¼Ò½º] using UnityEngine;
using UnityEditor; public class EditorUtil : MonoBehaviour { [MenuItem("Util/CleanCache")] public static void CleanCache() { if (Caching.CleanCache()) { EditorUtility.DisplayDialog("Alarm", "Succeeded in deleting Caching.", "OK"); } else { EditorUtility.DisplayDialog("Error", "Failed to delete Caching.", "OK"); } } } ¾î¼Â¹øµé ºôµå¾î¼Â¹øµéÀ» °£´ÜÇÏ°Ô ¸¸µé¾î º¸°í Å×½ºÆ® Çϱâ À§ÇØ ºôµå ¿É¼ÇÀº µðÆúÆ®·Î ¼³Á¤ ÇÑ´Ù.BuildAssetBundleOptions.DeterministicAssetBundle ¿É¼ÇÀº »ç¿ë ÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. ÇÁ·ÎÁ§Æ® ºä¿¡¼ ¸®¼Ò½º¸¦ ¼±ÅÃÇÏ¸é ¾î¼Â¹øµé À̸§À» ÁöÁ¤ÇÒ¼ö ÀÖ´Ù. ¾î¼Â¹øµé À̸§À» »õ·Î ¸¸µé°Å³ª ±âÁ¸ÀÇ À̸§À» »ç¿ëÇÒ¼ö ÀÖ´Ù. ".unity3d" È®ÀåÀÚ´Â ¾ÈºÙ¿©µµ »ó°ü ¾ø´Ù. [CreateAssetBundles.cs ¼Ò½º] using UnityEngine;
using UnityEditor; using System.IO; public class CreateAssetBundles { [MenuItem("Assets/Build AssetBundles")] static void BuildAllAssetBundles() { BuildPipeline.BuildAssetBundles("AssetBundles/Android", BuildAssetBundleOptions.None, BuildTarget.Android); } [MenuItem("Assets/streamingAssetsPath Assetbundle")] static void Export() { if (!Directory.Exists(Application.streamingAssetsPath)) Directory.CreateDirectory(Application.streamingAssetsPath); BuildPipeline.BuildAssetBundles(Application.streamingAssetsPath, BuildAssetBundleOptions.None, BuildTarget.Android); } } ¾î¼Â¹øµé ´Ù¿î·Îµå¾î¼Â¹øµéÀ» ´Ù¿î·Îµå ¹Þ´Â ¼Ò½º´Â ´ÙÀ½°ú °°´Ù.LoadAssetBundleCoroutine ÇÔ¼ö¿¡¼ imagebox.unity3d ÆÄÀÏÀ» ´Ù¿î·Îµå ¹Þ´Â´Ù. GetSpriteFromAssetBundle ÇÔ¼ö¿¡¼ Sprite¸¦ ¸®ÅÏÇÏ°í ÀÖ´Ù. [AssetBundleManager.cs ¼Ò½º] using UnityEngine;
using System; using System.Collections; public class AssetBundleManager : MonoBehaviour { private AssetBundle assetBundleCache; public IEnumerator LoadAssetBundleCoroutine() { while (!Caching.ready) yield return null; var url = ""; #if UNITY_ANDROID url = "http://127.0.0.1:8080/imagebox.unity3d"; #else #endif var www = WWW.LoadFromCacheOrDownload(url, 1); while (!www.isDone) { yield return null; } assetBundleCache = www.assetBundle; www.Dispose(); } public Sprite GetSpriteFromAssetBundle(string assetName) { try { return assetBundleCache.LoadAsset<Sprite>(string.Format("{0}.png", assetName)); } catch (NullReferenceException e) { Debug.Log(e.ToString()); return null; } } } ÀνºÆåÆ®ºä¿¡¼ AssetBundleManager¿Í Image¸¦ µå·¡±×ÇÏ¿© ¼³Á¤ÇÑ´Ù. [SceneController.cs ¼Ò½º] using UnityEngine;
using UnityEngine.UI; using System.Collections; public class SceneController : MonoBehaviour { public AssetBundleManager assetBundleManager; public Image image; public void Awake() { } public IEnumerator Start() { yield return StartCoroutine(assetBundleManager.LoadAssetBundleCoroutine()); image.sprite = assetBundleManager.GetSpriteFromAssetBundle("test00"); } } ÇÁ·ÎÁ§Æ® ´Ù¿î·Îµå : AssetTest.zip ÂüÁ¶) http://slway000.tistory.com/21 |