Ejemplo n.º 1
0
    /**
     * 生成对象
     * */
    public GameObject Spawn()
    {
        GameObject obj = null;      //池中对象

        foreach (GameObject o in subPool)
        {//判断是否激活:
            if (o != null && o.activeSelf == false)
            {
                obj = o;
            }
        }

        if (obj == null)
        {                                                                  //第一次和池子中没有的时候
            obj = GameObject.Instantiate(m_Pref, cache, new Quaternion()); //创建新对象
            subPool.Add(obj);                                              //入池
        }

        obj.SetActive(true);        //激活对象

        //通过接口重用:
        IReusable ir = obj.GetComponent <IReusable>();

        if (ir != null)
        {
            ir.Spawn();
        }
        return(obj);
    }