public void Awake_NegativeMaxSpeedValueThrowsException() { string expectedLog = "NegativeSpeedValueException: Specified argument was out of the range of valid values."; LogAssert.Expect(LogType.Exception, expectedLog); _mover = instantiateNegativeSpeedMover() as LinearMover; }
protected override Mover instantiateMover() { LinearMover prefab = Resources.Load <LinearMover>(_moverPrefabPath); LinearMover result = GameObject.Instantiate(prefab); result.transform.position = _startPosition; result.Speed = _testSpeed; return(result); }
public void MoveTo_TimeToTargetHasPredictedValue() { _mover = instantiateMover() as LinearMover; // Formula: t = s / v (t: Time in seconds | s: distance | v: velocity.magnitude) float predictedTime = _initialDistanceVector.magnitude / _testSpeed; _mover.MoveTo(_target); Assert.AreEqual(_mover.TimeToTarget, predictedTime); }
public IEnumerator MoveTo_MovedBySpeedAfterFixedUpdate() { _mover = instantiateMover() as LinearMover; _mover.MoveTo(_target); yield return(new WaitForFixedUpdate()); float predictedRemainingDistanceToTarget = _initialDistanceVector.magnitude - _testSpeedPerFixedUpdate; float actualRemainingDistaceToTarget = (_target - (Vector2)_mover.transform.position).magnitude; Assert.AreEqual(predictedRemainingDistanceToTarget, actualRemainingDistaceToTarget, _epsilon); }
public IEnumerator MoveTo_ReachesTargetAfterPredictedTime() { Time.timeScale = 20f; _mover = instantiateMover() as LinearMover; _mover.MoveTo(_target); float predictedTime = _mover.TimeToTarget; float timeLeft = predictedTime; while (timeLeft > Time.deltaTime) { Assert.AreNotEqual(_target, (Vector2)_mover.transform.position); timeLeft -= Time.fixedDeltaTime; yield return(new WaitForFixedUpdate()); } yield return(new WaitForFixedUpdate()); Assert.AreEqual(_target, (Vector2)_mover.transform.position); Time.timeScale = 1f; }
public void ProducePath(PathEditor pe) { Enemy e = GenerateTestEnemy(); EnemyMover mover; if(moveString.Equals("Linear")){ mover = new LinearMover(e); }else if(moveString.Equals("Linear_Right")){ mover = new LinearMover(e); mover.PutInRightLane(); }else if(moveString.Equals("Linear_Left")){ mover = new LinearMover(e); mover.PutInLeftLane(); }else if(moveString.Equals("Slowing_Linear")){ mover = new SlowingLinearMover(e); }else if(moveString.Equals("Slowing_Linear_Right")){ mover = new SlowingLinearMover(e); mover.PutInRightLane(); }else if(moveString.Equals("Slowing_Linear_Left")){ mover = new SlowingLinearMover(e); mover.PutInLeftLane(); }else if(moveString.Equals ("Zigzag")){ mover = new ZigzagMover(e); }else if(moveString.Equals ("Zigzag_Mirror")){ ZigzagMover zm = new ZigzagMover(e); zm.Mirror(); mover = zm; }else if(moveString.Equals ("Strafing")){ mover = new StrafingMover(e); }else if(moveString.Equals ("Strafing_Mirror")){ StrafingMover sm = new StrafingMover(e); sm.Mirror(); mover = sm; }else if(moveString.Equals ("Sine")){ mover = new SineMover(e); }else if(moveString.Equals ("Sine_Mirror")){ SineMover sm = new SineMover(e); sm.Mirror(); mover = sm; }else if(moveString.Equals ("Swerve_Right")){ mover = new SwerveMover(e); }else if(moveString.Equals ("Swerve_Left")){ SwerveMover sm = new SwerveMover(e); sm.Mirror(); mover = sm; }else if(moveString.Equals ("Swerve_In_Left")){ SwerveMover sm = new SwerveMover(e); sm.PutInLeftLane(); mover = sm; }else if(moveString.Equals ("Swerve_In_Right")){ SwerveMover sm = new SwerveMover(e); sm.PutInRightLane(); sm.Mirror(); mover = sm; }else if(moveString.Equals ("Semicircle")){ mover = new SemicircleMover(e); }else if(moveString.Equals ("Semicircle_Mirror")){ SemicircleMover sm = new SemicircleMover(e); sm.Mirror(); mover = sm; }else if(moveString.Equals ("Sidestep")){ mover = new SidestepMover(e); }else if(moveString.Equals ("Sidestep_Mirror")){ SidestepMover sm = new SidestepMover(e); sm.Mirror(); mover = sm; }else{ Debug.Log ("Invalid mover type!"); Destroy(e.gameObject); return; } mover.LeftOffset(30f); Vector2[] pointset = new Vector2[pointResolution]; for(int i = 0; i < pointResolution; i++){ float prog = ((float)i)/((float)(pointResolution-1)); pointset[i] = mover.PositionFromProgress(prog); } Destroy (e.gameObject); //convert vector set to point-based path pe.GeneratePathFromVectorArray(pointset); }
public void ProducePath(PathEditor pe) { Enemy e = GenerateTestEnemy(); EnemyMover mover; if (moveString.Equals("Linear")) { mover = new LinearMover(e); } else if (moveString.Equals("Linear_Right")) { mover = new LinearMover(e); mover.PutInRightLane(); } else if (moveString.Equals("Linear_Left")) { mover = new LinearMover(e); mover.PutInLeftLane(); } else if (moveString.Equals("Slowing_Linear")) { mover = new SlowingLinearMover(e); } else if (moveString.Equals("Slowing_Linear_Right")) { mover = new SlowingLinearMover(e); mover.PutInRightLane(); } else if (moveString.Equals("Slowing_Linear_Left")) { mover = new SlowingLinearMover(e); mover.PutInLeftLane(); } else if (moveString.Equals("Zigzag")) { mover = new ZigzagMover(e); } else if (moveString.Equals("Zigzag_Mirror")) { ZigzagMover zm = new ZigzagMover(e); zm.Mirror(); mover = zm; } else if (moveString.Equals("Strafing")) { mover = new StrafingMover(e); } else if (moveString.Equals("Strafing_Mirror")) { StrafingMover sm = new StrafingMover(e); sm.Mirror(); mover = sm; } else if (moveString.Equals("Sine")) { mover = new SineMover(e); } else if (moveString.Equals("Sine_Mirror")) { SineMover sm = new SineMover(e); sm.Mirror(); mover = sm; } else if (moveString.Equals("Swerve_Right")) { mover = new SwerveMover(e); } else if (moveString.Equals("Swerve_Left")) { SwerveMover sm = new SwerveMover(e); sm.Mirror(); mover = sm; } else if (moveString.Equals("Swerve_In_Left")) { SwerveMover sm = new SwerveMover(e); sm.PutInLeftLane(); mover = sm; } else if (moveString.Equals("Swerve_In_Right")) { SwerveMover sm = new SwerveMover(e); sm.PutInRightLane(); sm.Mirror(); mover = sm; } else if (moveString.Equals("Semicircle")) { mover = new SemicircleMover(e); } else if (moveString.Equals("Semicircle_Mirror")) { SemicircleMover sm = new SemicircleMover(e); sm.Mirror(); mover = sm; } else if (moveString.Equals("Sidestep")) { mover = new SidestepMover(e); } else if (moveString.Equals("Sidestep_Mirror")) { SidestepMover sm = new SidestepMover(e); sm.Mirror(); mover = sm; } else { Debug.Log("Invalid mover type!"); Destroy(e.gameObject); return; } mover.LeftOffset(30f); Vector2[] pointset = new Vector2[pointResolution]; for (int i = 0; i < pointResolution; i++) { float prog = ((float)i) / ((float)(pointResolution - 1)); pointset[i] = mover.PositionFromProgress(prog); } Destroy(e.gameObject); //convert vector set to point-based path pe.GeneratePathFromVectorArray(pointset); }
public void MaxSpeedSet_NegativeValueThrowsException() { _mover = instantiateMover() as LinearMover; Assert.Throws <LinearMover.NegativeSpeedValueException>(() => _mover.Speed = -1f); }
public void MaxSpeedSet() { _mover = instantiateMover() as LinearMover; _mover.Speed = _testSpeed; Assert.AreEqual(_testSpeed, _mover.Speed); }
private Mover instantiateNegativeSpeedMover() { LinearMover prefab = Resources.Load <LinearMover>(_negativeSpeedMoverPrefabPath); return(GameObject.Instantiate(prefab)); }
protected override Mover instantiateUninitializedMover() { LinearMover prefab = Resources.Load <LinearMover>(_uninitializedMoverPrefabPath); return(GameObject.Instantiate(prefab)); }