对象池优化

using UnityEngine;

using System.Collections;

using System.Collections.Generic;

/// <summary>

/// 对象池

/// </summary>

public class PoolManager : MonoBehaviour {

    public static PoolManager Instance;

    public Transform qiuPrefab;

    public int amount;//开始的数量

    //qiu 的list 用于管理对象池中的对象

    public List<Transform> qiuList = new List<Transform>();

    //public int currentAmount { get { return qiuList.Count} }

    private void Awake()

    {

        Instance = this;

    }

    // Use this for initialization

    void Start ()

    {

        //1.预先在池中放入一些对象

        for (int i = 0; i < amount; i++)

        {

            Transform clone = Instantiate(qiuPrefab);

            qiuList.Add(clone);

            clone.gameObject.SetActive(false);

        }

}

    public Transform Get()

    {

        if (qiuList.Count == 0)

        {

            Transform clone = Instantiate(qiuPrefab);

            return clone;

        }

        //取

        Transform qiu = qiuList[0];

        //

        qiuList.RemoveAt(0);

        return qiu;

    }

    public void Set(Transform qiu)

    {

        qiu.gameObject.SetActive(false);

        qiuList.Add(qiu);

    }

}

猜你喜欢

转载自blog.csdn.net/zhangqiqi01/article/details/81105463