示例 1:加载资源

  • 使用 “Asset/AssetBundles/Simulation Mode” 菜单打开模拟模式
  • 打开 “AssetBundleSample/Scenes/AssetLoader” 场景
  • 注意场景是个空的只有一个主摄像机,方向光和游戏对象 “Loader”
  • 进入 PlayMode
  • 然后会注意到一个 cube 已经从 AssetBundle 加载到场景里面了

这个场景是被 “LoadAssts.cs” 脚本驱动的。

在脚本编辑器里面打开脚本 “AssetBundleSample/Scripts/LoadAssets.cs”

脚本里有两个公共变量: public string assetBundleName; 和 public string assetName;

  • public string assetBundleName; 保存了要被加载的 AssetBundle 的名字
  • public string assetName; 保存了要已加载的 AssetBundle 中加载的资源的名字

这个脚本是由一个 Start() 函数和被 Start() 调用的两个协程组成的。Initialize() 调用了 DontDestoryOnLoad(), 设置了 AssetBundle 的路径和初始化了 AssetBundle 清单。在 InstantiateGameObjectAsync() 中,如果资源不为空,AssetBundleManager.LoadAssetAsync()调用资源和 AssetBundle 的名字。

重点注意下,在 “AssetBundleSample/Assets” 路径下查看 “MyCube” 资源,会发现 “MyCube” 依赖于 “MyMaterial”,而 “MyMaterial” 依赖于 “UnityLogo”。脚本中只有 “MyCube” 资源被调用,但是所有的依赖资源都被正确的加载了。

AssetBundle 的路径怎么设置也值得注意下。当场景在编辑器中或者从一个开发版 Build 中运行时,这段代码会给本地资源服务器设置 AssetBundle 的位置。(更多关于开发版 Build,请查看发布 Builds 文档。)模拟模式开启后,AssetBundle 会在编辑器中被模拟,这个设置将不会被使用。

对 DontDestoryOnLoad() 作用的理解。虽然在这个非常简单的脚本中并不是绝对需要它,但是他的存在是假设这个脚本会作为一个更复杂的项目的 AssetBundle 加载器基础,它需要在场景变化的以后依然存在。

示例 2:加载场景

  • 使用 “Asset/AssetBundles/Simulation Mode” 菜单打开模拟模式
  • 开始 “AssetBundleSample/Scenes/SceneLoader” 场景
  • 注意场景是个空的只有一个主摄像机,方向光和游戏对象 “Loader”
  • 开打 PlayMode
  • 然后会注意到一个 cube 和 plane 已经从 AssetBundle 加载到场景里面了

这个场景被 “LoadScene.cs” 脚本驱动着。

在脚本编辑其中打开 “AssetBundleSample/Scripts/LoadScenes.cs” 脚本。

脚本里有个两个公共变量:public string sceneAssetBundle; 和 public string sceneName;

  • sceneAssetBundle; 保持了要加载的 AssetBundle 的名字
  • sceneName; 保持了要从已加载的 AssetBundle 里加载的场景的名字

这个脚本是有一个 Start() 函数和被 Start() 调用的两个协程组成的。Initialize() 调用了 DontDestoryOnLoad(), 设置了 AssetBundle 的路径和初始化了 AssetBundle 清单。在 InitializeLevelAsync() 里使用 AssetBundleManager.LoadLevelAsync() 调用场景名字和 isAdditive 来请求一个场景。如果场景为空,AssetManager 会在控制台显示出错误,然后协程结束。

重点注意下,在 “AssetBundleSample/Assets” 路径下查看 “MyCube” 资源,会发现 “MyCube” 依赖于 “MyMaterial”,而 “MyMaterial” 依赖于 “UnityLogo”。只有 “TestScene” 场景被请求了。但在 “TestScene” 中的 “Cube” 和所有依赖的资源都被 AssetBundle Manager 正确的加载了。

AssetBundle 的路径怎么设置也值得注意下。当场景在编辑器中或者从一个开发版 Build 中运行时,这段代码会给本地资源服务器设置 AssetBundle 的位置。(更多关于开发版 Build,请查看 发布 Builds 文档。)模拟模式开启后,AssetBundle 会在编辑器中被模拟,这个设置将不会被使用。

对 DontDestoryOnLoad() 作用的理解。虽然在这个非常简单的脚本中并不是绝对需要它,但是他的存在是假设这个脚本会作为一个更复杂的项目的 AssetBundle 加载器基础,它需要在场景变化的以后依然存在。

点击下载

转载于:https://www.cnblogs.com/jiahuafu/p/9115106.html

