Example #1
0
    public void Step(int maxSteps)
    {
        step += 1;

        var position       = unityAgent.body.transform.localPosition;
        var targetPosition = target.localPosition;
        var velocity       = unityAgent.body.velocity;

        unityAgent.model = ForwardAgent.Update(unityAgent.model, position, targetPosition, velocity);

        var distanceToTarget = Math.Abs(Vector3.Distance(targetPosition, position));

        if (HasReachedTarget(distanceToTarget))
        {
            AgentDone();
        }
        else if (step > maxSteps)
        {
            TimeUp();
        }
        else
        {
            AgentStep(maxSteps, distanceToTarget);
        }
    }
Example #2
0
    private void UpdateForwardAgent()
    {
        var position       = forward.body.transform.localPosition;
        var targetPosition = target.localPosition;
        var velocity       = forward.body.velocity;

        forward.model = ForwardAgent.Update(forward.model, position, targetPosition, velocity);
    }
Example #3
0
    private void Initialize()
    {
        step = 0;
        var initialPosition = spawnPosition.localPosition;
        var targetPosition  = target.localPosition;

        unityAgent.model = ForwardAgent.Create(initialPosition, targetPosition, moveSpeed);
        ResetUnityEntities(initialPosition, targetPosition);
    }
Example #4
0
    public override void Reset()
    {
        step = 0;
        var initialPosition = spawnPosition.localPosition;
        var initialVelocity = Vector3.zero;
        var targetPosition  = target.localPosition;

        targetPosition.z *= -1f;

        unityAgent.model = ForwardAgent.Update(unityAgent.model, initialPosition, targetPosition, initialVelocity);
        ResetUnityEntities(initialPosition, targetPosition);
    }
Example #5
0
 void Start()
 {
     rotate.model  = RotateAgent.Create(Quaternion.identity, target.localPosition, 5f);
     forward.model = ForwardAgent.Create(transform.localPosition, target.localPosition, 1f);
 }