protected virtual void OnSceneGUI()
    {
        MapPedestrianLane vmMapPed = (MapPedestrianLane)target;
        if (vmMapPed.mapLocalPositions.Count < 1)
            return;

        if (vmMapPed.DisplayHandles)
        {
            for (int i = 0; i < vmMapPed.mapLocalPositions.Count; i++)
            {
                EditorGUI.BeginChangeCheck();
                Vector3 newTargetPosition = Handles.PositionHandle(vmMapPed.transform.TransformPoint(vmMapPed.mapLocalPositions[i]), vmMapPed.transform.rotation);
                if (EditorGUI.EndChangeCheck())
                {
                    Undo.RecordObject(vmMapPed, "Pedestrian points change");
                    vmMapPed.mapLocalPositions[i] = vmMapPed.transform.InverseTransformPoint(newTargetPosition);
                }
            }
        }
    }
    public void WalkRandomly()
    {
        Agent.avoidancePriority = RandomGenerator.Next(1, 100);

        var position = Agent.transform.position;
        MapPedestrianLane closest         = null;
        float             closestDistance = float.MaxValue;
        int closestIndex = 0;

        foreach (var path in SimulatorManager.Instance.MapManager.pedestrianLanes)
        {
            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;
                }
            }
        }

        if (closest != null)
        {
            controller.Targets         = closest.mapWorldPositions;
            controller.MapPath         = closest;
            controller.NextTargetIndex = closestIndex;
        }
        else
        {
            controller.SetBehaviour <PedestrianBehaviourBase>();
            controller.SetPedState(PedestrianController.PedestrianState.Idle);
            Debug.LogError("No pedestrian annotation found, please create annotation, setting to idle");
        }
    }
 public override void OnInspectorGUI()
 {
     DrawDefaultInspector();
     MapPedestrianLane mapLane = (MapPedestrianLane)target;
 }