Unity Tips
List<T>
或者数组序列化的时候默认生成的名字为 Element n,如果要改变这个,只需要把 T
的第一个序列化的字段的数据类型设置为string
- 保存 Play 模式下调试出的数据:在组件的右上角点击右键,选择
Copy Component
,然后关闭 Play
模式之在对应的组件右上角点击右键,选择Copy Component as Values
。 更多小技巧请看 这个链接。
学习、思考、分享
List<T>
或者数组序列化的时候默认生成的名字为 Element n,如果要改变这个,只需要把 Tstring
Copy Component
,然后关闭 PlayCopy Component as Values
。 更多小技巧请看 这个链接。谢谢朋友们这一年多来对 ShaderlabVS 插件的支持。这里整理出一些朋友给我的留言或者邮件中提到的常见问题,希望对大家有帮助。
尝试安装已移除 .Net Framework 依赖版本的 0.6.1 或以上版本。
这篇是 Unity 官方教程 AssetBundles and the AssetBundle Manager 的翻译, 分三部分,这是第三部分。翻译不到之处请不吝指出。非常谢谢!
译者注:英文太啰嗦了,但是还是坚持的把它翻译完了。因为啰嗦的好处是起码能让概念多复习几遍,更容易记得住。如果读者觉得啰嗦,可以自行执行 跳读技能 来阅读译文。
本文的项目连接:http://u3d.as/jyk
这个场景是被 “LoadAssts.cs” 脚本驱动的。
在脚本编辑器里面打开脚本 “AssetBundleSample/Scripts/LoadAssets.cs”
脚本里有两个公共变量: public string assetBundleName;
和 public string assetName;
这篇是 Unity 官方教程 AssetBundles and the AssetBundle Manager 的翻译, 分三部分,这是第二部分。翻译不到之处请不吝指出。非常谢谢!
使用 AssetBundle 中一个关键的地方是编译和测试 bundles。一般情况下,资源在开发过程中是会变的。正常地,可能需要要求有规律的编译 AssetBundle, 上传到服务器和然后通过网络连接在当前项目中测试远程的 AssetBundle.
这节主要关注 AssetBundle Manager 使用 AssetBundle。相对利用基础的低层 API 来操作 AssetBundle, AssetBundle Manager 为太幅改进的流程提供了高层的 API。
在编辑器中使用 AssetBundle 的大体步骤:- 在编辑器中组织 & 设置 AssetBundle。 - 编译 AssetBundle。 - 上传 AssetBundle 到外部存储 - 运行期下载 AssetBundle - 从 AssetBundle 加载对象。
值得注意的一点,有些 AssetBundle 可以存储在本地作为即时加载的默认设置。这样对不能访问远程存储下载期望的资源的安装特别有用。比如,当不能访问可下载内容的时候,程序可以从本地的 AssetBundle 中加载默认的语言和本地化数据。
值得注意的是一个 AssetBundle 包括平台准备资源。AssetBundle 的内容会根据 Import Settings 里设置的当前平台和 Build Settings 里面的目标平台做编译和优化。因为这样,需要为每个平台编译 AssetBundle。
在接下来的简单的场景中, 为了AssetBundle 最大的用途,有个合理的组织 AssetBundle 场景内容的方式就是把草地,沙丘,岩石柱,树和仙人掌都打包到一个基础场景里面。这个基础场景可能包含依赖的材质,因为他们很简单,以后不太可能会基于分辨率或者设备而改变。坦克模型将需要一个自己的 AssetBundle, 这样允许改变或者更新玩家资源。为了实现坦克游戏对象,还需要两个额外的 AssetBundle. 一个是独立的材质资源,另外是独立的纹理资源。这将会给需要给纹理和材质的更改和更新时带来最小的麻烦。这个特别的组织方式也允许有其他版本或者基于平台、位置或者目标设备分辨率选择 AssetBundle 的变体。
这篇是 Unity 官方教程 AssetBundles and the AssetBundle Manager 的翻译, 分三部分,这是第一部分。翻译不到之处请不吝指出。非常谢谢!
AssetBundle 允许按需地从本地或者远程服务器上加载资源(Asset)。通过 AssetBundle 的方式,资源可以远程存储,有需要的时候访问,这样提升了项目的灵活性和降低初始程序的大小。
这篇教程将会介绍 AssetBundle 和及其应用,AssetBundle 流程的步骤和各阶段和怎么样编译和测试 AssetBundle 及其变体 - 所有的一切可以用 AssetBundle Manager 来简化创建,测试和部署 AssetBundle。教程的最后一部分将使用一些加载和使用 AssetBundle 变体的简单用例和脚本示例。
在开始教程之前,最后先下载好 AssetBundle 和 AssetBundle Manager 的示例程序。
AssetBundle 是由 Unity 编辑器在编辑时期创建的,可以被编译出来的程序在运行期使用的文件。AssetBundle 可以包含模型,材质,纹理和场景文件等资源。但是 AssetBundle 不能包含脚本。
明确一点说,一个 AssetBundle 就是存储项目资源和 / 或场景集合的文件,目的是为了之后在游戏或者程序中加载。
AssetBundle 可以被在 Unity 中编译出来的游戏或者程序按需加载。它允许传送和异步加载像模型,材质,声音剪辑,
甚至是整个场景。当在程序中初次运行时, AssetBundle 会被存储到本地 “预缓存” 以备以后被立即加载。Assetbundle 的主要目是为了需要的时候能从远程传送内容并加载进程序。AssetBundle 可以包含可以被 Unity 识别的任何资源类型,包括二进制文件。唯一的另外就是不允许是脚本资源。
AssetsBundle 有很多用处。比如新的内容可以动态地在程序中加载和释放。可以很简单实现发布后的可下载内容(DLC, Downloadable Content)。
程序第一次安装的的时候的大小或者磁盘占用空间会减少,资源只有安装的程序需要的时候才会被加载。平台或者设备相关的资源加载时可以不必要下载或冗余存储其他平台和方案中的资源。本地化的程序可以更容易来下载和安装基于用户位置,语言和偏好的资源。新的内容可以下修复,改变或更新,而不需要重新发布程序。
AssetBundle 内项目资源的组织严重依赖于项目的需求。但是,也有一些可以更好的理解 AssetBundle 的原则。