예제 #1
0
        public IEnumerator _06StopMovingWhenInRange()
        {
            playerObject = Spawner.SpawnPlayer(0, 0.5f);
            ogreObject   = Spawner.SpawnOgre(2, 0.5f);
            ogre         = ogreObject.GetComponent <MeleeEnemyController>();

            yield return(new WaitForSeconds(2.0f));

            var ogreXPos = ogre.GetPosition().x;

            Debug.Log(ogreXPos);
            Assert.IsTrue(ogreXPos > ogre.baseRange - 0.01 && ogreXPos < ogre.baseRange + 0.01);     //more confirmation, it should be extremely accurate to the default value of 1.5f

            yield return(new WaitForSeconds(0.5f));

            var newogreXPos = ogreObject.transform.position.x;

            Assert.IsTrue(Mathf.Abs(newogreXPos - ogreXPos) < Mathf.Epsilon);      //Mathf.Epsilon is a very small number (close to 0)
        }
예제 #2
0
        public IEnumerator _04LookingAtPlayer()
        {
            playerObject = Spawner.SpawnPlayer(-4, 1);
            ogreObject   = Spawner.SpawnOgre(0, 1);
            player       = playerObject.GetComponent <PlayerController>();
            ogre         = ogreObject.GetComponent <MeleeEnemyController>();

            //OnSpawn, the enemy faces the default side, which is right as intended by the sprites
            Assert.AreEqual(1, ogre.GetLookDirection());
            Debug.Log("first assert passed: Local Scale is 1 on spawn");

            //the ogreObject should look to the left at the playerObject, as update() ran once
            yield return(null);

            var ogreXpos   = ogre.GetPosition().x;
            var playerXpos = player.GetPosition().x;

            //Confirming that ogreObject is to the left of the playerObject
            Assert.Greater(ogreXpos, playerXpos);
            Assert.AreEqual(-1, ogre.GetLookDirection());
        }
예제 #3
0
        public IEnumerator _05MeleeMoveTowardsPlayerAtCorrectSpeed()
        {
            playerObject = Spawner.SpawnPlayer(24, 0.5f);
            ogreObject   = Spawner.SpawnOgre(0, 0.5f);
            ogre         = ogreObject.GetComponent <MeleeEnemyController>();

            var originalOgreXPos = ogre.GetPosition().x;

            Assert.AreEqual(originalOgreXPos, 0);
            Debug.Log("First assert passed");

            yield return(new WaitForSeconds(1.0f));  //It should move towards (24,?) where the player is

            var newOgreXPos = ogreObject.transform.position.x;

            //speed is in unit per second
            var expectedXPos = originalOgreXPos + ogre.speed;

            //within 0.1 variance is accurate enough
            Debug.Log(newOgreXPos);
            Assert.IsTrue(newOgreXPos > expectedXPos - 0.1 && newOgreXPos < expectedXPos + 0.1);    //within expected speed
        }