Пример #1
0
 /// <summary>
 /// 异步从对象池中获得实例化对象
 /// </summary>
 /// <param name="prefabName"></param>
 /// <param name="callback"></param>
 public static void GetObjectAsync(string prefabName, CallBack <GameObject> callback)
 {
     if (dataDic.ContainsKey(prefabName) && dataDic[prefabName].Count > 0)
     {
         GameObject po = dataDic[prefabName].Pop();
         if (po)
         {
             ResetObject(po);
             if (callback != null)
             {
                 callback(po);
             }
         }
         else
         {
             GetInstanceObject.GetInstanceAsync(prefabName, callback);
         }
     }
     else
     {
         GetInstanceObject.GetInstanceAsync(prefabName, callback);
     }
 }
Пример #2
0
        /// <summary>
        /// 从对象池中获得实例化对象
        /// </summary>
        /// <param name="prefabName"></param>
        /// <returns></returns>
        public static GameObject GetObject(string prefabName)
        {
            if (!Application.isPlaying)
            {
                return(GetInstanceObject.GetInstance(prefabName));
            }

            if (dataDic.ContainsKey(prefabName) && dataDic[prefabName].Count > 0)
            {
                GameObject po = dataDic[prefabName].Pop();
                if (po)
                {
                    ResetObject(po);
                    return(po);
                }
                else
                {
                    return(GetInstanceObject.GetInstance(prefabName));
                }
            }

            return(GetInstanceObject.GetInstance(prefabName));
        }