[Unity3d][NGUI]打包NGUI预制件成Assetbundle 两种思路.
来源:互联网 发布:承兑汇票 知乎 编辑:程序博客网 时间:2024/05/17 03:47
接上文,项目中因为需要UI热更新,所以我使用了AssetBundle这个解决方案.
一般来说,我们使用AssetBundle生成资源包常用的方案是如下这么用:
using UnityEngine;using UnityEditor;/// <summary>/// 导出资源类/// </summary>public class ExportGameResources{ static BuildAssetBundleOptions m_option = BuildAssetBundleOptions.CollectDependencies | // 收集所有依赖关系 BuildAssetBundleOptions.DeterministicAssetBundle; /// <summary> /// 导出NGUI成Assetbundle /// </summary> [MenuItem("Assets/导出/资源")] static public void ExportNGUI() { // 获取编辑器中选择的项 Object[] objs = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets); // 没有选中项 if (objs.Length == 0) { return; } string _savepath = null; // 判断是多选还是单选 if (objs.Length == 1) { // 获取保存路径 _savepath = EditorUtility.SaveFilePanel("Save Resource", "", objs[0].name, "assetbundle"); if (!_savepath.Equals("")) { // 生成assetbundle BuildPipeline.BuildAssetBundle(objs[0], null, _savepath, m_option, EditorUserBuildSettings.activeBuildTarget); } } else { // 获取保存路径 _savepath = EditorUtility.SaveFolderPanel("Save Resources", "", ""); if (!_savepath.Equals("")) { // 生成assetbundle for (int i = 0; i < objs.Length; ++i) { BuildPipeline.BuildAssetBundle(objs[i], null, _savepath + "/" + objs[i].name + ".assetbundle", m_option, EditorUserBuildSettings.activeBuildTarget); } } } Debug.Log("导出成功,导出路径:" + _savepath); }}
这就是我最开始写的将NGUI预制件打包成Assetbundle的方法.
这个方法看起来没啥问题,使用WWW流加载也没有问题.
但是真的如此吗?
其实我一开始也没有注意到AssetBundle中的资源依赖关系这个问题.
因为我最开始生成的几个Assetbundle0均是ngui演示中的几个预制件,生成出来的大小比较正常一般几K到几十K.
于是我天真的以为就这么用就好了.
直到我开始做几个需要中文文本支持的界面时,才发现我跳进了一个小坑.
TODO:.................
PS:这个Blog嘛 不算啥专业的技术Blog,只是随笔.
0 0
- [Unity3d][NGUI]打包NGUI预制件成Assetbundle 两种思路.
- [Unity3d][NGUI]两种思路解决AssetBundle的依赖关系.
- 将NGUI图集打包成AssetBundle的实现
- Unity3d NGUI 一键打包Texurepacker NGUI图集
- 【Unity3d】调整NGUI的打包工具,让NGUI打包Atlas时,自动获得图片九宫信息。
- Unity NGUI——导入NGUI的两种方法
- Unity3D 使用Texturepacker打包工具制作NGUI(Atlas)图集
- unity3d中NGUI依赖关系打包以及动态加载资源`
- NGUI
- NGUI
- NGUI
- NGUI
- NGUI
- NGUI
- NGUI
- NGUI
- NGUI
- NGUI
- Silverlight学习笔记(5)——读取宿主web.config
- Ubuntu 安装 spark
- Nginx - rewrite 不区分大小写进行匹配
- 常用的20个linux命令
- Oracle拉出在sqlserver建表的语句
- [Unity3d][NGUI]打包NGUI预制件成Assetbundle 两种思路.
- three.js入门5——2014.5.28高亮显示
- Activity生命周期
- MFC如何给控件设置字体
- 反转链表
- VC禁止在任务管理器中结束本进程
- Managing the Activity Lifecycle
- Activity 生命周期
- 安装Ubuntu 14.04后要做的5件事情