资源管理是游戏开发的重要环节,Unity中使用AssetBundle可以非常方便地帮我们打包和更新游戏内容,在5系列中,AssetBundle更是方便好用,现在让我们先进行打包吧。

刚说了,5系列打包非常方便,细心的同志可能已经发现,在右下角多出了个AssetBundle标签工具栏,这使用得我们在选择要打包的文件时,不必再像4系列中一样要在Editor运行库脚本中写一堆取得对象的代码了。
那么,这个工具栏是怎么帮我们解决问题的呢?很简单,选中我们的需要的打包的资源(包括场景哦),然后在工具栏编辑和选择对应的标签。左边的AssetBundle是我们要打包的文件存放目录和名字,其中,在目录和名字之间用“/”分开,如“scenes/loaderscene.unity3d”,表示scenes目录下loaderscene.unity3d Bundle文件。后面还有一个Variants变量标签,其实就和后缀差不多(个人理解,有更好的使用请多多指教),但个人一般不推荐使用,而是像前面一样,直接写上后缀更直观方便。如下图:

咱把需要打包的资源都设置好相应的标签,建议至少有一个场景和一个Prefab,以便我们后面测试。
OK,准备工作做好了,一定小代码还是需要的,建立一个Editor文件夹,并建立脚本BuildAssetBundleEditor,内容如下:

 1 using UnityEngine;
2 using System.Collections;
3 using UnityEditor;
4 using System.IO;
5
6
7 ///<summary>
8 /// 打包编辑器
9 /// </summary>
10
11 public class MrCBuildAssetBundleEditor : EditorWindow {
12
13
14    /// <summary>
15 /// 获取不同平台下的包裹存储路径
16 /// </summary>
17
18 public static string GetAssetBundlePath(BuildTarget target)
19 {
20 string opp = "";
21
22 opp += Application.persistentDataPath;
23 opp += "AssetBundles/";
24
25 switch (target) {
26 case BuildTarget.iOS:
27 {
28 opp += "iOS/";
29 break;
30 }
31 case BuildTarget.StandaloneOSXUniversal:
32 {
33 opp += "MacOS/";
34 break;
35 }
36 default:
37 {
38 opp += "Others/";
39 break;
40 }
41 }
42
43 //当在硬盘目录结构里不存在该路径时,创建文件夹
44 if (!Directory.Exists(opp))
45 {
46 Directory.CreateDirectory (opp);
47 }
48
49 return opp;
50 }
51
52 [MenuItem("MrCAssetBundles/Build")]
53 public static void CustomBuildAssetBundle()
54 {
55 //包裹存储的路径...
56 string outputPath = MrCBuildAssetBundleEditor.GetAssetBundlePath(EditorUserBuildSettings.activeBuildTarget);
57
58 //输出路径
59 Debug.Log (outputPath);
60
61 //打包过程..
62 BuildPipeline.BuildAssetBundles(outputPath);
63 }
64 }

OK,打包完成后,可以到persistent目录下查看Bundle文件,其中manifest后缀的信息文件可以用文本工具打开查看依赖关系等

