[Unity AssetBundle]Asset资源处理】的更多相关文章

什么是AssetBundle 在很多类型游戏的制作过程中,开发者都会考虑一个非常重要的问题,即如何在游戏运行过程中对资源进行动态的下载和加载.因此,Unity引擎引入了AssetBundle这一技术来满足开发者的需求. AssetBundle是Unity引擎提供的一种用户存储再远的文件格式,它可以存储任意一种Unity引擎能够识别的资源,例如模型.纹理.音频.动画甚至整个场景. 同时,AssetBundle也可以包含开发者自定义的二进制文件,只需要将二进制文件的扩展名改成.bytes,Unity…
一.问题 首先,这里说明一下,我这边的GameObject有点笼统,就是表达的是游戏中的具体实例. 二.概念 1)Asset是什么? 游戏中具体的资源,像texture,mesh,material,shader,script等,实实在在的游戏项目文件夹中所需要堆放的资源.比如,var obj = Resource.Load<GameObject>("Prefabs/testItem"),这个obj就是Asset. 2)GameObject是什么? var gameItem=…
--刚刚做完一个xlua的的热更项目,对AssetBundle资源分类总结一下.纯理论,闲谈知识,要是有建议,尽管提 ,不掺杂代码. --这里说说,AB是如何打包,如果下载,如何加载. 1.关键词理解:有依赖(公共),无依赖,常驻(使用频率),非常驻. 所谓依赖,无依赖. 画红圈的就是有依赖关系的,但是Unity中,如何知道有哪些资源有依赖关系呐. 一般,我们每次Build后会自动生成AndroidManifest.xml,这里面就详细叙述了资源之间的 依赖关系. 2.下载资源? 下载资源的话,…
using UnityEngine;using System.Collections;using UnityEditor; /// <summary>/// 简单资源打包Editor/// </summary>public class BuildPacketEditor : EditorWindow { [MenuItem("Tools/Packet/BuildAssetBundle-Android")] public static void ExportAnd…
1.本地资源加载 1).建立Editor文件夹 2).建立StreamingAssets文件夹和其Windows的子文件夹 将下方第一个脚本放入Editor 里面 脚本一  资源打包AssetBundle的所有标签资源 using UnityEngine; using UnityEditor; public class Tools { [MenuItem("Tools/buildAB")] //编辑器扩展 public static void Building() { Debug.Lo…
1.入门: Resources:表示U3D自动将资源打成一个AssetBundle包,所有放在Resources下的文件夹都会打成一个AssetBundle包,资源非常大,Resources文件夹在真机上最大只有2G的内存(专业版会增大内存) AssetBundle包:其实可以看成一个压缩包(有固定格式的),默认情况下使用LZMA压缩方式压缩的资源文件:和压缩ZIP一样的,只不过里面的格式变了 Unity3D引擎为我们提供了三种压缩策略来处理AssetBundle的压缩,即: 1.LZMA格式:…
这篇文章从AssetBundle的打包,使用,管理以及内存占用各个方面进行了比较全面的分析,对AssetBundle使用过程中的一些坑进行填补指引以及喷!   AssetBundle是Unity推荐的资源管理方式,官方列举了诸如热更新,压缩,灵活等等优点,但AssetBundle的坑是非常深的,很多隐藏细节让你使用起来需要十分谨慎,一不小心就会掉入深坑,打包没规划好,20MB的资源“压缩”到了30MB,或者大量的包导致打包以及加载时的各种低效,或者莫名其妙地丢失关联,或者内存爆掉,以及各种加载失…
转自:http://www.cnblogs.com/ybgame/p/3973177.html 这篇文章从AssetBundle的打包,使用,管理以及内存占用各个方面进行了比较全面的分析,对AssetBundle使用过程中的一些坑进行填补指引以及喷!   AssetBundle是Unity推荐的资源管理方式,官方列举了诸如热更新,压缩,灵活等等优点,但AssetBundle的坑是非常深的,很多隐藏细节让你使用起来需要十分谨慎,一不小心就会掉入深坑,打包没规划好,20MB的资源“压缩”到了30MB…
每个需要进行资源管理的类都继承自IAssetManager,该类维护它所使用到的所有资源的一个资源列表.并且每个资源管理类可以重写其资源引用接口和解引用接口. 每个管理器有自己的管理策略,比如SceneManager对场景背景图可以保留最近使用的几张,使用LRU算法维护当前内存中的贴图张数等... using UnityEngine; using System.Collections; using System.Collections.Generic; // 和资源有关的管理器都将继承自此类 p…
上一章:[Unity3D技术文档翻译]第1.8篇 AssetBundles 问题及解决方法 本章原文所在章节:[Unity Manual]→[Working in Unity]→[Advanced Development]→[AssetBundles]→[Unity Asset Bundle Browser tool] Unity AssetBundle 浏览管理工具(Unity Asset Bundle Browser tool) 注意:这个工具是 Unity 标准功能之外的附加功能.想要使用…
Unity AssetBundle爬坑手记 - 夜阑卧听风吹雨 时间 2014-09-15 16:55:00  博客园精华区原文  http://www.cnblogs.com/ybgame/p/3973177.html 这篇文章从AssetBundle的打包,使用,管理以及内存占用各个方面进行了比较全面的分析,对AssetBundle使用过程中的一些坑进行填补指引以及喷! AssetBundle是Unity推荐的资源管理方式,官方列举了诸如热更新,压缩,灵活等等优点,但AssetBundle的…
Unity3D中的资源的处理种类 Unity中的资源资源的处理种类大致分为:Resources.StreamingAssets.AssetBundle Resources 是作为一个Unity的保留文件夹出现的,也就是如果你新建的文件夹的名字叫Resources,那么里面的内容在打包时都会被无条件的打到发布包中. 特点: 只读,即不能动态修改.所以想要动态更新的资源不要放在这里. 会将文件夹内的资源打包集成到.asset文件里面.因此建议可以放一些Prefab,因为Prefab在打包时会自动过滤…
Unity AssetBundle 踩坑记录 editor 下选择什么平台的 ab 加载 Material doesn't have a color property '_Color' UnityEditor.DockArea:OnGUI() Material doesn't have a float or range property 'PixelSnap' UnityEditor.DockArea:OnGUI() 因为editor模式下所有的 platform ab 都是可以用的 并且打 a…
http://blog.csdn.net/akof1314/article/details/38022263 从雨松的博文<Unity3D研究院之mac上从.ipa中提取unity3D游戏资源(六十六)>可以学到提取Unity的游戏资源,其中有用到一个工具:PVRTexTool 因为这个工具的官网不好下载,故将其上传到CSDN,下载地址:http://download.csdn.net/detail/akof1314/7660209   提取出来的资源,其中的ktx资源,用PVRTexTool…
做unity 项目也有一段时间了,从unity项目开发和学习中也遇到了很多坑,并且也从中学习到了很多曾经未接触的领域.项目中的很多功能模块,从今天开始把自己的思路和代码奉上给学渣们作为一份学习的资料.如果学长们看到哪里写的不好欢迎吐槽并给予更好的解决方案.好了话也不多说了今天给大家亮出的是excel 数据解析和在unity项目中的应用. *导入excel,解析xml,生成c#数据表,生成asset数据文件  *原理 在导入xml文件的时候通过XmlReader读取xml文件  *把需要的内容按照…
转载请标明出处:http://www.cnblogs.com/zblade/ 0x01 目的 在实际的游戏开发中,对于游戏都需要进行打补丁的操作,毕竟,测试是有限的,而bug是无法预估的.那么在手游中,unity对于打补丁的方式就是提供热更新.本文主要针对assetbundle的热更新流程进行设计探讨,抛砖引玉,希望有更优的解决方案. 0x02 基本流程 在实际的游戏开发中,常常会被assetbundle的热更新折腾的无法入眠,每次在进行热更新的时候都需要反复测试,因为这牵涉着实际的上线游戏运行…
一.创建AssetBundle 1.在资源的Inspector视图下有一个AssetBundle的UI,第一个选项表示AssetBundle名称,第二个用于设置AssetBundle Variant,主要用于在不同版本资源的使用和动态替换AssetBundle. 2.在Unity的Assets文件夹下创建Editor文件夹,创建一个C#脚本,用于创建AssetBundle,代码如下: using UnityEngine; using UnityEditor; public class TestA…
Unity批量打AB包 为了资源热更新,Unity支持将所有资源打包成AssetBundle资源,存放在SteamingAssets文件夹中: 在项目发布之前,需要将所有资源打包成.ab文件,动态加载: 在项目更新时,替换.ab资源文件,即可完成热更新: ab文件在加载时,会多一步解压缩的过程,会增加性能消耗: 打包操作属于编辑器拓展,所有脚本放在Eidtor文件夹下: 1.PathTool 根据不同平台,获取ab输出和输入路径: 不同平台的输入输出路径不相同,ios,android,windo…
下面代码列出了对于assetbundle资源的常用操作,其中有针对bundle.asset.gameobject三种类型对象的操作,实际使用中尽量保证成对使用. 这一块的操作比较繁琐,但只要使用正确,是可以保证资源完全没有泄露的. using UnityEngine; using System.Collections; public class TestAssetBundle : MonoBehaviour { public string AssetBundleName = "cube1.ass…
如果之前在Asset Store商店下载过资源包,结果下次用的时候找不到了,不用急,其实Unity把它自动保到下面这个目录了,最后一个文件夹名与版本号有关,找到前面的即可. C:\Users\Administrator\AppData\Roaming\Unity\Asset Store-5.x…
资源储备 本文针对mobile原型开发阶段的资源收集 在做移动端的开发时,当有灵感想做些东西时,若是此时缺少美术资源和可用的脚本,此刻会有些纠结,今天在Assets Store上Mark了一些移动端开发的原型. 1. Prototype Textures(原形贴图) 地址:Prototype Textures(贴图) 功能简介 包括几十种贴图,各种材质应有尽有. 2. MUI (Mobile User Interface)[移动平台UI接口] 地址:MUI (Mobile User Interf…
当前使用的是unity2018.2.6版本. 生成AssetBundle 这个版本生成AssetBundle有两种方式,一种是在资源的Inspector面板下边配置AssetBundle名称,然后调用下面第一种方式打AssetBundle包.第二种方式是使用下面第二个API,在AssetBundleBuild数组中配置资源的路径和AssetBundle名称. public static AssetBundleManifest BuildAssetBundles(string outputPath…
string path = @"AssetBundles/scene/cubewall.ab"; string cacheDownloadPath = @"file://D:\UnityWorkSpace\FifthMonthWork_Groups\AssetBundle_Demo\AssetBundles\scene\cubewall.ab"; string tempWebAddress = @"http://localhost/AssetBundles…
脚本应该放在Editor文件夹下 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; public class BuildAssetBundle { [MenuItem("BuildAB/BuildABToWin64/LZMA(体积小,加载慢)")] private static void BuildABsToWin64_LZMA() { //…
using UnityEngine; using System.Collections; using System.IO; public class LoadResource : MonoBehaviour { //assetbundle 的后缀实际上可以随意自定义的 string PathAssetBundle = "D:/LgsTest/ResourcePath/Cube.assetbundle"; void Start() { //StartCoroutine(LoadFromM…
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; public class ExportAssetBundles : MonoBehaviour { //在Unity编辑器中添加菜单 [MenuItem("Assets/Build AssetBundle From Selection")] static void ExportResource…
想要压缩包大小,首先得知道打包出来的各个资源的大小,明确知道哪些资源占用大,可以通过如下操作打开Editor.log(可能需要先输出一遍安卓包) 1.在Unity Console界面右上角点开Open Editor Log 2.压缩包的办法就是把每个图片都设置packing tag,然后Sprite packer会自动将图片合成图集power of Two,也就是2的次方,unity对于2的次方的素材能提供ETC压缩,压缩大小还是挺可观的,这也是用Sprite Packer打包图片的原因.测试下…
Unity的AssetStore下载package的时候经常抽风,而且开了代理工具的全局代理依然无效. 检索网络后得知,这是因为它下载的时候不检测IE代理设置,而是取环境变量中HTTPS_proxy和HTTP_proxy的值,所以添加这两个变量并指定其为你的代理服务地址就可以了. 具体步骤: 打开 系统属性->高级->环境变量 新建 HTTPS_proxy 和 HTTP_proxy 系统变量,设置其为你的代理服务地址 需要注意的是设置完成后可能需要重启Unity才会生效.…
untiy打包资源是不可见的,在代码中须要www载入去提取,当然也有别的方法去提取打包资源.这对于非常久远的数据打包资源来说是个非常好的方法,由于太久远了就找不到了,仅仅能拿打包资源去提取,之前我写过一篇3.5.6打包资源的提取.可是仅仅能提取出.obj文件,http://blog.csdn.net/itolfn/article/details/22056163, 以下另一种方法,不知哪位大神写的挺好用的,就是用disunity去提取.https://github.com/ata4/disuni…
一,背景 最近发现项目的动画文件有点大,不光内存大,而且文件也很大,所以从这2个方面下手处理 二,动画文件大小优化 为了优化动画文件大小,我们可以先分析下文件,Ctrl+D将动画文件从FBX拷贝出来,文本打开,如下图: 可以发现,动画文件基本上都是关键帧数据,分析后我们可以有以下的优化方法. 1,减少骨骼: 我们知道一个骨骼是有pos(x,y,z),rotation(x,y,z,w),scale(x,y,z)3个纬度,一共会有3+4+3=10个曲线,少一根骨骼数据,就会少很多的关键帧数据,这会直…