Esempio n. 1
0
        private IEnumerator UnloadScene()
        {
            yield return(_assetManager.Clear());

            var count     = SceneManager.sceneCount;
            var sceneList = new List <Scene>();

            for (int i = 0; i < count; ++i)
            {
                var scene = SceneManager.GetSceneAt(i);
                sceneList.Add(scene);
            }

            foreach (var scene in sceneList)
            {
                if (IsSceneUnloadable(scene))
                {
                    yield return(SceneManager.UnloadSceneAsync(scene.name));
                }
            }

            yield return(Resources.UnloadUnusedAssets());

            GC.Collect();
            _logger.InfoFormat("Server Room is Disposed!");
            _state = RoomState.Disposed;
        }