• 对象池


    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using Assets.Script.nn;
    
    /// <summary>
    /// 卡牌池
    /// </summary>
    public class CardPool:MonoBehaviour
    {
        static Stack<GameObject> objectPool = new Stack<GameObject>();
        
        /// <summary>
        /// 清空池子
        /// </summary>
        public static void Clear()
        {
            objectPool.Clear();
    
            foreach(GameObject go in objectPool)
            {
                Destroy(go);
            }
        }
        /// <summary>
        ////// </summary>
        /// <returns></returns>
        public static GameObject Pop()
        {
            if (objectPool.Count == 0)
            {
                GameObject newcard = Instantiate(Resources.Load<GameObject>("nn/3DCard/Card"));
    
                objectPool.Push(newcard);
            }
    
            GameObject card = objectPool.Pop();
            card.SetActive(true);
            card.transform.position = Vector3.zero;
            return card;
        }
    
        /// <summary>
        ////// </summary>
        /// <param name="obj"></param>
        public static void Release(GameObject obj)
        {
            if (objectPool.Contains(obj))
                throw new System.Exception("对象已经放入池内!");
            objectPool.Push(obj);
            obj.GetComponent<Assets.Script.nn.Card>().ResetCardState();
            obj.SetActive(false);
            obj.transform.localScale = new Vector3(0.7f,0.7f,0.7f);
    
        }
    
    }
  • 相关阅读:
    css
    css笔记
    css笔记
    echarts
    css笔记
    跨域
    JS案例
    html2canvas
    echarts
    echarts
  • 原文地址:https://www.cnblogs.com/0315cz/p/8315914.html
Copyright © 2020-2023  润新知