<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                最近在看 Unity 官方的 AssetBundle(以下簡稱 AB )的教程,也照著做了一遍,不過做出來的 AssetBundleManager 的 API 設計得有些不太習慣。目前想到了一個可行的解決方案。AB 相關的內容有點多,所以為了良好的閱讀體驗,就把教程分為幾個小文章,一次寫一個點。 ## 1. AssetBundle設置: 首先要確定一個專門打資源包用的目錄,我的框架定的目錄是 QArt/QAB,并存放了一些 Prefab 資源,如下所示。 ![DraggedImage.png](http://file.liangxiegame.com/488e7887-739c-4500-b2da-a3cc3f2af3b0.png) 然后選定 TestAB 目錄,將 Inspector 窗口的設置為如下圖所示: ![DraggedImage-1.png](http://file.liangxiegame.com/5a6fe965-dd23-4ac3-a27f-fee4caba1d55.png) 一級名字為 testab,二級擴展名為 unity3d。 這樣 AB 就設置好了。 ## 2. 制作編輯器工具。 這里打包的核心 API 只有一個,就是 ```cs BuildPipeline.BuildAssetBundles (outPath, 0, EditorUserBuildSettings.activeBuildTarget); ``` 貼上編輯器工具代碼: ```cs using UnityEditor; using System.Collections; using UnityEngine; using System.IO; using System.Collections.Generic; namespace QFramework.Editor { public class QABEditor { [MenuItem("QFramework/AB/Build")] public static void BuildAssetBundle() { // AB包輸出路徑 string outPath = Application.streamingAssetsPath + "/QAB"; // 檢查路徑是否存在 CheckDirAndCreate (outPath); BuildPipeline.BuildAssetBundles (outPath, 0, EditorUserBuildSettings.activeBuildTarget); // 剛創建的文件夾和目錄能馬上在 Project 視窗中出現 AssetDatabase.Refresh (); } /// <summary> /// 判斷路徑是否存在,不存在則創建 /// </summary> public static void CheckDirAndCreate(string dirPath) { if (!Directory.Exists (dirPath)) { Directory.CreateDirectory (dirPath); } } } } ``` **這個腳本要放在 Editor 目錄下!!!** **這個腳本要放在 Editor 目錄下!!!** **這個腳本要放在 Editor 目錄下!!!** ## 使用方法: 點擊QFramework/AB/Build ![DraggedImage-2.png](http://file.liangxiegame.com/d45867d3-4d67-4011-b2e2-5c575dc04709.png) 之后,生成的AB包如下所示: ![DraggedImage-3.png](http://file.liangxiegame.com/90eac9b9-6319-41a3-ae59-173e68fd493c.png) AB包就打好了,接下來開始測試AB包的使用。 ## 3.測試: 代碼很簡單,如下所示,一些常識性的問題就不介紹了。 ```cs using UnityEngine; using System.Collections; using System.IO; namespace QFramework.Example { public class TestABEditor : MonoBehaviour { // Use this for initialization IEnumerator Start () { WWW www = new WWW ("file:///" + Application.streamingAssetsPath + Path.DirectorySeparatorChar + "QAssetBundle" + Path.DirectorySeparatorChar + "testab.unity3d"); yield return www; if (string.IsNullOrEmpty (www.error)) { var go = www.assetBundle.LoadAsset<GameObject> ("Canvas"); Instantiate (go); } else { Debug.LogError (www.error); } } // Update is called once per frame void Update () { } } } ``` ### 運行結果: ![DraggedImage-4.png](http://file.liangxiegame.com/e394b3e5-58cf-437a-944a-9131018ab5fc.png) 最初版的打包工具就做好了,接下來到了吐槽的時刻了。 ## 4.存在的問題: 1. 不支持多平臺,只能打當前 PlayerSettings 所設置的平臺的 AB 包,有點麻煩。 2. 需要手動設置 AB 包的名字和擴展名,這個問題完全可以交給代碼實現。 3. 看不到整個工程究竟有哪些設置了AB 包的名字,哪些沒設置,有些無關的資源誤操作設置了AB 包名,要排查這種資源要花些時間。 4. 測試的代碼中暴露的字符串太多了,其中包括 AB 包名,AB 包路徑,要加載的資源名字,這些都可以集中管理或者生成代碼。 5. 歡迎補充 這些問題在此后的文章中一步一步解決,希望大家多給些建議。 ## 歡迎討論! 轉載請注明地址:涼鞋的筆記:[liangxiegame.com](http://liangxiegame.com) ## 更多內容 * QFramework 地址:[https://github.com/liangxiegame/QFramework](https://github.com/liangxiegame/QFramework) * QQ 交流群:[623597263](http://shang.qq.com/wpa/qunwpa?idkey=706b8eef0fff3fe4be9ce27c8702ad7d8cc1bceabe3b7c0430ec9559b3a9ce66) * **Unity 進階小班**: * 主要訓練內容: * 框架搭建訓練(第一年) * 跟著案例學 Shader(第一年) * 副業的孵化(第二年、第三年) * 權益、授課形式等具體詳情請查看[《小班產品手冊》](https://liangxiegame.com/master/intro):https://liangxiegame.com/master/intro * 關注公眾號:liangxiegame 獲取第一時間更新通知及更多的免費內容。 ![](http://file.liangxiegame.com/38eccb55-40b2-4845-93d6-f5fb50ff9492.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看