Unity5系列资源管理AssetBundle——打包的更多相关文章

  1. Unity5系列资源管理AssetBundle——加载

    上次我们进行了AssetBundle打包,现在我们还把打包的资源加载到我们的游戏中.在加载之前,我们需要把打包好的Bundle包裹放到服务器上,如果没有,也可以使用XAMPP搭建本地服务器. 加载的A ...

  2. Unity5系列资源管理AssetBundle——更新实现

    前面我们研究了AssetBundle的打包与加载,现在我们来了解下如何在项目中根据版本号更新内容. 最最重要的一点,细心的朋友应该看到了在加载AssetBundle的MrcAssetManager类中 ...

  3. Unity5.x版本AssetBundle打包研究

    Unity5的AssetBundle打包机制和以前版本不太一样.简单的说就是,只要给你要打包的资源设置一个AssetBundleName ,Unity自身会对这些设置了名字的资源进行打包,如果一个资源 ...

  4. Unity5.X 新版AssetBundle打包控制

    一.什么是AssetBundle 估计很多人只知道Unity的模型之类的东西可以导出成一种叫做AssetBundle的文件,然后打包后可以在Unity程序运行的时候再加载出来用.那么AssetBund ...

  5. Unity5版本的AssetBundle打包方案之打包Scene场景

    using UnityEngine; using System.Collections; using UnityEditor; /// <summary> /// 脚本位置:Editor文 ...

  6. Unity5.x版本AssetBundle加载研究

    之前说了 “Unity5.x版本AssetBundle打包研究”,没看过的请先看一下:http://www.shihuanjue.com/?p=57 再来看本文,有一定的连接性. 先梳理一下思路: 要 ...

  7. Unity5 AssetBundle打包加载及服务器加载

    Assetbundle为资源包不是资源 打包1:通过脚本指定打包 AssetBundleBuild ab = new AssetBundleBuild                         ...

  8. Unity3d 5.x AssetBundle打包与加载

    1.AssetBundle打包 unity 5.x版本AssetBundle打包,只需要设置好AssetBundle的名称后,unity会自动将其打包,无需处理其他,唯独需要做的是设置好个AssetB ...

  9. AssetBundle打包详解

    Unity5.x AssetBundle打包详解 在网上查看了很多资料,想详细搞清楚AssetBundle的原理.以实现符合项目需求的打包工具和加载逻辑 1. AssetBundle是什么? Asse ...

随机推荐

  1. php学习笔记——文件(1)

    一.include和require 服务器端包含 (SSI) 用于创建可在多个页面重复使用的函数.页眉.页脚或元素. include (或 require)语句会获取指定文件中存在的所有文本/代码/标 ...

  2. Linux学习-文件和目录管理 

    Linux文件和目录管理  文件系统架构  1.Linux文件系统具有层级性     1)文件或者目录起始于根目录"/"成为树状结构    2)最顶层由/开始   2 ...

  3. Amdahl's Law

    Amdahl's Law 程序可能的加速比取决于可以被并行化的部分. 如果没有可以被并行化的部分,则P=0,speedup=1,no speedup. 如果全部可以被并行化,P=1,speedup i ...

  4. shrio初体验(2)Realm

    Realm:域,Shiro从从Realm获取安全数据(如用户.角色.权限),就是说SecurityManager要验证用户身份,那么它需要从Realm获取相应的用户进行比较以确定用户身份是否合法:也需 ...

  5. 解决Intellij Idea里tomcat启动报The JRE_HOME environment variable is not defined correctly的错误

    创建一个maven项目后想启动tomcat测试一下新建的maven项目,结果一直报The JRE_HOME environment variable is not defined correctly, ...

  6. ps遇到的问题及笔记

    1. ps软件图层面板中不显示缩略图 打开软件后,任意打开一个文件,再打开图层面板(直接按F7也可),点图层面板右上角的小三角后有一个新的面板出现,点下面的"面板选项"弹出一个面板 ...

  7. 利用before、after制作提示框

    提示框由两部分组成,框+箭头,箭头则利用伪元素before.after写成. 根据提示框的样式可以看出,上面的箭头由两部分组成:灰色大箭头+蓝色小箭头,蓝色嵌套在灰色里面,于是箭头就有了边框,整体搭配 ...

  8. MFC多线程各种线程用法 .

    http://blog.csdn.net/qq61394323/article/details/9328301 一.问题的提出 编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleTh ...

  9. 用yum源安装Nginx

    1.在/etc/yum.repos.d/目录下创建一个源配置文件nginx.repo: cd /etc/yum.repos.d/ vi nginx.repo 填写如下内容: [nginx] name= ...

  10. jetbrain phpstorm 增加或删除一个 live template

    打开\.PhpStorm2016.2\config\templates 将xml文件放入该文件夹中 重启! 单独: setting -> editor -> Live Template +