Exemplo n.º 1
0
    public void WalkRandomly(bool enable)
    {
        Reset();

        if (!enable)
        {
            Control      = ControlType.Manual;
            thisPedState = PedestrianState.None;
            return;
        }

        agent.avoidancePriority = RandomGenerator.Next(1, 100);

        var           position        = agent.transform.position;
        MapPedestrian closest         = null;
        float         closestDistance = float.MaxValue;
        int           closestIndex    = 0;

        foreach (var path in SimulatorManager.Instance.PedestrianManager.pedPaths)
        {
            for (int i = 0; i < path.mapWorldPositions.Count; i++)
            {
                float distance = Vector3.SqrMagnitude(position - path.mapWorldPositions[i]);
                if (distance < closestDistance)
                {
                    closest         = path;
                    closestIndex    = i;
                    closestDistance = distance;
                }
            }
        }
        targets = closest.mapWorldPositions;

        NextTargetIndex = closestIndex;
        Control         = ControlType.Automatic;
    }
Exemplo n.º 2
0
 public override void OnInspectorGUI()
 {
     DrawDefaultInspector();
     MapPedestrian mapLane = (MapPedestrian)target;
 }