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;
        }
    
    
    }
  • 相关阅读:
    textarea输入字符有限制
    linux 简单命令
    jQuery animate()
    两张图切换
    表单验证 靠name获取
    jquery验证手机号码
    倒计时
    锚点链接 阻止a标签跳转
    滚动监听: bootstrap 的scrollspy
    MySQL 02
  • 原文地址:https://www.cnblogs.com/litmin/p/7212007.html
Copyright © 2011-2022 走看看