public UnloadSceneOperation unloadSceneAsync(string scenePath, Action callback = null) { if (localDic.ContainsKey(scenePath)) { unregisterLocal(localDic[scenePath]); } else { return(null); } foreach (LocalManager local in locals) { foreach (Manager manager in local.managers) { manager.onSceneUnload(scenePath); } } UnloadSceneOperation operation = new UnloadSceneOperation(scenePath); operation.onSceneUnloaded += Operation_onSceneUnloaded; operation.onSceneUnloaded += o => { callback?.Invoke(); }; return(operation); }
private void Operation_onSceneUnloaded(UnloadSceneOperation operation) { checkLocals(); foreach (LocalManager local in locals) { foreach (Manager manager in local.managers) { manager.onSceneUnloaded(operation.scenePath); } } }