コード例 #1
0
        public void LoadSceneAsync(string sceneName, Action onLoadComplete = null)
        {
            CoroutineRunner coroutineRunner = DummyGameObject.AddComponent <CoroutineRunner>();

            AsyncOperation asyncLoad = SceneManager.LoadSceneAsync(sceneName);

            coroutineRunner.StartCoroutine(LoadSceneCoroutine(asyncLoad, onLoadComplete));
        }
コード例 #2
0
        public IEnumerator Should_ThrowArgumentException_When_GameObjectArrayRemainsEmpty()
        {
            TargetScript = DummyGameObject.AddComponent <ToggleGameObjects>();
            FieldInfo    = TargetScript.GetType().BaseType.GetField("_objects", BindingFlags.NonPublic | BindingFlags.Instance);

            FieldInfo.SetValue(TargetScript, new GameObject[] {});

            TestSettings.ExpectException("ArgumentException:");
            yield return(null);
        }
コード例 #3
0
        private void canvas_CreateResources(ICanvasAnimatedControl sender, CanvasCreateResourcesEventArgs args)
        {
            //Initialize image loader with canvas
            //TODO: The image manager may fail for multiple frames
            ImageManager.Initialize(sender);

            //Initialize game systems
            drawIndex    = new DrawableIndex();
            collisions   = new CollisionManager();
            gameObjects  = new GameObjectIndex(drawIndex, collisions);
            inputManager = new InputManager();
            players      = new PlayerRegistry();

            //Load the required images
            ImageManager.LoadImages(PacmanImagePaths.Images);

            //Register key event listeners
            Window.Current.CoreWindow.KeyDown += canvas_KeyDown;
            Window.Current.CoreWindow.KeyUp   += canvas_KeyUp;


            //Create a player
            player = new PlayerGameObject(new Vector2(200, 300), gameObjects, players, inputManager, KeyboardFormat.WASD);
            gameObjects.registerGameObject(player);


            //Create a dummy game object
            DummyGameObject testingObject = new DummyGameObject(new Vector2(100, 100), new Vector2(45, 45), gameObjects);

            //Register the new object in the game object index
            gameObjects.registerGameObject(testingObject);

            //Register the new object as an input listener
            inputManager.registerInputSource(new PlayerKeyboardInputSource(testingObject, KeyboardFormat.ARROWS));

            //Enable debug drawing
            drawIndex.SetDebugDrawing(true);

            //Add a wall
            WallGameObject wall = new WallGameObject(new Vector2(100, 100), new Vector2(150, 200));

            gameObjects.registerGameObject(wall);
            WallGameObject wall2 = new WallGameObject(new Vector2(150, 200), new Vector2(350, 250));

            gameObjects.registerGameObject(wall2);
            WallGameObject wall3 = new WallGameObject(new Vector2(300, 100), new Vector2(350, 200));

            gameObjects.registerGameObject(wall3);

            //Add an enemy object
            EnemyGameObject enemy = new EnemyGameObject(new Vector2(300, 300), gameObjects, new Random());

            enemy.Target = player;
            gameObjects.registerGameObject(enemy);
        }
コード例 #4
0
        private void AttachTextComponentToDummyGameObject()
        {
            TextComponent = DummyGameObject.AddComponent <Text>();
            // When working in the editor, this serialized field would be initialized with an empty string
            TextComponent.text = "";

            var type      = typeof(TextAdapter);
            var fieldInfo = type.GetField("_text", BindingFlags.NonPublic | BindingFlags.Instance);

            fieldInfo?.SetValue(TargetScript, TextComponent);
        }
コード例 #5
0
 public void CanRegisterGameObject()
 {
     var gm = new GameManager();
     var go = new DummyGameObject();
     Assert.That(gm.GameObjects.Count, Is.EqualTo(0));
     gm.Register(go);
     Assert.That(gm.GameObjects.Count, Is.EqualTo(1));
     Assert.That(gm.GameObjects.Contains(go), Is.EqualTo(true));
     gm.Unregister(go);
     gm.RunTurn();
 }
