//预加载:可提供初始实例化个数
        public static async ETTask PreLoadGameObjectAsync(this GameObjectPoolComponent self, string path, int inst_count, Action callback = null)
        {
            CoroutineLock coroutineLock = null;

            try
            {
                coroutineLock = await CoroutineLockComponent.Instance.Wait(CoroutineLockType.Resources, path.GetHashCode());

                if (self.CheckHasCached(path))
                {
                    callback?.Invoke();
                }
                else
                {
                    var go = await ResourcesComponent.Instance.LoadAsync <GameObject>(path);

                    if (go != null)
                    {
                        self.CacheAndInstGameObject(path, go as GameObject, inst_count);
                    }
                    callback?.Invoke();
                }
            }
            finally
            {
                coroutineLock?.Dispose();
            }
        }
 //尝试从缓存中获取
 public static bool TryGetFromCache(this GameObjectPoolComponent self, string path, out GameObject go)
 {
     go = null;
     if (!self.CheckHasCached(path))
     {
         return(false);
     }
     if (self.__instCache.TryGetValue(path, out var cachedInst))
     {
         if (cachedInst.Count > 0)
         {
             var inst = cachedInst[cachedInst.Count - 1];
             cachedInst.RemoveAt(cachedInst.Count - 1);
             go = inst;
             if (inst == null)
             {
                 Log.Error("Something wrong, there gameObject instance in cache is null!");
                 return(false);
             }
             return(true);
         }
     }
     if (self.__goPool.TryGet(path, out var pooledGo))
     {
         if (pooledGo != null)
         {
             var inst = GameObject.Instantiate(pooledGo);
             self.__goInstCountCache[path] = self.__goInstCountCache[path] + 1;
             self.__instPathCache[inst]    = path;
             go = inst;
             return(true);
         }
     }
     return(false);
 }