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