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;
        }
    
    
    }
  • 相关阅读:
    MSP430:管脚的第二功能选择
    MSP430 WDT
    MSP430 G2553 Timer 中断总结
    Timer A UP mode 中断
    AD10 库下载地址
    mysql的视图,事务,索引,外键
    mariadb主从配置
    DNS服务搭建
    数据库的连接查询
    数据库设计及ER模型
  • 原文地址:https://www.cnblogs.com/litmin/p/7212007.html
Copyright © 2011-2022 走看看