Unity 如何实现一个高效的对象池

前言

当我们频繁创建和销毁某个游戏对象的时候,可能对GC是一个很大的开销,这时一般我们都会引入对象池模块。

对象池:顾名思义,就是对象的一个缓存池子,可以存取对象,方便对象的回收和复用。避免了大量对象创建和销毁时产生GC。

1.对象池v1.0

首先我们先来写一个最简单的对象池,针对单个游戏对象的对象池,可以对一个指定的预制体,进行对象实例的创建和回收,对象池子其实就是一个Queue队列,为什么是一个队列呢?主要原因是因为队列Queue和栈Stack的存取效率是最高的,而我偏向使用Queue的原因是因为它是一个先进先出(FIFO)的结构更直观,当然能如果用List也不是不可以,只不过List如果存取不当,容易索引越界。

下面展示代码:(主要展示结构,不包含细节和异常处理)

///单个对象池pool
public class PrefabPool
{
   
    private GameObject prefab;
    
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页
实付 19.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值