您好,登錄后才能下訂單哦!
1.首先我們把這段代碼拷貝下來,放進工程,不要托給任何物體,就放在那不要理它。
using UnityEngine; using UnityEditor; public class ExportAssetBundles { [MenuItem("Export/Build AssetBundle From Selection - Track dependencies")] static void ExportResource () { // Bring up save panel string path = EditorUtility.SaveFilePanel ("Save Resource", "", "New Resource", "unity3d"); if (path.Length != 0) { // Build the resource file from the active selection. Object[] selection = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets); BuildPipeline.BuildAssetBundle(Selection.activeObject, selection, path, BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets); Selection.objects = selection; } } [MenuItem("Export/Build AssetBundle From Selection - No dependency tracking")] static void ExportResourceNoTrack () { // Bring up save panel string path = EditorUtility.SaveFilePanel ("Save Resource", "", "New Resource", "unity3d"); if (path.Length != 0) { // Build the resource file from the active selection. BuildPipeline.BuildAssetBundle(Selection.activeObject, Selection.objects, path); } } }我們仔細看一下,其實打包的.unity3d格式的文件也類似assenbundle,只不過是換了個不同的后綴名而已。
當我們創建完,保存好后我,我們會發現菜單的導航欄多了這2項
2.我們在選中我們需要打包的預設物體(也即是Prefab)。然后選中上面的第一項進行打包成.unity3d格式的文件。如圖
3.設置名字,路徑等(路徑很重要,待會加載會用到。)如圖:
4.刷新下。你就會看見這個了:
這個就是我們打包后動態加載的內容。
5. 現在我來說下怎么動態加載它吧,直接上代碼
using UnityEngine; using System.Collections; using System.IO; public class LoadUnity3d : MonoBehaviour { // Use this for initialization void Start() { StartCoroutine(LoadScene()); } // Update is called once per frame void Update() { } IEnumerator LoadScene() { //文件路徑,也就是我們打包的那個 WWW www = new WWW("file:///" + Application.dataPath + "/Bundles/My Prefab.unity3d"); yield return www; Instantiate(www.assetBundle.mainAsset); } }
6.我們再新建一個空物體,講我們這個腳本托給他,運行,你就能看見我們的預設也加載出來了。
效果如下:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。