public override void Init() { OnInit?.Invoke(NestedScope); base.Init(); SceneManager.activeSceneChanged += ActiveSceneChanged; SceneManager.sceneUnloaded += s => { NestedScope.Save(); }; }
private void ActiveSceneChanged(Scene oldScene, Scene newScene) { if (oldScene.name != null) { NestedScope.Save(); } NestedScope = new T(); OnSceneChange?.Invoke(NestedScope, newScene); (NestedScope as ScopePlayerPrefs)?.Setup(newScene.name); NestedScope.Init(); }