[Unity3d][NGUI]打包NGUI預製件成Assetbundle 兩種思路.

來源:互聯網
上載者:User

接上文,項目中因為需要UI熱更新,所以我使用了AssetBundle這個解決方案.


一般來說,我們使用AssetBundle產生資源套件常用的方案是如下這麼用:

using UnityEngine;using UnityEditor;/// <summary>/// 匯出資源類/// </summary>public class ExportGameResources{    static BuildAssetBundleOptions m_option = BuildAssetBundleOptions.CollectDependencies |  // 收集所有依賴關係                                              BuildAssetBundleOptions.DeterministicAssetBundle;    /// <summary>    /// 匯出NGUI成Assetbundle    /// </summary>    [MenuItem("Assets/匯出/資源")]    static public void ExportNGUI()    {        // 擷取編輯器中選擇的項        Object[] objs = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets);        // 沒有選中項        if (objs.Length == 0)        {            return;        }        string _savepath = null;        // 判斷是多選還是單選        if (objs.Length == 1)        {            // 擷取儲存路徑            _savepath = EditorUtility.SaveFilePanel("Save Resource", "", objs[0].name, "assetbundle");            // 產生assetbundle            BuildPipeline.BuildAssetBundle(objs[0], null,                   _savepath,                   m_option,                   EditorUserBuildSettings.activeBuildTarget);        }        else        {            // 擷取儲存路徑            _savepath = EditorUtility.SaveFolderPanel("Save Resources", "", "");            // 產生assetbundle            for (int i = 0; i < objs.Length; ++i)            {                BuildPipeline.BuildAssetBundle(objs[i], null,                    _savepath + "/" + objs[i].name + ".assetbundle",                    m_option,                    EditorUserBuildSettings.activeBuildTarget);            }        }    }}

這就是我最開始寫的將NGUI預製件打包成Assetbundle的方法.
這個方法看起來沒啥問題,使用WWW流載入也沒有問題.
但是真的如此嗎?

其實我一開始也沒有注意到AssetBundle中的資源依賴關係這個問題.

因為我最開始產生的幾個Assetbundle0均是ngui示範中的幾個預製件,產生出來的大小比較正常一般幾K到幾十K.


於是我天真的以為就這麼用就好了.

直到我開始做幾個需要中文文本支援的介面時,才發現我跳進了一個小坑.


TODO:.................


PS:這個Blog嘛 不算啥專業的技術Blog,只是隨筆.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.