Unity AssetBundles打包

首先需要打包一個預(yù)制體物體,該預(yù)制體需要更改后綴為.unity3d;

using UnityEditor;
using System.Collections;
using UnityEngine;
using System.IO;
using System.Collections.Generic;
        
    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);    

            // 剛創(chuàng)建的文件夾和目錄能馬上再Project視窗中出現(xiàn)        

            AssetDatabase.Refresh ();      
        }    

        /// <summary>     
        /// 判斷路徑是否存在,不存在則創(chuàng)建       
        /// </summary>      
           public static void CheckDirAndCreate(string dirPath)     
         {          
             if (!Directory.Exists (dirPath)) {   
                
                Directory.CreateDirectory (dirPath);  

            }      
        }    

}

讀取ab包;
using UnityEngine;
using System.Collections;
using System.IO;

public class  QFramework : MonoBehaviour
{


    public string busUnity;    //ab包的名字  xxx.unity3d
    public string busName;   //生成物體的名字    xxx

    public string tree1Unity;
    public string tree1Name;
  
    void Start()
    {

        StartCoroutine(GameInstanciate(busUnity, busName));

        StartCoroutine(GameInstanciate(tree1Unity, tree1Name));
 
    }

 

    IEnumerator GameInstanciate(string unity, string name)
    {

        WWW www = new WWW("file:///" + Application.streamingAssetsPath + Path.DirectorySeparatorChar + "QAB" + Path.DirectorySeparatorChar + unity);

        yield return www;


        if (string.IsNullOrEmpty(www.error))
        {

            var go = www.assetBundle.LoadAsset<GameObject>(name);
            Debug.Log(go.transform.position);
            Instantiate(go);
           //Instantiate(go).transform.SetParent(GameObject.Find("Tree").transform);
           // Transform obj= Instantiate(go.transform,go.transform.position,Quaternion.identity,GameObject.Find("Tree").transform)as Transform;
            //GameObject obj = Instantiate(go, GameObject.Find("Tree").transform);
           // obj.transform.position = go.transform.position;
           // obj.transform.rotation = go.transform.rotation;
         


        }
        else
        {

            Debug.LogError(www.error);

        }

    }
}



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 111. [動畫系統(tǒng)]如何將其他類型的動畫轉(zhuǎn)換成關(guān)鍵幀動畫? 動畫->點緩存->關(guān)鍵幀 112. [動畫]Unit...
    胤醚貔貅閱讀 13,543評論 3 88
  • 最先執(zhí)行的方法是: 1、(激活時的初始化代碼)Awake,2、Start、3、Update【FixUpdate、L...
    困卡閱讀 4,502評論 0 8
  • 更新:【面試題含答案】http://bbs.9ria.com/thread-288394-1-1.html 高頻問...
    好怕怕閱讀 5,095評論 3 53
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,680評論 19 139
  • 案例一:兩個群。 1.群變成廣告群,只剩下廣告,死群了。 2.群消息成百上千,大量群消息讀不完。 用戶反應(yīng): 群主...
    馬克圖布了閱讀 2,284評論 0 1

友情鏈接更多精彩內(nèi)容