Unity5 assetbundle笔记】的更多相关文章

Assetbundle api试验----打包选项试验--------结论:BuildAssetBundleOptions说明:------------None: 把所有以来资源到到一个包里------------UncompressedAssetBundle:不压缩------------DisableWriteTypeTree:禁止写入类型信息, 在webplayer中不可用------------DeterministicAssetBundle:使得每次build后hash保持不变,否则可…
Unity5的AssetBundle修改比较大,所以第一条建议是:忘掉以前的用法,重新来!要知道,Unity5已经没办法加载2.x 3.x的bundle包了…体会一下Unity5 AssetBundle的优势: Cube引用Material,给Cube和Material设置不同的assetBundleName,分开打包,两个包各自只包含自己,各自独立.如需修改Material,只需要重打包Material即可. 对于4.x版本,要么Cube包中会包含这个Material,导致需要重打整个Cube…
一个AssetBundle同时只能加载一次,所以实际使用中一般会伴随着AssetBundle包的管理. 下面是一个简单的AssetBundle管理器,提供了同步和异步加载函数: using UnityEngine; using System.Collections; using System.Collections.Generic; public class AssetBundleManager { public static AssetBundleManager Instace { get {…
http://blog.csdn.net/qq_19399235/article/details/51702964 1:Unity5 资源管理架构设计(2017.4.22版本) 2:Android 热更新(不考虑IOS)根据C#反射实现的代码全更新方案(网上一大坨,我重新整理一下). 一:Unity资源管理架构设计 注意:我配置的Bundle资源文件都放在Assets/ResourceABs文件夹下,并且此文件夹下每个文件夹都对应一个Bundle文件,最终这些文件都打包到StreamingAss…
1.入门: Resources:表示U3D自动将资源打成一个AssetBundle包,所有放在Resources下的文件夹都会打成一个AssetBundle包,资源非常大,Resources文件夹在真机上最大只有2G的内存(专业版会增大内存) AssetBundle包:其实可以看成一个压缩包(有固定格式的),默认情况下使用LZMA压缩方式压缩的资源文件:和压缩ZIP一样的,只不过里面的格式变了 Unity3D引擎为我们提供了三种压缩策略来处理AssetBundle的压缩,即: 1.LZMA格式:…
设置assetBundleName AssetImporter importer = AssetImporter.GetAtPath(p); importer.assetBundleName = x; importer.assetBundleVariant = y; AssetBundleManifest GetAllAssetBundles GetAssetBundleHash GetAllDependencies GetDirectDependencies BuildPipeline Bui…
using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEditor; using System.IO; public class BuildAssetBundle : Editor { //需要打包的路径,根据项目具体需求自己定 private static string assetPath = "AllAssets"; //导出包路径 private stat…
下面代码列出了对于assetbundle资源的常用操作,其中有针对bundle.asset.gameobject三种类型对象的操作,实际使用中尽量保证成对使用. 这一块的操作比较繁琐,但只要使用正确,是可以保证资源完全没有泄露的. using UnityEngine; using System.Collections; public class TestAssetBundle : MonoBehaviour { public string AssetBundleName = "cube1.ass…
Assetbundle为资源包不是资源 打包1:通过脚本指定打包 AssetBundleBuild ab = new AssetBundleBuild                               {                                   assetBundleName =                                       PlayerSettings.bundleVersion + "@" + "zhao…
本文unity版本5.1.3 一.现有的打包教程: 1.http://liweizhaolili.blog.163.com/blog/static/16230744201541410275298/ 阿赵 2.http://docs.unity3d.com/Manual/BuildingAssetBundles5x.html 官方 3.http://www.it165.net/pro/html/201506/43896.html 二.打包遇到的问题 1.资源的依赖关系(依赖关系处理不好,导致资源重…
本文unity版本5.1.3 一.现有的打包教程: 1.http://liweizhaolili.blog.163.com/blog/static/16230744201541410275298/ 阿赵 2.http://docs.unity3d.com/Manual/BuildingAssetBundles5x.html 官方 3.http://www.it165.net/pro/html/201506/43896.html…
本文内容主要翻译自下面这篇文章 https://unity3d.com/cn/learn/tutorials/topics/best-practices/guide-assetbundles-and-resources?playlist=30089  A guide to AssetBundles and Resources 本部分讨论AssetBundle实际应用中一切潜在的问题和解决方案. 1.1    管理加载的资源 在内存敏感的环境里面要严格控制加载Object的大小和数量.当Objec…
转载请标明出处:http://www.cnblogs.com/zblade/ 本文参照unity官网上对于assetBundle的一系列讲解,主要针对assetbundle的知识点做一个梳理笔记,也为后续的资源打包设计做一个基础学习,本文的代码和图片均来自unity官网,详情可以查看Unity的DOCUMENTATION. 一.什么是AssetBundle AssetBundle就像一个ZIP压缩文件,里面存储着不同平台的特殊资源(models/texture/prefabs/materials…
之前说了 “Unity5.x版本AssetBundle打包研究”,没看过的请先看一下:http://www.shihuanjue.com/?p=57 再来看本文,有一定的连接性. 先梳理一下思路: 要加载一个资源A,必须先去加载它的所有依赖资源 要知道这个资源A依赖了哪些资源,必须先去加载AssetBundleManifest 通过AssetBundleManifest对象的GetAllDependencies(A)方法,获取它依赖的所有资源. 依赖资源都加载了,就可以去真正加载资源A了. 注意…
Unity5的AssetBundle打包机制和以前版本不太一样.简单的说就是,只要给你要打包的资源设置一个AssetBundleName ,Unity自身会对这些设置了名字的资源进行打包,如果一个资源依赖了另一个资源.Unity自己会处理依赖关 系,AssetBundleManifest文件就保存着这些资源的依赖关系. 比如一个UI面板.Prefab,依赖了一个图集Atlas,一个字体文件 做个测试: 只给UI面板3.prefab设置AssetBundleName. 打出包来看,别看只有371K…
之前曾经写了一篇博客介绍Unity5的AssetBundle,结果似乎很受关注.不过似乎很多人看了之后都不懂,主要是因为不太明白AssetBundle是什么,它的依赖关系和结构是什么的,就直接想拿代码去用,而导致了很多人说看不懂啊,说什么有错误啊,诸如此类.我想了一下,还是应该从最基础的东西说起,不厌其烦的说,才会省去大家加我QQ问问题了,毕竟平时上班忙,看到一些人把我当翻译词典查,我肯定会态度不好的. 一.什么是AssetBundle 估计很多人只知道Unity的模型之类的东西可以导出成一种叫…
昨天一位朋友在我这里留言,想让我写点Unity5的AssetBundle心得.于是我就看了相关的介绍,和自己确切的做了一次.下面来谈谈所谓的心得. 如果你觉得自己对AssetBundle不熟悉,建议先看看另外一篇文章: http://liweizhaolili.blog.163.com/blog/static/16230744201541410275298/ 先来说说关于旧版本的AssetBundle的事情. 之前我写了一个批量导出AssetBundle的小插件,有朋友留言说我没有解决依赖关系.…
关于AssetBundle AssetBundle可用来将多个资源打包为一个文件,实现动态下载和更新.需要注意的是Unity3D5.x以后对打包方式进行了升级,不用再在依赖关系上伤透脑筋,但是和4.x的版本不再兼容,不过我的这篇笔记是基于4.x的. 打包资源 Unity对AssetBundle仅提供了代码方面的支持,并没有一个菜单或窗口可以直接进行操作,不过这样却给了我们最大的开放度来进行资源打包. 我们看看打包的代码: static function BuildAssetBundle (mai…
最近比较忙,好久没有更新博客了,新项目切换到unity5.x后使用了新的打包机制,在打包shader的时候遇到了一些问题,这里来记录一下吧. 在上一个项目中,我们使用unity4.7,对于shader并没有进行依赖打包,而是由unity打包到了每个用到的AssetBundle中去,其实这样是“很不科学的”.这样不仅增加了ab的总体积,而且还会在运行时产生很多的shader实例,增加很多的显存占用.所以我们决定把自定义的shader打包成一个AssetBundle. 用到的工具: 1.UnityS…
Unity5.3更新了assetbundle的打包和加载api,下面简单介绍使用方法及示例代码. 在Unity中选中一个prefab查看Inspector窗口,有两个位置可以进行assetbundle的标记. 第一个为assetBundleName,如果这里不是None,则这个资源会记录到AssetDatabase里,使用BuildAssetBundles打包时,会自动将AssetBundleName一致的资源打到一个包中. 第二个为Variant,可用于区分不同分辨率的资源.如果在abName…
在上段时间摸索了Unity5的assetbundle用法之后,我在项目里面全面的使用起来,于是发现了一些坑,这里和大家分享一下,顺便说说我是怎样解决的. 首先是图集打包的问题.这个问题在unity5.2版本已经解决了,但在5.2之前确实是一个bug来的.具体的表现是,你把同一个图集标签的散图打包成同一个assetbundle时,这个assetbundle既包含了图集的大图,也包含了散图本身,变成了重复打包,容量暴增.这个问题困扰了我一小段时间,后来尝试着下载了个unity5.2,就没有这个问题了…
一.什么是AssetBundle 估计很多人只知道Unity的模型之类的东西可以导出成一种叫做AssetBundle的文件,然后打包后可以在Unity程序运行的时候再加载出来用.那么AssetBundle是一个什么样的东西呢? 其实AssetBundle只是一种使用LZMA压缩方式压缩的资源文件.具体LZMA是什么请百度,你可以理解成就是一种压缩文件就行了,至于它的后缀名是什么,一点关系都没有,你可以自己定. AssetBundle打包的时候,你可以指定一个mainAsset,那么加载完之后就可…
using UnityEngine; using System.Collections; using UnityEditor; /// <summary> /// 脚本位置:Editor文件夹下 /// 脚本功能:打包 /// </summary> public class CreateAssetBundle:Editor { // 打包unity场景文件 [MenuItem("Assets/Build AssetBundle Scene")] static v…
路径统一 在Android上加载StreamingAssets文件夹下的AssetBundle文件,首先需要对加载地址进行处理,注意PC.Android和IOS的地址不一致需要针对不同的平台不同的处理,通用代码如下: //统一不同平台下 StreamingAssets 路径 public static readonly string STREAMING_ASSETS_PATH = #if UNITY_ANDROID "jar:file:///" + Application.dataPa…
前面我们研究了AssetBundle的打包与加载,现在我们来了解下如何在项目中根据版本号更新内容. 最最重要的一点,细心的朋友应该看到了在加载AssetBundle的MrcAssetManager类中,我们使用的WWW加载对象可以使用WWW.LoadFromCacheOrDownload方法,其中第一个参数是资源的url,第二个参数则是我们的要加载的版本号,我们将通过这个版本号决定是不是要重新从服务器上下载.因此,我们需要在本地和服务器上分别建立一个版本配置文件,里面包含了版本号.资源大小.更新…
上次我们进行了AssetBundle打包,现在我们还把打包的资源加载到我们的游戏中.在加载之前,我们需要把打包好的Bundle包裹放到服务器上,如果没有,也可以使用XAMPP搭建本地服务器. 加载的AssetBundle文件是放在内存中的,所以如果没有很好的管理,会使游戏性能大打折扣,因此,我们在这里最好使用缓存策略. 我们的AssetBundle: using System; using UnityEngine; namespace MrCAssetFramework { public sea…
资源管理是游戏开发的重要环节,Unity中使用AssetBundle可以非常方便地帮我们打包和更新游戏内容,在5系列中,AssetBundle更是方便好用,现在让我们先进行打包吧. 刚说了,5系列打包非常方便,细心的同志可能已经发现,在右下角多出了个AssetBundle标签工具栏,这使用得我们在选择要打包的文件时,不必再像4系列中一样要在Editor运行库脚本中写一堆取得对象的代码了.那么,这个工具栏是怎么帮我们解决问题的呢?很简单,选中我们的需要的打包的资源(包括场景哦),然后在工具栏编辑和…
转载请标明出处:http://www.cnblogs.com/zblade/ 0x01 目的 在实际的游戏开发中,对于游戏都需要进行打补丁的操作,毕竟,测试是有限的,而bug是无法预估的.那么在手游中,unity对于打补丁的方式就是提供热更新.本文主要针对assetbundle的热更新流程进行设计探讨,抛砖引玉,希望有更优的解决方案. 0x02 基本流程 在实际的游戏开发中,常常会被assetbundle的热更新折腾的无法入眠,每次在进行热更新的时候都需要反复测试,因为这牵涉着实际的上线游戏运行…
AssetBundle 什么是AssetBundle? AssetBundle是把一些资源文件或场景文件,以某种方式保存在一个文件中.一个AssetBundle可以包含模型.材质.图片或场景等.但是AssetBundle不能包含脚本文件.(脚本打包时需要编译,界面逻辑的热更新依赖Lua) AssetBundle主要用于做热更新使用.   如何创建AB包 第一个参数: ----无 ----新建 ----删除未使用的AssetBundle 第二个参数: ----后缀:做资源高清和标清的区分,不能做资…
1.概览 Unity3D 5.0版本之后的AssetBundle机制和之前的4.x版本已经发生了很大的变化,一些曾经常用的流程已经不再使用,甚至一些老的API已经被新的API所取代. 因此,本文的主要内容就是分析5.X版本的AssetBundle机制(包括创建资源包.压缩资源包.加载资源包和从资源包中加载/卸载资源等几个方面)及其关键的API使用方式并总结一些对项目的建议(例如根据不同的情景,选择不同的包体加载方案等等). 2.AssetBundle系统的新功能 2.1.AssetBundle系…