Exemple #1
0
        internal void DestroyPool()
        {
            if (m_reference.Count > 0)
            {
                GameObject[] objects = new GameObject[m_reference.Count];
                int          i       = 0;
                foreach (var obj in m_reference)
                {
                    objects[i++] = obj;
                }
                foreach (var obj in objects)
                {
                    ReleaseObject(obj);
                }
            }

            foreach (var free in m_free)
            {
                Object.Destroy(free);
            }
            m_free.Clear();

            FinalLoader.UnloadAsset(m_asset);
            m_asset = null;
        }
Exemple #2
0
        public async Task UnloadSceneAsync(string sceneName)
        {
            AssetCache cache;

            if (!FinalLoader.AssetNameCaches.TryGetValue(sceneName, out cache))
            {
                return;
            }

            await SceneManager.UnloadSceneAsync(sceneName);

            FinalLoader.UnloadAsset(cache);
        }
Exemple #3
0
        public async Task UnloadSceneAsync(string sceneName)
        {
            AssetCache cache;

            if (!FinalLoader.AssetNameCaches.TryGetValue(GetPathConverter().GetAssetBundleName(sceneName), out cache))
            {
                return;
            }

            await SceneManager.UnloadSceneAsync(sceneName);

            FinalLoader.UnloadAsset(cache);
        }