Пример #1
0
        private static async Task <GameObjectPool> GetOrCreateGameObjectPoolAsync(string assetName)
        {
            GameObjectPool pool;

            try
            {
                await s_getOrCreateGameObjectPoolSemaphore.WaitAsync();

                if (!Pools.TryGetValue(assetName, out pool))
                {
                    GameObject asset = await FinalLoader.LoadAssetAsync <GameObject>(assetName);

                    if (asset != null)
                    {
                        pool = new GameObjectPool(asset, assetName, s_data.poolMaxCache, s_data.poolEnableAutoRelease, s_data.poolAutoReleaseDuration);
                        Pools.Add(assetName, pool);
                    }
                }
            }
            finally
            {
                s_getOrCreateGameObjectPoolSemaphore.Release();
            }
            return(pool);
        }
Пример #2
0
 private async Task LoadDependenciesAsync(string assetName)
 {
     string[] dps = GetManifest().GetDirectDependencies(assetName);
     for (int i = 0; i < dps.Length; i++)
     {
         await FinalLoader.LoadAssetAsync <Object>(dps[i]);
     }
 }