由于assetbundle打包存在依赖的问题,所有资源要进行合理的分包

零、代码

代码都放在本地,包括NGUI等插件的代码、shader代码(内置的shader无需打包,而自定义的shader还是需要打包,否则每个依赖这个shader的游戏物体被打包的时候都会将shader代码打包到自己的assetbundle中去)

零点五、自定义shader

因为自定义的shader在启用CollectDependencies 打包时也会被分别打包进assetbundle中,所以为了避免空间的浪费,可以考虑将自定义shader打包成一个基础依赖包

一、单位

单位的模型贴图、动画一起打包

二、UI

1、公用图集一起打包(UIAtlas.prefab、UIAtlas.mat、UIAtlas.png)在进入游戏的时候加载并且常驻内存

2、(依赖公共图集)面板图集和面板预设一起打包  在切换场景的时候加载场景所需要的面板图集

三、场景  

1场景公用的贴图和预设一起打包

一种风格的场景有一个公用依赖资源包

2、场景独有的贴图和预设,以及场景的光照贴图、寻路数据一起和场景文件打包

切换场景的时候先加载场景公用包,在加载场景的时候再loading场景先加载公用包、再加载场景本身的包,然后Application.LoadLevelAsync切场景

公共资源包打包的使用可以使用BuildAssetBundle     而场景打包使用 BuildStreamedSceneAssetBundle

四、特效

特效单独打包,似乎会造成包很多的结果,还没有想到特效好的解决方案

ps:打包依赖资源的时候要使用

BuildAssetBundleOptions.CollectDependencies 否则引用关系会丢失

unity3d assetbundle打包策略的更多相关文章

  1. Unity3D AssetBundle相关

    Unity3D AssetBundle相关 首先,先看一下原理吧  Unity3D研究院之Assetbundle的原理(六十一) 其次,接着往下看:Unity3D研究院之Assetbundle的实战( ...

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

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

  3. [Unity3D] 5.0 图集合并扩展工具,用于解决UGUI与AssetBundle打包造成资源包过大的问题

    [Unity3D] 5.0 图集合并扩展工具,用于解决UGUI与AssetBundle打包造成资源包过大的问题 2017年07月05日 15:57:44 阅读数:1494 http://www.cpp ...

  4. AssetBundle打包

    为热更新打基础(xlua\tolua) 素材.源码链接:http://www.sikiedu.com/course/74/task/1812/show 一.AssetBundle的定义和作用 1,As ...

  5. Unity5 AssetBundle 打包以及加载

    using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEditor; us ...

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

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

  7. AssetBundle打包详解

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

  8. 【厚积薄发】Crunch压缩图片的AssetBundle打包

    这是第133篇UWA技术知识分享的推送.今天我们继续为大家精选了若干和开发.优化相关的问题,建议阅读时间10分钟,认真读完必有收获. UWA 问答社区:answer.uwa4d.com UWA QQ群 ...

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

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

随机推荐

  1. dataset to list

    http://www.c-sharpcorner.com/UploadFile/ee01e6/different-way-to-convert-datatable-to-list/ http://ww ...

  2. redis永久化存储

    redis持久化存储 原因:redis是存放在内存中的,断电会导致数据丢失解决方法:把redis数据进行持久性存储,将其存储在磁盘中. 存储方式:1.RDBRDB中文名为快照/内存快照,Redis按照 ...

  3. js常用内置对象

    数组Array 1创建方式 var colors = ['red','color','yellow']; var colors2 = new Array(); 2数组的赋值 var arr = []; ...

  4. 遇到的问题&思考

    MYSQL需要批量修改表前缀: http://jingyan.baidu.com/article/11c17a2c742561f446e39d2f.html Select CONCAT( 'ALTER ...

  5. 500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list

    出错原因:用户没有变更根目录的权限. ftp用户默认的根目录是/home/ftp,如果要切换登陆目录,需要给予权限 解决方法: 第一步, 打开/etc/vsftpd/vsftpd.conf,做如下配置 ...

  6. python tkinter chk

    视频过程中的练习, 可以在python2.7下运行. 001: hello,world: 1 2 3 4 5 6 from Tkinter import Label, Tk root = Tk() t ...

  7. Linux的JDK配置

    1.下载jdk-7u1-linux-i586.rpm2.cd 到 jdk-7u1-linux-i586.rpm 所在的目录3.su 获得 root 权限4.执行安装命令: rpm -ivh jdk-7 ...

  8. tensorflow 入门

    1.  tensorflow 官方文档中文版(下载) 2.  tensorflow mac安装参考 http://www.tuicool.com/articles/Fni2Yr 3. 源码例子目录 l ...

  9. ADO.net之综合演练

    using ConsoleApplication4.App_Code; using System; using System.Collections.Generic; using System.Lin ...

  10. 5. MYSQL问题:Access denied for user 'root'@'localhost' (using password:YES)

    开发Web项目时,连接MYSQL数据库,出现问题:Access denied for user 'root'@'localhost' (using password:YES).       解决方案: ...