Unity之AssetBundles
来源:互联网 发布:三国乱世神石强化数据 编辑:程序博客网 时间:2024/06/03 22:54
第一次见AssetBundles的应用场景是在公司的一个项目中,由于加入时,这个项目已经大致完成,所以后期并没有做关于这方面的事情。不过幸好Unity有相当健全的官方文档,所以花了一些时间了解了AssetBundles的应用场景以及具体应用,下面先介绍一下AssetBundle的应用场景。
1)这是一个打包的过程,首先想到的场景是一些网络游戏需要热更新时,可以将资源打包成AssetBundles,然后本地下载此包,实现资源的动态更新。其次,可以将场景中所需资源在本地打包,然后用代码控制着加载资源,由于打包后所占空间极小,所以这种情况也比较常见。
2)虽官方文档已经介绍得相当清楚,但记录下来,以便以后需要时可以随时查阅也是极好的,首先说一下如何将资源打包。
1>几乎所有的资源都可以打包,Prefab、纹理图、音效、视频等。点击资源,最Inspector的最下方有个AssetBundle的选项,点击之后,创建一个新的AssetBundle名。这样,这个资源就是这个名字下面的资源了,在以后加载的时候,需要时刻注意这个路径问题。
2>下面列出创建AssetBundles的脚本。
using UnityEditor;using System;public class pack { [MenuItem("Assets/Build AssetBundles")] static void BuildAssetBundles() { //这里是填得路径,父路径为该项目的路径,即Assets的父路径 BuildPipeline.BuildAssetBundles("AssetBundles"); }}注:此文件夹倒不必必须叫AssetBundles,只是官方这样叫,且这样比较明了。
3>创建了AssetBundles之后,就可以在脚本中动态地加载资源并进行使用了,下面贴出加载AssetBundles的代码。
public void Start() { //由于AssetBundles文件夹和Assets文件夹同级,所以去掉/Assets路径,并添加上/AssetBundles路径 BundleURL = "file:///" + Application.dataPath.Replace("/Assets", "") + "/AssetBundles"; }
IEnumerator LoadAssetBundle() { while (!Caching.ready) yield return null; //.. /image是AssetBundles文件夹下AssetBundle的名称,里面装着资源 using(WWW www = WWW.LoadFromCacheOrDownload(BundleURL + "/image",version)) { yield return null; if (www.error != null) throw new Exception("WWW download had an error," + www.error); AssetBundle bundle = www.assetBundle; if(AssetName == "") { Debug.Log(bundle.mainAsset); } else { Debug.Log(bundle); Debug.Log(bundle.LoadAsset(AssetName)); bundle.Unload(false); } } }注:Unity版本不同,所用的API也不同。
此外,我的Unity版本是5.3.4。
0 0
- Unity之AssetBundles
- unity AssetBundles
- Unity之如何从AssetBundles加载资源
- Unity之AssetBundles读取打包对象
- Unity中AssetBundles一
- Unity 5.x AssetBundles
- Unity AssetBundles 使用指南
- Unity AssetBundles打包
- Unity手册AssetBundles第一篇AssetBundles
- Unity AssetBundles-Browser【官方分享】
- Unity 3D--外部加载资源AssetBundles
- unity基础开发----外部加载资源AssetBundles
- Unity 3D--外部加载资源AssetBundles
- Unity 3D--外部加载资源AssetBundles
- Unity 3D--外部加载资源AssetBundles
- Building AssetBundles
- unity3d AssetBundles 资源包
- [Unity3D]AssetBundles的使用
- 海量数据优化_分区索引与删除的关系
- IOCP模型与EPOLL模型的比较
- Android简易音乐播放器之界面实现(第一篇)
- (OK) network diagnose tools
- 常见的非线性回归模型
- Unity之AssetBundles
- bzoj1500
- 结合Linux的应用场景看MIPS32架构之内存管理
- md-checkbox
- 单链表快排
- 99乘法表问题与解决
- JavaScript substring() 方法
- 数据库-过程 PL/SQL 的运用
- SQL语句中between and 范围