Unity3D 对象池工具类

本文介绍了Unity3D中通过对象池优化游戏性能的原因和原理,指出频繁的对象创建与销毁对CPU的高消耗。对象池通过激活与非激活对象来管理,避免大量对象的生成销毁。文中提供了对象池的框架结构,包括游戏对象池和预制体资源的Dictionary存储,并分享了一个便捷的对象池工具类。
摘要由CSDN通过智能技术生成

注意右上角的Hierarchy面板中的对象生成与销毁时通过激活与非激活实现的, 替代了频繁的生成实例与销毁,

对象池优化前言

我们都知道在游戏中,如果我们想使用一个对象,第一步就是New一个对象出来,那么在Unity中是如何处理这些对象的呢,一般要游戏中,如果某一个对象跟其他的任何对象都没有关联,我们就可以认为这个对象是垃圾对象,是占用内存空间的,而在C#中有自己的处理垃圾内存的方式——CG垃圾自动回收机制,在垃圾自动回收机制处理垃圾之外还有一种方式是析构法来处理垃圾。

但是如果频繁的创建销毁对象,对CPU的运算消耗是相当大的,比如在制作FPS类型的游戏时,某种机枪可能一秒数十发的子弹,甚至在某些情况对象在瞬间的生成和销毁的数量将会十分恐怖,如果极为恐怖的数量不断的被生成和销毁,那么就会对性能的消耗将会十分恐怖,导致游戏卡顿甚至闪退。

一个设备影响游戏开发的硬件也就CPU、GPU和内存,我们可以针对这些硬件的有效利用,和降低运算速率来入手。

而对象池就是针对大量相同的对象重复调用,避免大量对象的生成销毁而存在的。

对象池原理

通过集合的方式来存入生成的对象作为对象池,不断调用这个集合里的对象,通过将这些对象不断设为激活与未激活的方式即可。

将会用到两个集合:

游戏对象池结构:Dictionary<string, List<GameObject>> -->通过键值对的形式可以获取到存在集合中的对象

预制体资源结构:Dictionary<string, GameObject>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值