unity动态图集使用小记录

本文讲述了在开发一款包含大量元素图案的休闲游戏中,如何从渲染效率和资源消耗的角度考虑,决定不采用传统图集,而是采用动态图集技术。作者分享了解决方案,包括动态图集的实现、卸载策略、API兼容性检查以及资源管理优化等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用契机:

目前在做的是一个Merge类型的休闲游戏,就是类似于三消棋盘那种一格一格的,每个格子都可能会有不同的元素图案,类似比较典型的游戏《绯闻港口》
绯闻港口截图
类似这种,每个格子里都是一张小图,而这些个小图的种类,根据游戏设定可以有好几百个,我们游戏目前是已经有了500+种东西,任意一种都可能出现在棋盘的某一个格子里。
那么问题来了,这些小图要不要打成传统图集呢?
不打: 那就不能进行渲染合批,理论上79的格子阵,就光绘制格子里东西就要至少63个drawcall,且每一个小drawcall就只绘制一张那么小的图,怎么想都不划算。
打: 问题在于小图的数量太多了,有500+,每个小图102
102像素大小,打成1024大小的图集要打5张,这样即使可以让小图合批渲染,但是每次不管使用几张图,哪怕是只用了1张小图,也要加载出整个5张1024的大图集,也很亏,而且这么大的一张图集在一些带宽较差的手机上也吃不消。
所以经过大佬指点,就采取了 动态图集 方案:通俗的说,就是运行时再确认图集,运行时将当前场景上的小图”复制“到一张大图上,渲染时用这张大图来渲染,当场景内元素变化时,也根据策略变化这个大图,比如出现了一张新的图,原来图集里没有的,那就把他添加复制上去,反之可以减少下去,(这个根据策略调整,我这个项目就只加不减,当图集装不下了再清空重新生成)

代码

这么牛逼的东西我这种菜鸡是弄不出来的,肯定是从网上找现成的,上链接!
https://github.com/tkonexhh/DynamicAtlas
用的是这个github上大佬的demo,他说的也很清楚
在这里插入图片描述

使用方法也很简单,直接下载他这个demo到工程里,在你想要放在动态图集里的Image替换成他的组件DynamicImage,然后group选择

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值