簡單來說可以用Application.persistentDataPath來取得你存放檔案的位置,或者是你明確的知道該檔案放在外部SD卡的哪個資料夾下,接著都可以用WWW來讀取該物件,讀取完畢後再看是要怎麼做就行了。
參考Code
public class LoadFile : MonoBehaviour { public SpriteRenderer testSprite1; //場景上的某一個Sprite public SpriteRenderer testSprite2; void Start() { StartCoroutine(LoadDataPath()); //用第一個方法改變第一張Sprite的圖案 StartCoroutine(LoadAsset()); //用第二個方法改變第二張Sprite的圖案 } public IEnumerator LoadDataPath() { //我在我的遊戲資料夾下 /data/com.Demo.Asset/files 放了一個檔案TextAsset.unity3D WWW www = new WWW("file://" + Application.persistentDataPath + "/TestAsset.unity3d"); //使用WWW載入 yield return www; AssetBundle bundle = www.assetBundle; //轉換成AssetBundle Sprite s = bundle.LoadAsset("TestSprite", typeof(Sprite)) as Sprite; //我這個Bundle裡面只有一個Sprite物件,名稱是TestSprite testSprite1.sprite = s; //使用這個Sprite來替換場景中的一個Sprite } public IEnumerator LoadAsset() { //我在外部SD卡放置同樣的檔案,這邊sdcard1是我手機外部記憶卡的路徑名稱,不同手機要確認路徑 WWW www = new WWW("file:///sdcard1/TestAsset.unity3d"); //使用WWW載入 yield return www; if (www != null) { AssetBundle bundle = www.assetBundle; //轉換成AssetBundle Sprite s = bundle.LoadAsset("TestSprite", typeof(Sprite)) as Sprite; //我這個Bundle裡面只有一個Sprite物件,名稱是TestSprite testSprite2.sprite = s; //使用這個Sprite來替換場景中的一個Sprite } } }
這邊簡單的做個Demo,讀取一個預先製作好的AssetBundle,這個Bundle裡面我只有放一張圖片,在檔案執行後會載入這個Bundle並且把場景上的一個Sprite改變圖案。
1 comment:
Hello it's me, I am also visiting this web page on a regular basis, this site is really nice and the visitors are actually sharing fastidious thoughts. paypal.com login
Post a Comment