Example #1
0
    /// <summary>
    /// Adapts the behaviour of the pedestrian according to the current weather conditions.
    /// </summary>
    /// <param name="newWeatherCondition">New weather condition.</param>
    private void ChangePedestrianBehaviourOnWeather(FlashPedestriansGlobalParameters.WeatherConditions newWeatherCondition)
    {
        // Set the behaviour related to the new weather condition
        switch (newWeatherCondition)
        {
        // On sunny weather: chance of taking bikes x1.5 and default speed:
        case FlashPedestriansGlobalParameters.WeatherConditions.SunnyWeather:
            profile.weatherFactorOnTakingBikes = 1.5f;
            navAgent.speed = profile.speed;
            break;

        // On windy weather: chance of taking bikes x0.75 and reduce speed:
        case FlashPedestriansGlobalParameters.WeatherConditions.WindyWeather:
            profile.weatherFactorOnTakingBikes = 0.75f;
            navAgent.speed = profile.speed - 0.5f;
            break;

        // On rainy weather: chance of taking bikes x0.5 and increase speed:
        case FlashPedestriansGlobalParameters.WeatherConditions.RainyWeather:
            profile.weatherFactorOnTakingBikes = 0.5f;
            navAgent.speed = profile.speed + 0.5f;
            break;

        // On default weather: chance of taking bikes x1.0 and default speed:
        default:
            profile.weatherFactorOnTakingBikes = 1.0f;
            navAgent.speed = profile.speed;
            break;
        }

        currentWeather = newWeatherCondition;
    }
Example #2
0
    /// <summary>
    /// Start method.
    /// </summary>
    void Start()
    {
        ResetStopIndex();
        navAgent.speed  = profile.speed;
        navAgent.radius = 0.75f + Random.Range(-0.25f, 0.25f); //Randomize "personal space"

        if (routing != null)
        {
            if (routing.itinerary != null)
            {
                stations = routing.itinerary.WayPoints;
            }
        }

        // Calculate the road mask (used if car awareness is active)
        roadMask = 1 << UnityEngine.AI.NavMesh.GetAreaFromName("vehicle road") | 1 << UnityEngine.AI.NavMesh.GetAreaFromName("residential") | 1 << UnityEngine.AI.NavMesh.GetAreaFromName("service") | 1 << UnityEngine.AI.NavMesh.GetAreaFromName("crosswalk");

        UpdateInfoBalloon();

        currentWeather = FlashPedestriansGlobalParameters.WeatherConditions.DefaultWeather;
    }