Unity C# C# 简单对象池

        最近一直在找工作,最近快要过年工作难找啊,加上本身又是个应届的小白,诶。最近面试做题的时候碰到,有几个图片需要随机出现,需要写一个对象池,当时写的一个简单的对象池,如果有写的不对的地方请大家多指点

对象池服务可以减少从头创建每个对象的系统开销。在激活对象时,它从池中提取。在停用对象时,它放回池中,等待下一个请求。


 private List<GameObject> objList;
 //储存对象的父物体
 private Transform poolTrans;


 //从池中取得,不存在则创建
 public GameObject GetGameObject(string name)
    {
        GameObject go;
        foreach (var obj in objList)
        {
            if (name== obj .name)
            {
                go = obj ;
                objList.Remove(obj );
                go.SetActive(true);
                Debug.Log("DXCCCCCCCCC");
                return go;
            }
        }
        Debug.Log("NNNNNNNNNNN");
        go = GameObject.Instantiate(Resources.Load("name") as GameObject);
        return go;
    }

  //放回池
  public void PutGameObject(GameObject obj)
    {
        objList.Add(obj);
        obj.transform.parent = poolTrans;
        obj.SetActive(false);
    }

当时做的时候达到了基本要求,但还有许多可以改善的地方,比如对象的类型,然后从对象池获取对象时的坐标位置缩放,池的大小限制等。

最后贴一个Unity大中华区刘钢的一个项目架构设计与开发管理的讲座视频  https://v.qq.com/x/page/d016340mkcu.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值