前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第十五集:游戏资源加载器AssetManager

第十五集:游戏资源加载器AssetManager

作者头像
Xiaolei123
发布2018-08-10 11:39:50
5470
发布2018-08-10 11:39:50
举报

AssetManager

1.API定义:负责加载类似于Textures BitmapFonts Tilemaps Sounds Music 等类型的文件 2.示例:

val manager = AssetManager()
manager.load("456.png",Texture::class.java)
manager.unload("456.png")
manager.update()

特点: 1.加载大部分资源采用异步加载方式,在加载的同时,不阻塞主线程。 2.实现引用计数,当A和B都依赖同一个资源的时候,只有在A和B都销毁了,才会销毁,意味着一个资源加载了很多次,在内存中也只有一份。 3.使用一个单一管理器来实现管理所有素材。

常用方法: 1.clear():清空和删除所有已加载资源和预加载队列。 2.boolean containsAsset (T asset):返回检测是否加载了某个资源 3.String getAssetFileName (T asset)获取资源名字,得到的是一个String类型的文件名字 4.public synchronized int getLoadedAssets ()获取以及加载的资源数量。 5.public synchronized float getProgress () 获取加载进度,返回值是 0.0 ~ 1.0 6.public synchronized boolean isLoaded (String fileName)返回一个布尔类型,检测传入的文件是否被加载。 7.public synchronized <T> void load (String fileName, Class<T> type) 将已传入的文件名和类型加载预加载队列,为了防止名字和类型重复,这里需要将名字和类型都传入。 8.public synchronized <T, P extends AssetLoaderParameters<T>> void setLoader (Class<T> type, AssetLoader<T, P> loader) 设置加载器,其实AssetManager类中,包含了需要AssetLoader对象,这样才能完成不同类型的文件加载,当然AssetManager也可以自定义加载器。 9.public synchronized void unload (String fileName) :卸载资源,如果某个资源不使用了,可以卸载该资源,这样有利于游戏流畅性。 10.public synchronized boolean update () 更新加载资源,实际上load方法只是将预加载的资源加载到了预加载队列,实际上并没有加载资源,使用update方法才会加载资源,调用该方法才能使不断加载,存储在预加载中的资源。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.08.03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • AssetManager
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档