public IEnumerator SubScene_NotOpenedForEdit_RemainsClosedInPlayMode([Values(EnterPlayModeOptions.DisableDomainReload | EnterPlayModeOptions.DisableSceneReload)] EnterPlayModeOptions enterPlayModeOptions) { // Set editor settings EditorSettings.enterPlayModeOptionsEnabled = enterPlayModeOptions != EnterPlayModeOptions.None; EditorSettings.enterPlayModeOptions = enterPlayModeOptions; var expectingDomainReload = !enterPlayModeOptions.HasFlag(EnterPlayModeOptions.DisableDomainReload); DisableSetupAndTearDown(); EditorSceneManager.OpenScene("Assets/HelloCube/3. SubScene/SubScene.unity", OpenSceneMode.Single); var subScene = Object.FindObjectOfType <SubScene>(); Assert.NotNull(subScene); Assert.IsFalse(subScene.IsLoaded); Assert.AreEqual(1, SceneManager.sceneCount); // Enter play mode yield return(new EnterPlayMode(expectingDomainReload)); // Validate that subscene is still loaded subScene = Object.FindObjectOfType <SubScene>(); Assert.NotNull(subScene); Assert.IsFalse(subScene.IsLoaded); Assert.AreEqual(1, SceneManager.sceneCount); yield return(new ExitPlayMode()); EnableSetupAndTearDown(); }
public IEnumerator DefaultBootstrappedWorld_OnSecondEnterPlayMode_ProducesOneWorld([ValueSource(nameof(TestEnterPlayModeOptions))] EnterPlayModeOptions enterPlayModeOptions) { // Set editor settings EditorSettings.enterPlayModeOptionsEnabled = enterPlayModeOptions != EnterPlayModeOptions.None; EditorSettings.enterPlayModeOptions = enterPlayModeOptions; m_ExpectingDomainReload = !enterPlayModeOptions.HasFlag(EnterPlayModeOptions.DisableDomainReload); DisableSetupAndTearDown(); // Make sure we have an Editor world initialized AddVerificationScript(); Assert.NotNull(World.DefaultGameObjectInjectionWorld); // Enter play mode Debug.Log("Before EnterPlayMode"); yield return(new EnterPlayMode(m_ExpectingDomainReload)); m_DefaultWorldsCount = GetDefaultWorldsCount(); m_EditorWorldsCount = GetEditorWorldsCount(); m_FirstEnterWorldsCount = World.All.Count; Debug.Log("Before ExitPlayMode"); yield return(new ExitPlayMode()); // Validate Game World in Play Mode Assert.AreEqual(1, m_DefaultWorldsCount); // Validate no Editor World in Play Mode Assert.AreEqual(0, m_EditorWorldsCount); Debug.Log("Before EnterPlayMode"); yield return(new EnterPlayMode(m_ExpectingDomainReload)); m_DefaultWorldsCount = GetDefaultWorldsCount(); m_EditorWorldsCount = GetEditorWorldsCount(); m_SecondEnterWorldsCount = World.All.Count; Debug.Log("Before ExitPlayMode"); yield return(new ExitPlayMode()); EnableSetupAndTearDown(); Assert.AreEqual(1, m_DefaultWorldsCount); Assert.AreEqual(0, m_EditorWorldsCount); Assert.AreEqual(m_FirstEnterWorldsCount, m_SecondEnterWorldsCount); }