Ejemplo n.º 1
0
Archivo: Pools.cs Proyecto: postmeJ/ADF
        /// <summary>
        ///  得到游戏对象(“多模”集合)
        ///
        /// 功能描述:
        ///     1: 对指定“预设”在自己的缓冲池中激活一个,且加入自己缓冲池中的"可用激活池"。
        ///     2: 然后再建立一个池对象,且激活预设,再加入自己的缓冲池中的“可用激活池”中。
        /// </summary>
        /// <param name="prefab"></param>
        /// <param name="pos"></param>
        /// <param name="rot"></param>
        /// <returns></returns>
        public GameObject GetGameObject(GameObject prefab, Vector3 pos, Quaternion rot)
        {
            GameObject obj = null;

            //循环体为定义的“种类”数量
            for (int i = 0; i < PoolOptionArrayLib.Count; i++)
            {
                PoolOption opt = this.PoolOptionArrayLib[i];
                if (opt.Prefab == prefab)
                {
                    //激活指定“预设”
                    obj = opt.Active(pos, rot);
                    if (obj == null)
                    {
                        return(null);
                    }

                    //所有激活的游戏对象必须是本类所挂空对象的子对象。
                    if (obj.transform.parent != ThisGameObjectPosition)
                    {
                        obj.transform.parent = ThisGameObjectPosition;
                    }
                }
            }            //for_end

            return(obj);
        }        //BirthGameObject_end