[Unity3d][NGUI]打包NGUI预制件成Assetbundle 两种思路.
http://www.58player.com/blog-2537-85030.html
接上文,项目中因为需要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");
// 生成assetbundle
BuildPipeline.BuildAssetBundle(objs[0], null,
_savepath,
m_option,
EditorUserBuildSettings.activeBuildTarget);
}
else
{
// 获取保存路径
_savepath = EditorUtility.SaveFolderPanel("Save Resources", "", "");
// 生成assetbundle
for (int i = 0; i < objs.Length; ++i)
{
BuildPipeline.BuildAssetBundle(objs[i], null,
_savepath + "/" + objs[i].name + ".assetbundle",
m_option,
EditorUserBuildSettings.activeBuildTarget);
}
}
}
}
这就是我最开始写的将NGUI预制件打包成Assetbundle的方法. 这个方法看起来没啥问题,使用WWW流加载也没有问题. 但是真的如此吗?
其实我一开始也没有注意到AssetBundle中的资源依赖关系这个问题.
因为我最开始生成的几个Assetbundle0均是ngui演示中的几个预制件,生成出来的大小比较正常一般几K到几十K.
于是我天真的以为就这么用就好了.
直到我开始做几个需要中文文本支持的界面时,才发现我跳进了一个小坑.
TODO:.................
PS:这个Blog嘛 不算啥专业的技术Blog,只是随笔.
[Unity3d][NGUI]打包NGUI预制件成Assetbundle 两种思路.的更多相关文章
- 使用 CUDA 进行计算优化的两种思路
前言 本文讨论如何使用 CUDA 对代码进行并行优化,并给出不同并行思路对均值滤波的实现. 并行优化的两种思路 思路1: global 函数 在 global 函数中创建出多个块多个线程对矩阵每个元素 ...
- C++关于数字逆序输出的两种思路,及字符串逆序输出
C++关于数字逆序输出的两种思路,及字符串逆序输出 作者:GREATCOFFEE 发布时间:NOVEMBER 15, 2012 分类:编程的艺术 最近在跟女神一起学C++(其实我是不怀好意),然后女神 ...
- php 冒泡排序的两种思路以及优化
php冒泡排序,两种思路,时间复杂度都是O(n^2),当然最优的时间复杂度就是O(n),以下说的都是正序排列(倒序的话,把内层循环的大于号换成小于号就好了) 第一种冒泡排序 思路就是把第一个数跟所有的 ...
- 第七篇:使用 CUDA 进行计算优化的两种思路
前言 本文讨论如何使用 CUDA 对代码进行并行优化,并给出不同并行思路对均值滤波的实现. 并行优化的两种思路 思路1: global 函数 在 global 函数中创建出多个块多个线程对矩阵每个元素 ...
- Java实现快排+小坑+partition的两种思路
在做一道剑指Offer的题的时候,有道题涉及到快排的思路,一开始就很快根据以前的思路写出了代码,但似乎有些细节不太对劲,自己拿数据试了下果然.然后折腾了下并记录下一些小坑,还有总结下划分方法parti ...
- 点击页面div弹窗以外隐藏的两种思路
在本文为大家介绍两种思路实现点击页面其它地方隐藏该div,第一种是对document的click事件绑定事件处理程序.. 第一种思路分两步 第一步:对document的click事件绑定事件处理程序, ...
- 把JSON数据载入到页面表单的两种思路(对easyui自带方法进行改进)
#把JSON数据载入到页面表单的两种思路(对easyui自带方法进行改进) ##背景 项目中经常需要把JSON数据填充到页面表单,一开始我使用easyui自带的form load方法,觉得效率很低,经 ...
- Go开发Struct转换成map两种方式比较
最近做Go开发的时候接触到了一个新的orm第三方框架gorose,在使用的过程中,发现没有类似beego进行直接对struct结构进行操作的方法,有部分API是通过map进行数据库相关操作,那么就需要 ...
- golang 开发 Struct 转换成 map 两种方式比较
原文链接:https://www.jianshu.com/p/81c4304f6d1b 最近做Go开发的时候接触到了一个新的orm第三方框架gorose,在使用的过程中,发现没有类似beego进行直接 ...
随机推荐
- JS-用js的for循环实现九九乘法表以及其他算数题等
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>f ...
- curl方式创建elasticsearch的mapping
curl方式创建elasticsearch的mapping curl -XPUT 'http://192.168.1.105:9200/bank/item2/_mapping' -d '{ " ...
- win7 中maven安装
1. 下载Maven 下载地址为:http://maven.apache.org/download.html,现在最高的版本为3.0.2,在win7下载文件为:apache-maven-3.0.2-b ...
- 用arp-scan扫描局域网IP地址
1,在安装之前需要安装yum install -y libpcap libpcap-devel如果没有安装yum工具需要用rpm安装如下软件包[root@oradba arp-scan-1.8]# y ...
- Java web 使用页面压缩
借助类,相关依赖: <!-- https://mvnrepository.com/artifact/net.sourceforge.pjl-comp-filter/pjl-comp-filter ...
- Java I/O流体系
- mysql之用户授权
授权命令: 1.全部权限:grant all on *.* to user@192.168.10.2 identified by "pass": 2.部分权限:grant sele ...
- OC-Category
分类-Category 1. 基本用途 如何在不改变原来类模型的前提下,给类扩充一些方法?有2种方式 l 继承 l 分类(Category) 2. 格式 分类的声明 @interface类名 ...
- MVC学习笔记一
主要是为了复习昨天所学习到的MVC的基础内容,因为昨天还在申请博客,所以今天补上. 目前主要学习资料是<ASP.NET MVC4 Web 编程> 首先先来一个MVC请求的路径的流程说明. ...
- alter和alert防错?
在js中这个错误经常容易犯, 那就是 alter 和 alert这两个单词经常写错. 导致js出错, 而不执行! 注意: 在js脚本中, 是 alert 弹出提示框, 而不是 alter ,js中没有 ...