public void Step(int maxSteps) { step += 1; var newPosition = unityAgent.transform.localPosition; var newRotation = unityAgent.body.rotation.eulerAngles; var newVelocity = unityAgent.body.velocity; var newTargetPosition = target.localPosition; var isInsideArea = FlyingArea.IsInsideArea(area); agent = FlyingAgent.Update(agent, newPosition, newTargetPosition, newRotation, velocity: newVelocity, speed: moveSpeed); area = FlyingArea.Update(area, agent, newTargetPosition, isInsideArea); if (!isInsideArea) { AgentOutsideArea(maxSteps); } if (isInsideArea) { AgentInsideArea(maxSteps); } if (AgentOutOfBounds()) { AgentFail(); } if (step > maxSteps) { TimeUp(); } AgentStep(maxSteps); }
public void inside_area() { var target = new Vector3(0, 3, 0); var agent = FlyingAgent.Create(position: new Vector3(0, 2.999f, 0)); var area = FlyingArea.Create(agent, target); var result = FlyingArea.IsInsideArea(area); Assert.IsTrue(result); }