【Unity3D技术文档翻译】第1.0篇 AssetBundles
前言
“Unity圣典”是目前对官方文档翻译比较详细的,然而文档的最新更新日期是2013年,已经远远落后最新版本,参考意义有限。官方文档、脚本手册是学习Unity3D最直接有效的途径,然而一直没有中文版本,给很多开发人员带来了不便。因此我想在学习Unity3D的同时,将官方文档一道翻译。方便自己查看,同时还能方便其他后来的开发人员,何乐而不为?初次翻译,难免有错漏,欢迎指正!
PS:
1. 技术术语不会翻译,因为保持英文更加方便沟通和理解,必要时会同时给出中文翻译。
2. 翻译会更注重意译,而不是直译。
3. 从 AssetBundles 开始翻译是因为正好看到这里 ^_^。
4. 标题中的“第1.0篇”是为了表示出章节的从属关系,比如下一篇“AssetBundle 工作流”会是“第1.1篇”。
正文
本章原文所在章节:【Working in Unity】→【Advanced Development】→【AssetBundles】
AssetBundles
一个 AssetBundle 就是一个会在运行时被加载的归档文件,它包含了和平台相关的特定资源(例如:Models、Textures、Prefabs、Audio clips,甚至可以是所有的 Scenes)。AssetBundles 相互之间可以具有“依赖性”,例如:AssetBundle A 中的 一个材质(material)可以引用 AssetBundle B 中的一个纹理(texture)。
为了能够在网络上更有效率地递送,AssetBundles 可以根据实际需要,选择引擎内置的算法进行压缩(LZMA算法和 LZ4算法)。
AssetBundles 可用于:可下载的内容更新(DLC)、降低初始安装包大小、针对用户平台进行最优化资源加载,以及降低运行时的内存压力。
AssetBundle 里有什么?
好问题,事实上 AssetBundle 涉及了两个不同但是相关的事物。
首先,AssetBundle 可以指存储在磁盘上的实际文件。我们称这种文件为“AssetBundle 归档”,在本教程中,我们直接简称为“归档”。归档可以看作是一个容器,就像一个文件夹一样,里面保存了额外的一些文件。这些额外的文件由两种类型组成:序列化文件和资源文件。
其中,“序列化文件”是指:用你的资产组合形成各个对象,然后将它们写入磁盘中的一个文件,这个文件就是序列化文件。而“资源文件”就是一个个二进制数据块,这些数据块分别存储了特定类型的资产(比如:纹理和音频),这可以让我们在另一个线程上更有效地从磁盘中加载它们。
其次,AssetBundle 可以指一个实际的 AssetBundle 对象。你可以通过代码操控它,从一个特定的归档中加载你想要的一些资产。AssetBundle 对象包含了一组映射,即:“你添加到归档中的所有资产的文件路径”,以及“与这些资产相对应的对象们“,这两者之间的映射。你可以利用这种映射,在需要时加载你想要的对象。
题外话:
最后两段好难翻译,中英文思维方式完全不同。严重怀疑就算是外国人,看母语版的官方文档也要思考好一阵,而且还要有Unity基础才能看得懂。就拿最后一句话来说,原文是:
This object contains a map of all the file paths of the assets you added to this archive to the objects that belong to that asset that need to be loaded when you ask for it.
没错,就是这么绕这么长。头几遍完全看晕了,不反复琢磨个几十遍,结合自身已经有的认知,都理不清它到底想表达什么。我自己对这句话的翻译还算满意,不知道正在看这篇文章的人有没有看懂,泪目 T_T
如果本文对你有帮助的话,点个赞或者评论一下吧,让我知道有人来看过。
转载请注明出处:何三思 http://www.cnblogs.com/hearthstone/p/7305395.html
【Unity3D技术文档翻译】第1.0篇 AssetBundles的更多相关文章
- 【Unity3D技术文档翻译】第1.5篇 本地使用 AssetBundles
上一章:[Unity3D技术文档翻译]第1.4篇 AssetBundle 依赖关系 本章原文所在章节:[Unity Manual]→[Working in Unity]→[Advanced Devel ...
- 【Unity3D技术文档翻译】第1.3篇 创建 AssetBundles
上一章:[Unity3D技术文档翻译]第1.2篇 为打包 AssetBundles 准备资产 本章原文所在章节:[Unity Manual]→[Working in Unity]→[Advanced ...
- 【Unity3D技术文档翻译】第1.8篇 AssetBundles 问题及解决方法
上一章:[Unity3D技术文档翻译]第1.7篇 AssetBundles 补丁更新 本章原文所在章节:[Unity Manual]→[Working in Unity]→[Advanced Deve ...
- 【Unity3D技术文档翻译】第1.7篇 AssetBundles 补丁更新
上一章:[Unity3D技术文档翻译]第1.6篇 使用 AssetBundle Manager 本章原文所在章节:[Unity Manual]→[Working in Unity]→[Advanced ...
- 【Unity3D技术文档翻译】第1.9篇 使用 Unity AssetBundle Browser tool (AssetBundle系列完结)
上一章:[Unity3D技术文档翻译]第1.8篇 AssetBundles 问题及解决方法 本章原文所在章节:[Unity Manual]→[Working in Unity]→[Advanced D ...
- 【Unity3D技术文档翻译】第1.6篇 使用 AssetBundle Manager
上一章:[Unity3D技术文档翻译]第1.5篇 使用 AssetBundles 本章原文所在章节:[Unity Manual]→[Working in Unity]→[Advanced Develo ...
- 【Unity3D技术文档翻译】第1.4篇 AssetBundle 依赖关系
上一章:[Unity3D技术文档翻译]第1.3篇 创建 AssetBundles 本章原文所在章节:[Unity Manual]→[Working in Unity]→[Advanced Develo ...
- 【Unity3D技术文档翻译】第1.2篇 为打包 AssetBundles 准备资产
本章原文所在章节:[Unity Manual]→[Working in Unity]→[Advanced Development]→[AssetBundles]→[Preparing Assets f ...
- 【Unity3D技术文档翻译】第1.1篇 AssetBundle 工作流
译者前言:本章是关于从创建到加载,再到使用 AssetBundle 的整个流程的概述.阅读本章将对 AssetBundle 的工作流程有个简单而全面的了解. 本章原文所在章节:[Unity Manua ...
随机推荐
- linux下用iptables做本机端口转发方法(转载)
一 :从一台机到另一台机端口转发 启用网卡转发功能 #echo 1 > /proc/sys/net/ipv4/ip_forward 举例:从192.168.0.132:21521(新端口)访问1 ...
- Thrift之TProtocol系列TJSONProtocol解析
在了解JSON协议之前,朋友们可以先去了解一下JSON的基础知识,和ASCII基本分布,关于JSON一些常识请见这里; JSON (JavaScript Object Notation)是一种数据交换 ...
- windows安装xampp时出现,unable to realloc xxxxxxxx bytes
摘录自:http://blog.csdn.net/lz610756247/article/details/70842166 Windows虚拟内存的设置 问题描述:由于开启虚拟内存会导致硬盘IO性能下 ...
- Jade报错:Invalid indentation,you can use tabs or spaces but not both问题
现象:通过html生成jade文件之后,更改jade文件时,语句没什么问题的情况下,jade文件编译不通过,报错:Invalid indentation,you can use tabs or spa ...
- 关于Set<Long>Map<Long,String>的一些小注意事项 自动转换类型
- 把一个DIV放到另一个div右下角
父对象相对定位,子对象以父对象为参考点绝对定位:外层的div设置为相对定位,内层的div设置为绝对定位: <div id="box1"> <div id=&quo ...
- Redis-配置认证密码
1.找到redis.conf,配置密码 2.要重新启动一下redis 3.用redis-cli重新登陆,我们查询的时候提示"Authentication required"查询失败 ...
- Codeforce A. Fair Game
A. Fair Game time limit per test 1 second memory limit per test 256 megabytes input standard input o ...
- 浅析调用JSR303的validate方法, 验证失败时抛出ConstraintViolationException
废话不多说,直接进入正题:如何使用JSR303的validate,进行数据校验,失败后直接抛出异常加入流转信息中,并在form页面提示出来. 首先我们为了启用验证,需要向 项目中添加Bean验证的实现 ...
- 使用guava变形数据结构
在java日常开发中,经常需要使用各种数据结构,在涉及到数据结构之间如何优雅的转换时,我们可以借助google的guava提供的相关功能来优雅的实现.以下记录一些开发中经常需要使用数据结构的变形,以便 ...