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; }
public override void OnInspectorGUI() { DrawDefaultInspector(); MapPedestrian mapLane = (MapPedestrian)target; }