[unity3d]unity中打包成.unity3d格式并实现本地加载出来

简介:

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.我们再新建一个空物体,讲我们这个脚本托给他,运行,你就能看见我们的预设也加载出来了。

  效果如下:

 




















本文转蓬莱仙羽51CTO博客,原文链接:http://blog.51cto.com/dingxiaowei/1366142,如需转载请自行联系原作者
相关文章
|
图形学 Android开发 iOS开发
|
4月前
|
缓存 API 图形学
【Unity 3D】AssetBundle打包、上传、加载、卸载详解及演示(附源码)
【Unity 3D】AssetBundle打包、上传、加载、卸载详解及演示(附源码)
77 0
|
4月前
|
算法 图形学 UED
【Unity 3D】AssetBundle工作流程、打包策略详解(超详细必看)
【Unity 3D】AssetBundle工作流程、打包策略详解(超详细必看)
65 0
|
4月前
|
图形学
【Unity3D开发小游戏】Unity3D零基础一步一步教你制作跑酷类游戏
【Unity3D开发小游戏】Unity3D零基础一步一步教你制作跑酷类游戏
|
4月前
|
设计模式 存储 前端开发
【Unity3D日常开发】Unity3d中使用MVC框架
【Unity3D日常开发】Unity3d中使用MVC框架
|
7月前
|
图形学 Android开发
Unity打包安卓报http请求错误
Unity打包安卓报http请求错误
70 1
|
7月前
|
数据采集 物联网 Linux
Unity3D下实现Linux平台RTMP推流(以采集Unity窗体和声音为例)
随着物联网等行业的崛起,越来越多的传统行业如虚拟仿真、航天工业、工业仿真、城市规划等,对Linux下的生态构建,有了更大的期望,Linux平台下,可选的直播推拉流解决方案相对Windows和移动端,非常少,基于Unity的Linux推送方案,更是几无参考。本文以Unity3d环境下Linux平台推送Unity窗体和Unity采集的音频,然后编码推送到RTMP服务器为例,大概说下实现过程。
135 0
|
存储 C# 图形学
从零开始做一款Unity3D游戏<一>——亲自上手使用Unity(二)
从零开始做一款Unity3D游戏<一>——亲自上手使用Unity
从零开始做一款Unity3D游戏<一>——亲自上手使用Unity(二)
|
编解码 JavaScript C#
从零开始做一款Unity3D游戏<一>——亲自上手使用Unity(一)
从零开始做一款Unity3D游戏<一>——亲自上手使用Unity
从零开始做一款Unity3D游戏<一>——亲自上手使用Unity(一)
|
Java 图形学
Unity打包符号表 使用ndk addr2line.exe+符号表 将崩溃内存地址解析成函数名
符号表的路径,符号表发布出来的时候是一个zip文件要把它解压出来,里面会有两个文件:arm64-v8a(64位)、armeabi-v7a(32位)不过unity默认打包出来的都是64位的程序,所以这个前面加上你的真实路径+arm64-v8a\libil2cpp.sym.so就可以了。