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; }
public async Task UnloadSceneAsync(string sceneName) { AssetCache cache; if (!FinalLoader.AssetNameCaches.TryGetValue(sceneName, out cache)) { return; } await SceneManager.UnloadSceneAsync(sceneName); FinalLoader.UnloadAsset(cache); }
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); }