コード例 #1
0
        [Test] public void SwitchToDuringLeave()
        {
            // Set up some objects
            Scene scene  = new Scene();
            Scene scene2 = new Scene();

            // Switch to the first Scene regularly
            {
                Scene.SwitchTo(scene);
                Assert.AreEqual(Scene.Current, scene);
            }

            // Switch to the second while leaving
            {
                Scene.SwitchTo(scene);

                GameObject obj             = new GameObject("SwitchObject");
                var        switchComponent = new ShutdownSwitchToSceneComponent {
                    Target = scene2
                };
                obj.AddComponent(switchComponent);
                scene.AddObject(obj);

                Scene.SwitchTo(null);
                DualityApp.Update();
                Assert.False(switchComponent.Switched);
                Assert.AreEqual(Scene.Current, scene2);
            }

            // Clean up
            scene.Dispose();
            scene2.Dispose();
        }
コード例 #2
0
ファイル: SceneTest.cs プロジェクト: arajar/duality
		[Test] public void SwitchTo()
		{
			// Set up some objects
			Scene scene = new Scene();
			Scene scene2 = new Scene();

			// Switch to the first Scene regularly
			{
				Scene.SwitchTo(scene);
				Assert.AreEqual(Scene.Current, scene);
			}
			
			// Switch to the second during update
			{
				GameObject obj = new GameObject("SwitchObject");
				var switchComponent = new UpdateSwitchToSceneComponent { Target = scene2 };
				obj.AddComponent(switchComponent);
				scene.AddObject(obj);

				DualityApp.Update();
				Assert.False(switchComponent.Switched);
				Assert.AreEqual(Scene.Current, scene2);

				Scene.SwitchTo(scene);
				Assert.AreEqual(Scene.Current, scene);
			}
			
			// Switch to the second while entering
			{
				Scene.SwitchTo(null);

				GameObject obj = new GameObject("SwitchObject");
				var switchComponent = new InitSwitchToSceneComponent { Target = scene2 };
				obj.AddComponent(switchComponent);
				scene.AddObject(obj);

				Scene.SwitchTo(scene);
				DualityApp.Update();
				Assert.False(switchComponent.Switched);
				Assert.AreEqual(Scene.Current, scene2);

				Scene.SwitchTo(scene);
				Assert.AreEqual(Scene.Current, scene);
			}
			
			// Switch to the second while leaving
			{
				Scene.SwitchTo(null);

				GameObject obj = new GameObject("SwitchObject");
				var switchComponent = new ShutdownSwitchToSceneComponent { Target = scene2 };
				obj.AddComponent(switchComponent);
				scene.AddObject(obj);

				Scene.SwitchTo(scene);
				DualityApp.Update();
				Assert.False(switchComponent.Switched);
				Assert.AreEqual(Scene.Current, scene2);

				Scene.SwitchTo(scene);
				Assert.AreEqual(Scene.Current, scene);
			}

			// Clean up
			scene.Dispose();
			scene2.Dispose();
		}