91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

[Unity3D]AssetBundles的使用

發布時間:2020-06-19 00:34:08 來源:網絡 閱讀:354 作者:蓬萊仙羽 欄目:游戲開發

 一共有兩種方法下載AssetBundles數據資源:

  1. 無緩存:這種方法使用將創建一個WWW類,下載完的數據無法在本地unity3d的緩存目錄中進行保存。

  2. 有緩存:使用WWW.LoadFromCacheOrDownload的方法,下載完的數據將在unity3d的本地緩存目錄中進行保存。Web瀏覽器通常允許緩存大小達到50MB,PC和MAC的本地應用,IOS和Android應用都允許緩存達到4GB大小。

   下面是不含緩存的代碼:

using System;

using UnityEngine;

using System.Collections; class NonCachingLoadExample : MonoBehaviour {

  public string BundleURL;

  public string AssetName;

  IEnumerator Start() {

  // Download the file from the URL. It will not be saved in the Cache

  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));

                  // Unload the AssetBundles compressed contents to conserve memory

                  bundle.Unload(false);

  }

  }

}

   下面是含緩存的代碼,系統建議利用WWW.LoadFromCacheOrDownload類進行下載:

using System;

using UnityEngine;

using System.Collections;

 

public class CachingLoadExample : MonoBehaviour {

public string BundleURL;

public string AssetName;

public int version;

 

void Start() {

StartCoroutine (DownloadAndCache());

}

 

IEnumerator DownloadAndCache (){

// Wait for the Caching system to be ready

while (!Caching.ready)

yield return null;

 

// Load the AssetBundle file from Cache if it exists with the same version or download and store it in the cache

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));

               // Unload the AssetBundles compressed contents to conserve memory

               bundle.Unload(false);

}

}

}

   這樣,下載之前系統會現在緩存目錄中查找, WWW.LoadFromCacheOrDownload函數的第二個參數表示版本號,當要下載的數據在緩存目錄中不存在,或者存在,但版本號比較低時,系統才會下載新的數據資源,并替換到緩存中的原數據資源。

   現在來完成上一篇中的實例,在項目視圖(Projection View)中,建立Script目錄,利用上面的兩段源代碼,分別創建名為CachingLoadExample和NonCachingLoadExample的C#腳本,如下圖所示:

[Unity3D]AssetBundles的使用

   在unity3d編輯器中創建空物體,菜單GameObject - CreateEmpty,把CachingLoadExample腳本拖動到GameObject上。在層級視圖中(Hierarchy View)選中GameObject,在右邊的監視視圖(Inspector View)中,把CachingLoadExample腳本的BundleURL變量值指定到Cube.unity3d文件所在位置(輸入絕對路徑,需根據自己存放的目錄手動修改),例如:file://C:/UnityProjects/AssetBundlesGuide/Assets/AssetBundles/Cube.unity3d,現在運行unity3d,就能夠實現動態加載Cube物體了。

   實例文件下載地址:http://download.csdn.net/detail/s10141303/6496017

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

米脂县| 房产| 临夏县| 东莞市| 台南市| 荥阳市| 邓州市| 祁阳县| 庆云县| 汉沽区| 西宁市| 远安县| 河北省| 礼泉县| 阜宁县| 房山区| 西华县| 瑞丽市| 新巴尔虎右旗| 新源县| 淮北市| 衡阳县| 隆德县| 新宾| 兴隆县| 苍山县| 遂昌县| 沁阳市| 余干县| 于都县| 桦川县| 莱州市| 宁武县| 伊宁市| 和平县| 建湖县| 任丘市| 南川市| 凤城市| 伊吾县| 嘉荫县|