コード例 #6
0
 public void ActionIsCalledOnGameObjectInRunTurn()
 {
     var gm = new GameManager();
     var go = new DummyGameObject();
     gm.Register(go);
     Assert.That(go.ActionCalled, Is.False);
     gm.RunTurn();
     Assert.That(go.ActionCalled, Is.True);
     gm.Unregister(go);
     gm.RunTurn();
 }
コード例 #7
0
        public IEnumerator Should_ThrowNullReferenceException_When_AtLeastOneGameObjectArrayElementIsNull()
        {
            TargetScript = DummyGameObject.AddComponent <ToggleGameObjects>();
            FieldInfo    = TargetScript.GetType().BaseType.GetField("_objects", BindingFlags.NonPublic | BindingFlags.Instance);

            var gameobjects = new GameObject[] { null };

            FieldInfo.SetValue(TargetScript, gameobjects);

            TestSettings.ExpectException("NullReferenceException:");
            yield return(null);
        }
コード例 #8
0
        public IEnumerator Should_ContainOnlyActiveGameObjects_When_ScriptFullyInitialized()
        {
            TargetScript = DummyGameObject.AddComponent <ToggleGameObjects>();
            FieldInfo    = TargetScript.GetType().BaseType.GetField("_objects", BindingFlags.NonPublic | BindingFlags.Instance);

            var gameobjects = new[] { new GameObject(TypeName), new GameObject(TypeName) };

            FieldInfo.SetValue(TargetScript, gameobjects);

            var actual = gameobjects[0].activeSelf && gameobjects[1].activeSelf;

            Assert.IsTrue(actual);
            yield return(null);
        }
コード例 #9
0
        public IEnumerator Should_DisableAllGameObjects_When_ToggleMethodWasCalled()
        {
            TargetScript = DummyGameObject.AddComponent <ToggleGameObjects>();
            FieldInfo    = TargetScript.GetType().BaseType.GetField("_objects", BindingFlags.NonPublic | BindingFlags.Instance);

            var gameobjects = new[] { new GameObject(TypeName), new GameObject(TypeName) };

            FieldInfo.SetValue(TargetScript, gameobjects);
            TargetScript.Toggle();

            var actual = gameobjects[0].activeSelf || gameobjects[1].activeSelf;

            Assert.IsFalse(actual);
            yield return(null);
        }
コード例 #10
0
        public IEnumerator Should_ContainOnlyActiveComponents_When_ScriptFullyInitialized()
        {
            TargetScript = DummyGameObject.AddComponent <ToggleComponents>();
            FieldInfo    = TargetScript.GetType().BaseType.GetField("_objects", BindingFlags.NonPublic | BindingFlags.Instance);

            var monoBehaviour1 = new GameObject(TypeName).AddComponent <DefaultBehaviour>();
            var monoBehaviour2 = new GameObject(TypeName).AddComponent <DefaultBehaviour>();
            var components     = new[] { monoBehaviour1, monoBehaviour2 };

            FieldInfo.SetValue(TargetScript, components);

            var propertyInfo         = typeof(MonoBehaviour).GetProperty("enabled");
            var monobehaviour1Status = (bool)propertyInfo.GetValue(monoBehaviour1, null);;
            var monobehaviour2Status = (bool)propertyInfo.GetValue(monoBehaviour2, null);;

            var actual = monobehaviour1Status && monobehaviour2Status;

            Assert.IsTrue(actual);
            yield return(null);
        }
コード例 #11
0
 private void AttachTargetScriptToDummyGameObject()
 {
     TargetScript = DummyGameObject.AddComponent <TextAdapter>();
     // When working in the editor, this serialized field would be initialized with an empty string
     TargetScript.Id = "";
 }
コード例 #12
0
 public IEnumerator Should_ThrowNullReferenceException_When_ScriptableObjectWasNotSet()
 {
     TestSettings.ExpectNullReferenceException();
     DummyGameObject.AddComponent <MainTextureOffsetAnimation>();
     yield return(null);
 }