前言

“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的更多相关文章

  1. 【Unity3D技术文档翻译】第1.5篇 本地使用 AssetBundles

    上一章:[Unity3D技术文档翻译]第1.4篇 AssetBundle 依赖关系 本章原文所在章节:[Unity Manual]→[Working in Unity]→[Advanced Devel ...

  2. 【Unity3D技术文档翻译】第1.3篇 创建 AssetBundles

    上一章:[Unity3D技术文档翻译]第1.2篇 为打包 AssetBundles 准备资产 本章原文所在章节:[Unity Manual]→[Working in Unity]→[Advanced ...

  3. 【Unity3D技术文档翻译】第1.8篇 AssetBundles 问题及解决方法

    上一章:[Unity3D技术文档翻译]第1.7篇 AssetBundles 补丁更新 本章原文所在章节:[Unity Manual]→[Working in Unity]→[Advanced Deve ...

  4. 【Unity3D技术文档翻译】第1.7篇 AssetBundles 补丁更新

    上一章:[Unity3D技术文档翻译]第1.6篇 使用 AssetBundle Manager 本章原文所在章节:[Unity Manual]→[Working in Unity]→[Advanced ...

  5. 【Unity3D技术文档翻译】第1.9篇 使用 Unity AssetBundle Browser tool (AssetBundle系列完结)

    上一章:[Unity3D技术文档翻译]第1.8篇 AssetBundles 问题及解决方法 本章原文所在章节:[Unity Manual]→[Working in Unity]→[Advanced D ...

  6. 【Unity3D技术文档翻译】第1.6篇 使用 AssetBundle Manager

    上一章:[Unity3D技术文档翻译]第1.5篇 使用 AssetBundles 本章原文所在章节:[Unity Manual]→[Working in Unity]→[Advanced Develo ...

  7. 【Unity3D技术文档翻译】第1.4篇 AssetBundle 依赖关系

    上一章:[Unity3D技术文档翻译]第1.3篇 创建 AssetBundles 本章原文所在章节:[Unity Manual]→[Working in Unity]→[Advanced Develo ...

  8. 【Unity3D技术文档翻译】第1.2篇 为打包 AssetBundles 准备资产

    本章原文所在章节:[Unity Manual]→[Working in Unity]→[Advanced Development]→[AssetBundles]→[Preparing Assets f ...

  9. 【Unity3D技术文档翻译】第1.1篇 AssetBundle 工作流

    译者前言:本章是关于从创建到加载,再到使用 AssetBundle 的整个流程的概述.阅读本章将对 AssetBundle 的工作流程有个简单而全面的了解. 本章原文所在章节:[Unity Manua ...

随机推荐

  1. 苹果内购服务器验证之receipt返回多组in_app思考

    最近有部分用户反映,苹果内购充值失败,经过测试总结有几个关键点出现问题 1.app购买成功苹果没有返回票据,属于票据遗漏(取决于苹果服务器的响应状况),只能客户端进行监听刷新等处理 2.app连续购买 ...

  2. sql 时间转换问题 from_unixtime() UNIX_TIMESTAMP()

    http://blog.csdn.net/test_soy/article/details/50328367 from_unixtime()是MySQL里的时间函数 date为需要处理的参数(该参数是 ...

  3. python3 第二章 - 第一个程序

    1、安装 打开官网 https://www.python.org/downloads/ 下载python3.6.4 如果你是windows\mac电脑,直接双击安装包,一路next即可,如果你是lin ...

  4. Node.js之事件监听和发送

    演示事件的发送和监听 const events = require("events"); function Account() { this.balance = 0; events ...

  5. Universe Design Tool Using JDBC connect Sybase/Oracle Get Error

    一.针对Sybase 1 使用SAP Universe 设计工具连接Sybase数据库报错,报错如下: “CS: Java Class not found in classpath : com.syb ...

  6. 转-python中的闭包

    出处:http://www.cnblogs.com/ma6174/archive/2013/04/15/3022548.html 记录下 简单说,闭包就是根据不同的配置信息得到不同的结果 再来看看专业 ...

  7. Linux指令--mv

    本文博客转自:http://www.cnblogs.com/peida/archive/2012/10/27/2743022.html mv命令是move的缩写,可以用来移动文件或者将文件改名(mov ...

  8. 关于flying框架

    开发10多年了,开发过程中遇到的最大的问题: ①项目的代码越来越多了,越来越复杂了,而客户的需求,你还不得不往里面加入新代码. ②开发了很多项目,每次复用时却只能把代码copy来copy去,然后调试. ...

  9. Asp.net core 2.0.1 Razor 的使用学习笔记(四)

    ASP.net core 2.0.1 中 asp.net identity 2.0.1 的基本使用(三)—用户注册 一.修改用户注册 1.打开Pages文件夹>Account>Regist ...

  10. [TCP/IP]TCP连接的建立和终止

    TCP 是支持全双工通信的传输层协议,为了开发出更好的网络通信应用,清楚了解其中的交互过程是非常必要的. 下面用比较直白的话来描述&理解一下这个过程: TCP 连接建立:三次握手 服务器依次调 ...