Unity对象池管理
一、Demo展示
二.逻辑
在游戏中会出现大量重复的物体需要频繁的创建和销毁;比如子弹,敌人,成就列表的格子等;
频繁的创建删除物体会造成很大的开销,像这种大量创建重复且非持续性保持作用的对象我们会使用对象池将其管理起来,用空间换效率;
对象池的要对外提供创建销毁对象的接口,已经添加对象池的接口;
对内要提供创建对象,根据路径查找预制的接口;
整体逻辑如下:
二.加载/添加对象池
添加资源路径,分为Resources文件夹下和SteamingAssets文件下资源;
Resources加载时路径不需要后缀,SteamingAssets需要后缀,根据path路径开头的判断加载方式,同时对路径做处理;
SteamingAssets需要根据平台添加路径头Application.streamingAssetsPath;
Resources需要去掉格式后缀,如.perfab;
这里我测试只使用Resources路径,正式项目自行处理;
存放预创建好的对象:
private Dictionary<string,List<GameObject>> pool;
存放预制体路径:
private Dictionary<string, string> objPath;
public void InitPath()
{
//测试用