基于Unity5.0系统的新打包方式 [第一讲]

前言

在使用新的Unity3d 5.0后,我们发现在Inspector面板上多了一个东西

这里主要有两个可以设置的选项AssetBundleVariant

进过测试,发现5.01版本在AssetBundle方面存在bug,幸好在5.02版本进行了修复,所以在5.02以后的版本才可以放心使用,不然会出现贴图丢失等问题

AssetBundle  在这里指的是我们打包后会生成的包名,可以有后缀,比如ui.assetbundle,ui.uity3d等等,但是我们要注意的是,使用的时候名称要对应起来.

点击菜单里面的New...  我们可以创建出一个新的assetbundle.我们也可以把好几个Prefabs设置 在一个AssetBundle里面,方法很简单,就是选中你要设置的文件,然后

在菜单里面统一设置为你想的名字.比如我的项目里面有好几个元素是打算打包在ui这个包里的,就可以这样设置.

通常随着项目里设置的AssetBundle越来越来,管理起来会比较不方便,比如我想知道ui这个包里面有什么文件的时候,可以点击AssetBundle中的选项,

当然是在当前选项是ui的情况下,点击下面的Filter Selecte Name ,系统就会进行过滤,还有一个最直接的方法,就是在搜索栏里直接输入:

在以往的版本,我们都是使用WWW,这个东西来加载我们打包的资源,接口也是比较简单

    public static WWW LoadFromCacheOrDownload(string url, int version);
    public static WWW LoadFromCacheOrDownload(string url, int version, [DefaultValue("0")] uint crc);

但是在新的5.0版本里,多了两个新的接口

    public static WWW LoadFromCacheOrDownload(string url, Hash128 hash);
    public static WWW LoadFromCacheOrDownload(string url, Hash128 hash, [DefaultValue("0")] uint crc);

唯一不同的地方就在于Hash128这个东西.关于这个东西官方的api文档中还找不到,经过测试,它的大致用意是用来区分同一个

资源名称,不同版本用的.在新的版本中存在一个叫做AssetBundleManifest,的类,里面封装了如下接口

据官方的介绍,这个类主要是在我们定义的每个AssetBundle的时候会产生一个Manifest文件,它的作用如下:

1.作为CRC校验用

2.Asset文件Hash,将所有的asset资源包含在这个AssetBundle中,但是仅仅用于编译的增量计数检查。

3.资源名称,所有同样名称的AssetBundle都会打进一个包中.通过Mainfest都可以取到这些资源

4.依赖资源的名称.

重点

在这里我觉比较重要的一个东西就是AssetBundle Variant

这个东西主要应用在不同分辨率资源的使用或者多语言图片资源的使用上比较多

例如:当你在不同的分辨率下使用两套不容的资源,在这里我们暂且定义为"texture.hd"和"texture.sd"

我们可以这样做:新建立两个文件夹,叫做"MyAssets HD"和"MyAssets HD",把他们的AssetBundle统一设置

为"variants/texture",Variant分为设置为"hd"和"sd",最终如下:

这样我们就可以通过

public static WWW LoadFromCacheOrDownload(string url, Hash128 hash);

的方式来使用我们两种分辨率下的资源了

这里比较关心的是url和hash这两个参数

url,估计大家都知道是"variants/texture",

然而hash就是需要借助AssetBundleManifest.GetAssetBundleHash的方法来获取了.

今天时间比较匆忙,暂时说到这里,希望可以给大家抛砖引玉.详细的实现方案请看第二讲

时间: 2024-08-05 16:30:05

基于Unity5.0系统的新打包方式 [第一讲]的相关文章

Android 6.0 系统棉花糖新的特性和功能

Get you apps ready for Android 6.0 Marshmallow! 新的功能:运行时的权限提醒,Doze(打盹模式)和备用电源,协助新技术,等等. Android 6.0Changes 伴随着新的特性和功能,Android 6.0(API level 23)在系统上和API的使用上做了一些改变. 如果我们已经发布了一款app,那么就要关注一下这些改变会不会影响应用的运行. RuntimePermissions 这是一种新的权限使用模型,用户可以在程序运行中直接管理应用

CactiEZi中文版V10.1是基于CentOS6.0系统,整合Cacti等相关软件,重新编译而成的一个操作系统

