简单易懂的对象池

如果说对象池的话,就是有一个池子里都是对象,这么说的话,是不是没啥毛病,那么这一池子的对象都是用来干啥的
首先,我们要实现一个可以盛放对象的池子

public class duixiangchi : MonoBehaviour
{
    public static Dictionary<string, GameObject> dic = new Dictionary<string, GameObject>();

这里我们创建了一个Dictionary用来保存所有的对象,Dictionary只是一个用于存储的键值对,其他的语言也有相似的功能实现,如果实在不会,可以用json来实现,只是在做的时候需要封装一下json的读写功能,便于对象的添加与删除

实现了用于存储对象的Dictionary后 ,我们需要来对每个对象在运行的过程中进行逻辑处理

1.运行过程中需要将对象取出

GameObject ob= dic[objectString]; //获取存放的对象

2.将对象实例化出来并激活

Instantiate(ob,position) as GameObject;

3.将实例化出来的对象从对象池中移除

dic.RemoveAt(ObjectIndex);

4.如果对象在场景中被销毁,则会重新添加至对象池中

对象池中存放的也可以不仅仅是单个对象,也可以存放一类对象,比如dir[monst]对应的是怪物池,则怪物对象池中又会有一堆单独的怪物对象,将用过的对象保存起来,等下一次需要这种对象的时候,再拿出来重复使用,从而在一定程度上减少频繁创建对象所造成的开销

后面会用node来写一个利用json读写来实现的Dictionary功能,欢迎大家关注我哦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值