AssetBundle Manager and Example Scenes相关推荐

  1. AssetBundle and the AssetBundle Manager介绍

    AssetBundle and the AssetBundle Manager 介绍 AssetBundle允许从本地或者远程服务器加载Assets资源,利用AssetBundles技术,Assets ...

  2. [译]使用AssetBundle Manader

    AssetBundle and the AssetBundle Manager 介绍 AssetBundle允许从本地或者远程服务器加载Assets资源,利用AssetBundles技术,Assets ...

  3. unity 异步加载网络图片_一个非常好用的AssetBundle资源加载器

    Loxodon Framework Bundle是一个非常好用的AssetBundle加载器,也是一个AssetBundle冗余分析工具.它能够自动管理AssetBundle之间复杂的依赖关系,它通过 ...

  4. Unity最新版打包AssetBundle和加载的方法

    一.设置assetBundleName 二.构建AssetBundle包 三.上传AssetBundle到服务器 四.把AssetBundle放到本地 五.操作AssetBundle 六.完整例子 七 ...

  5. unity当前项目里面AssetBundle和加载的方法总结

    2017年10月14日 19:24:14 醉忘天涯一线天 阅读数:9021 出处:https://blog.csdn.net/lmyfx/article/details/78236225 版权声明:本 ...

  6. AssetBundle 资源打包 加载 卸载

    1 给要打包的资源设置标记,表示对应的包名: 2 Unity5 AssetBundle不需要我们来管理引用关系了 3 可以使用代码批量设置包名 AssetImporter ai = AssetImpo ...

  7. Unity有哪些让做项目事半功倍的插件值得推荐?

    Unity开发最好的地方就是有各种强大的插件,有哪些插件让大家事半功倍,稳定强大 值得推荐学习和入手呢?Unity5.0之后,制作UI 以及UI的动画,UI特效,大家一般都使用什么插件?或者说有什么好 ...

  8. Unity 官方教程 学习

    Interface & Essentials Using the Unity Interface 1.Interface Overview https://unity3d.com/cn/lea ...

  9. Unity 插件使用笔记

    目录 AssetBundle AssetBundle Manager EasySave UGUI-Edito Unity Favourites Panel Curvy Spline 流体插件Obi F ...

  10. Unity 资源管理(Assets,Resources,AssetBundles)

    0x00 一下子看了太多,还是比较细地看的,因为是英文的文档如果不仔细读,感觉太容易左进右出了--现在来整理下能记住的,后面实际使用的时候再来完善. 现在 unity 在推新功能,可定位资源管理系统( ...

最新文章

  1. C++实现判断两个单词是否为变位词
  2. 【opencv4】opencv视频教程 C++ 7、手动调整图像亮度与对比度 g(i, j) = αf(i, j) + β(点操作与邻域操作概念)
  3. 在Editplus中搭建Ruby开发环境
  4. js之ActiveX控件使用说明 new ActiveXObject()
  5. 深入玩转K8S之智能化的业务弹性伸缩和滚动更新操作
  6. mysql 判断日志时间早_MySQL5.7慢查询日志时间与系统时间差8小时原因详解
  7. matlab三相系统电阻折算,基于MATLAB三相异步电动机调压调速系统方案.doc
  8. java程序如何安装到手机上_java怎么安装到手机?手机安装java的教程
  9. python爬携程_Python crawler:对携程的航班数据进行抓取,python,爬虫,爬取
  10. ut红种状态解决办法汇总
  11. ubuntu安装photoshop
  12. Nuendo学习之旅——音程和和弦
  13. 手把手教你用JAVA实现“声音复刻”功能(复刻你的声音)标贝科技
  14. 基于STM32的RC522模块读写数据块以及电子钱包充值扣款系统的设计
  15. “智慧新电商”全渠道获客+智能服务接待
  16. 带bitlocker解密的pe_BLDU 一键解锁bitlocker加密的磁盘
  17. 入行数据分析要知道数据挖掘到底是做什么的
  18. 安卓手机扫二维码从FTP服务器下载apk
  19. 抛物线断面临界水深莫洛图
  20. Android Framework框架分析

热门文章

  1. R系列处理器是服务器,AMD全新R系列处理器领军嵌入式高性能领域
  2. 详解Java异常Throwable、Error、Exception、RuntimeException的区别
  3. 高通平台camera bring-up
  4. [No0000F5]C# 类(Class)
  5. xml和TreeView
  6. centos7 设备 mariadb-10
  7. Hadoop之倒排索引
  8. C++ 中map容器
  9. TFTP 服务器脚本
  10. 一个gSOAP web服务可以用多线程技术来处理请求