目录
本篇文章来分享一下如何实现游戏对象池,游戏对象池通过重用已存在的对象,减少频繁的内存分配和回收,从而降低垃圾回收的负担,提升性能。
对象池的实现和使用思路
1.创建池
通过字典作为对象池,来管理对象
2.创建一个对象并使用对象
查找池中有无可用的对象,①若池中有,则使用对象;②若池中没有,实例化对象,放入池中。然后再返回
3.释放资源
从池中删除对象,按Key释放部分对象;释放全部对象
4.回收对象
使用完后,将对象返回池中【从画面中消失】,回收方式有即时回收对象和延时回收对象
完整代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 游戏对象池
/// </summary>
public class GameObjectPool : MonoBehaviour
{
/// <summary>
/// 1.创建池
/// </summary>
private Dictionary<string, List<GameObject>> cache = new Dictionary<string, List<GameObject>>();
/// <summary>
/// 2.创建一个对象并使用对象
/// </summary>
/// <param name="key">关键字</param>
/// <param name&