void IModule.UnloadModule() { EditorApplication.update -= Update; EditorSceneManager.sceneSaved -= OnSceneSaved; entityComponentsAdded -= OnEntityComponentsChanged; entityComponentsRemoved -= OnEntityComponentsChanged; functionalitySubscribersAdded -= OnFunctionalitySubscribersChanged; functionalitySubscribersRemoved -= OnFunctionalitySubscribersChanged; m_PollingTask = null; m_BrokenComponentCount = 0; currentSceneIsFaceScene = false; m_CurrentEntities.Clear(); m_CurrentEntityComponents.Clear(); m_CurrentFunctionalitySubscribers.Clear(); m_CurrentSubscriberComponents.Clear(); }
void IModule.LoadModule() { if (EditorApplication.isPlayingOrWillChangePlaymode) { return; } GetCurrentComponents(); m_PollingTask = new EditorSlowTask(ScenePoll, m_PollingInterval); EditorApplication.update += Update; EditorSceneManager.sceneSaved += OnSceneSaved; entityComponentsAdded += OnEntityComponentsChanged; entityComponentsRemoved += OnEntityComponentsChanged; functionalitySubscribersAdded += OnFunctionalitySubscribersChanged; functionalitySubscribersRemoved += OnFunctionalitySubscribersChanged; FindBrokenComponents(); ScenePoll(); // Calling this here makes sure we immediately have updated scene information as soon as we switch scenes CheckIfFaceScene(); }