Example #1
0
 public override Vector2 CalculateSteering(Vehicle agent, List <Vehicle> targets)
 {
     if (targets.Count > 0)
     {
         return(Steering.OffsetPursuit(agent, targets[0], offset, predictTweaker));
     }
     else
     {
         return(Vector2.zero);
     }
 }
Example #2
0
    public override Vector2 CalculateSteering(Vehicle agent, List <Vehicle> targets)
    {
        List <Vehicle> neighbors = new List <Vehicle>();

        foreach (Vehicle v in Vehicle.AllVehicles)
        {
            if (v != agent && (v.position - agent.position).magnitude < neighborRadius)
            {
                neighbors.Add(v);
            }
        }

        Vector2 separation    = Steering.Separation(agent, neighbors);
        Vector2 offsetPursuit = Steering.OffsetPursuit(agent, targets[0], new Vector2(0, -unitDistance));

        return(separation * 3f + offsetPursuit);
    }