/// <inheritdoc/> void IModule.LoadModule() { if (!m_SceneModule.simulateInPlaymode && Application.isPlaying) { return; } // TODO: Move environment manager functionality to runtime assembly EditorOnlyDelegates.OpenSimulationScene = OpenSimulation; EditorOnlyDelegates.GetSimulatedContentRoot = () => ContentRoot; instance = this; if (!SimulationSceneUsers.instance) { m_SimulationSceneUsers = SimulationSceneUsers.CreateSimulationSceneSubscribers(); } else { m_SimulationSceneUsers = SimulationSceneUsers.instance; } if (m_SceneModule.simulateInPlaymode && EditorApplication.isPlayingOrWillChangePlaymode) { m_SimulationSceneUsers.AddSimulationUser(MARSSceneModule.instance); m_SceneModuleIsUser = true; } if (!Application.isPlaying) { OpenSimulation(); } AssemblyReloadEvents.afterAssemblyReload += OnAfterAssemblyReload; AssemblyReloadEvents.beforeAssemblyReload += OnBeforeAssemblyReload; }
void OnAfterAssemblyReload() { isAssemblyReloading = false; if (EditorApplication.isPlayingOrWillChangePlaymode) { return; } if (!SimulationSceneUsers.instance) { m_SimulationSceneUsers = SimulationSceneUsers.CreateSimulationSceneSubscribers(); } else { m_SimulationSceneUsers = SimulationSceneUsers.instance; } OpenSimulation(); }