服务器运行环境: 操作系统:CentOS release 6.8 (Final) Web服务器软件:Apache/2.2.15 (Unix) 数据库系统:MySQL 5.1.73 对默认的CactiEZi中文版进行数据库安全方面的优化. mysql> select host,user,password from user; +-----------------------+-----------+-------------------------------------------+ | hos

不得不看的16项安卓5.0系统的新特性

谷歌正正准备对其 Android 操作系统进行最大规模升级,推出最新版本号的 Android 5.0 Lollipop.除了加入很多功能外.整个用户界面都被改进.与往常一样,谷歌的 Nexus 系列智能手机和平板电脑将实现首批升级.谷歌还称.Android 5.0 Lollipop 适应各种型号智能手机.平板电脑.手表甚至电视,能够实现无缝链接. 以下让我们看看 Android 5.0 Lollipop 将带来哪些改变: 1. Android 5.0 Lollipop 的主屏,值得注意的是底部导

Unity5 Assetbundle简单使用 及 打包Material文件超大的问题

因为项目中要用到ULUA,而ULUA的Demo 中用到的是 Unity5的Assetbundle 打包方式,所以还是学习下 5.0 版本的Assetbundle 打包方式. 简单的来说,Unity5中新添加的 AB 打包,和我们平时使用的方式一样,原理就是 为每个文件创建一个依赖文件,然后汇总到一个总的依赖文件中,在游戏最开始运行的时候需要加载这个 总的依赖文件,然后加载 Assetbundle的时候,从中获取到依赖关系来加载依赖. Unity5的打包Assetbundle API使用起来很方便

Unity5.0 EventSystem事件系统的详细说明(转)

unity5.0开发了新的UI系统UGUI,附带的事件系统EventSystem不仅可以用于UI,对于场景中的对象也同样适用.网络上有很多使用说明,但是仅仅是怎么用而已--这篇文章是我翻了无数遍官方手册整理出来的,包括自己的理解,还有官方文档的传送门,也许你会有兴趣. 一.EventSystem对象的说明 当我们在场景中创建任一UI对象后,Hierarchy面板中都可以看到系统自动创建了对象EventSystem,可以看到该对象下有三个组件:EventSystem.StandaloneInput

ios 新的一键打包方式(基于Unity5.x)

                                                                      ios 新的一键打包方式(基于Unity5.x) 1.目前4.x的均可以使用第三方插件XUPorter进行修改framewordk,plist以及代码,但是可视化程度还不够 2.Unity5.x内部已经集成了XCode api函数,我们可以利用这些函数实行更方便的可实话,例如在excel填写相关的Xcode工程参数导出json或者xml,每次导出完工程后读取

基于ROS1.0的stdr simulation搭建多移动机器人(multiple robots)仿真系统

基于ROS1.0的stdr simulation搭建多移动机器人(multiple robots)仿真系统原创SimileciWH 最后发布于2018-10-26 17:12:20 https://blog.csdn.net/SimileciWH/article/details/83416437 多移动机器人的概念就不叙述了,直接讲如何正确的在ROS系统下构建基于stdr simulation和gazebo平台下的仿真实验. 1    前提准备 安装好如下几个基本的包: stdr simulat

(六)Unity5.0新特性------新动画功能

?? unity 5.0 中的新动画功能 这里是你可以期待的新动画功能快速概述 ! State Machine Behaviours状态机行为 在Unity 5 中,你会能够将StateMachineBehaviour 脚本添加到您的states,当played状态时能接收callbacks回调: ?OnStateEnter ?OnStateUpdate ?OnStateExit ?OnStateMove ?OnStateIK 在你的状态,您可以创建尽可能多的StateMachineBehavi

恒天云 3.0:打造基于OpenStack的私有云新模式

云计算在当今IT世界中已发展地如火如荼,越来越多的企业利用云计算改造传统的数据中心,简化IT资源的交付模式.云计算是许多开放技术的融合,在这个领域,OpenStack是其中最流行最具影响力的开源IaaS云平台,全世界大批的工程师参与OpenStack各组件的开发,使其社区越来越活跃,发展也越来越快速. OpenStack发展至今已发布9个版本,但许多组件仍存在种种稳定性问题,想在企业内部落地依然困难重重,如: Dashboard组件Horizon项目发展缓慢,产品化不足,用户友好度不高: 尚未与