zoukankan      html  css  js  c++  java
  • Unity Object Pool

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    [System.Serializable]
    public class ObjectPoolItem
    {
        public GameObject objectToPool;
    
        public int amountToPool;
    
        public bool shouldExpand = true;
    }
    
    public class ObjectPooler : MonoBehaviour
    {
        public static ObjectPooler SharedInstance;
    
        public List<GameObject> pooledObjects;
    
        public List<ObjectPoolItem> itemToPool;
    
        void Awake()
        {
            SharedInstance = this;
        }
    
        private void Start()
        {
            pooledObjects = new List<GameObject>();
            foreach(ObjectPoolItem item in itemToPool)
            {
                for (int i = 0; i < item.amountToPool; i++)
                {
                    GameObject obj = (GameObject)Instantiate(item.objectToPool);
                    obj.SetActive(false);
                    pooledObjects.Add(obj);
                }
            }
            
        }
    
        public GameObject GetPooledObject(string tag)
        {
            for (int i = 0; i < pooledObjects.Count; i++)
            {
                if (!pooledObjects[i].activeInHierarchy && pooledObjects[i].tag == tag)
                {
                    return pooledObjects[i];
                }
            }
            foreach (ObjectPoolItem item in itemToPool)
            {
                if (item.objectToPool.tag == tag)
                {
                    if (item.shouldExpand)
                    {
                        GameObject obj = (GameObject)Instantiate(item.objectToPool);
                        obj.SetActive(false);
                        pooledObjects.Add(obj);
                        return obj;
                    }
                }
            }
            return null;
        }
    
    
    }
  • 相关阅读:
    javascript 心得
    pdfbox加载pdf时遇到wrappedioexception报错处理方式
    缩写
    Java学习——连接数据库
    oracle 关于null值排序
    Java学习笔记(二)
    kvm安装windows系统
    导入excel文件信息
    shell脚本根据端口号自启动jar
    spirngboot使用netty实现UDP协议接收数据
  • 原文地址:https://www.cnblogs.com/litmin/p/7212007.html
Copyright © 2011-2022 走看看