[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,如需转载请自行联系原作者
相关文章
|
5月前
|
图形学 缓存 算法
掌握这五大绝招,让您的Unity游戏瞬间加载完毕,从此告别漫长等待,大幅提升玩家首次体验的满意度与留存率!
【8月更文挑战第31天】游戏的加载时间是影响玩家初次体验的关键因素,特别是在移动设备上。本文介绍了几种常见的Unity游戏加载优化方法,包括资源的预加载与异步加载、使用AssetBundles管理动态资源、纹理和模型优化、合理利用缓存系统以及脚本优化。通过具体示例代码展示了如何实现异步加载场景,并提出了针对不同资源的优化策略。综合运用这些技术可以显著缩短加载时间,提升玩家满意度。
450 5
|
5月前
|
API C# 图形学
Unity3D学习笔记9——加载纹理
Unity3D学习笔记9——加载纹理
60 2
|
5月前
|
图形学 数据安全/隐私保护 iOS开发
Unity与IOS⭐Xcode打包,上架TestFlight的完整教程
Unity与IOS⭐Xcode打包,上架TestFlight的完整教程
|
5月前
|
C# 图形学 C语言
Unity3D学习笔记3——Unity Shader的初步使用
Unity3D学习笔记3——Unity Shader的初步使用
57 0
|
7月前
|
存储 JSON 关系型数据库
【unity实战】制作unity数据保存和加载系统——大型游戏存储的最优解
【unity实战】制作unity数据保存和加载系统——大型游戏存储的最优解
218 2
|
7月前
|
图形学
【unity小技巧】unity3d创建和实现破碎打破物品,万物可破碎
【unity小技巧】unity3d创建和实现破碎打破物品,万物可破碎
322 0
【unity小技巧】unity3d创建和实现破碎打破物品,万物可破碎
|
7月前
|
存储 JSON 图形学
【unity实战】制作unity数据保存和加载系统——小型游戏存储的最优解
【unity实战】制作unity数据保存和加载系统——小型游戏存储的最优解
215 0
|
7月前
|
图形学
【unity小技巧】unity3D寻路指示轨迹预测
【unity小技巧】unity3D寻路指示轨迹预测
103 0
|
7月前
|
编解码 算法 图形学
【unity小技巧】减少Unity中的构建打包大小
【unity小技巧】减少Unity中的构建打包大小
221 0
|
7月前
|
图形学
【unity小技巧】unity3d环境带雾的昼夜系统变化
【unity小技巧】unity3d环境带雾的昼夜系统变化
71 0

热门文章

最新文章