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) }
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()); }
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 }