Beispiel #1
0
    public IEnumerator PedestrianFullWalkTest()
    {
        DisableLoops();
        DisableVehicles();
        foreach (Pedestrian p in GameObject.FindObjectsOfType <Pedestrian>())
        {
            GameObject.Destroy(p);
        }
        foreach (PedestrianCrossing pedestrianCrossing in PedestrianManager.GetInstance().GetPedestrianCrossings())
        {
            pedestrianCrossing.SetAllowCrossing(true);
        }
        PedestrianFactory pedestrianFactory = GameObject.FindObjectOfType <PedestrianFactory>();

        pedestrianFactory.SpawnPedestrian();
        yield return(new WaitForSeconds(1));

        Pedestrian pedestrian = GameObject.FindObjectOfType <Pedestrian>();

        pedestrian.GetComponent <NavMeshAgent>().speed = 5;
        pedestrian.SetAllowCrossing(true);
        while (true)
        {
            yield return(new WaitForSeconds(1));

            if (pedestrian == null)
            {
                break;
            }
            else
            {
                pedestrian.GetComponent <NavMeshAgent>().speed = 5;
            }
        }
    }
Beispiel #2
0
 public void PhysicsUpdate()
 {
     //Client applications does not perform physics updates
     if (Loader.Instance.Network.IsClient)
     {
         return;
     }
     NPCManager.PhysicsUpdate();
     PedestrianManager.PhysicsUpdate();
 }
Beispiel #3
0
 void Start()
 {
     if (type == WaypointType.Pedestrian)
     {
         pedManager = GameObject.Find("GameManager").GetComponent <PedestrianManager> ();
         pedManager.AddSpawner(gameObject);
     }
     else if (type == WaypointType.Car)
     {
         carManager = GameObject.Find("GameManager").GetComponent <AICarManager> ();
         carManager.AddSpawner(gameObject);
     }
 }
Beispiel #4
0
 public void SetJunctionState(JunctionState junctionState)
 {
     this.currentState = junctionState.GetStateNumber();
     foreach (JunctionState.TrafficLightState trafficLightState in junctionState.GetTrafficLightStates())
     {
         TrafficLightManager.GetInstance().GetTrafficLight(trafficLightState.GetTrafficLightId()).SetColour(trafficLightState.GetLightColour());
     }
     if (junctionState.GetPedestrianCrossingStates() != null)
     {
         foreach (JunctionState.PedestrianCrossingState pedestrianCrossingState in junctionState.GetPedestrianCrossingStates())
         {
             PedestrianManager.GetInstance().GetPedestrianCrossing(pedestrianCrossingState.GetPedestrianCrossingId()).SetAllowCrossing(pedestrianCrossingState.AllowCrossing());
         }
     }
 }
    // Update is called once per frame
    void FixedUpdate()
    {
        PedestrianManager manager = GameObject.Find("Manager").GetComponent <PedestrianManager>();

        spawnRate = manager.spawnSpeed;
        if (clock < spawnRate)
        {
            clock += Time.deltaTime;
        }
        else
        {
            SpawnFromPool("Pedestrian", spawnPoints[Random.Range(0, 4)].position);
            clock = 0;
        }
    }
Beispiel #6
0
    void Start()
    {
        rb                = GetComponent <Rigidbody> ();
        anim              = GetComponent <Animator> ();
        jobManager        = GameObject.Find("GameManager").GetComponent <JobManager> ();
        player            = GameObject.Find("Player").gameObject;
        carDrive          = player.GetComponent <CarDrive> ();
        tutorialManager   = GameObject.Find("GameManager").GetComponent <TutorialManager> ();
        pedestrianManager = GameObject.Find("GameManager").GetComponent <PedestrianManager> ();
        passengerEnter    = GameObject.Find("SFX").transform.Find("Passenger Enter").GetComponent <AudioSource> ();
        gameModeManager   = GameObject.Find("GameManager").GetComponent <GameModeManager> ();
        noticesManager    = GameObject.Find("GameManager").GetComponent <NoticesManager> ();
        moneyManager      = GameObject.Find("GameManager").GetComponent <MoneyManager> ();

        // Set the skin to be a random texture
        torso.GetComponent <Renderer> ().material.SetTexture("_MainTex", textures [Random.Range(0, textures.Count)]);
    }
Beispiel #7
0
    //private Hv_bangSynth_AudioLib audioLib;


    public void OnObjectSpawn()
    {
        rb = GetComponent <Rigidbody>();
        if (rb == null)
        {
            Debug.LogError("Where's ur rb dude?");
        }
        pointInDirection();
        isTalking          = false;
        isTalker           = false;
        yourTalker         = null;
        transform.rotation = Quaternion.identity;
        manager            = GameObject.Find("Manager").GetComponent <PedestrianManager>();
        //audioLib = manager.gameObject.GetComponent<Hv_bangSynth_AudioLib>();
        speed        = manager.speed;
        distToTravel = manager.distToTravel;
        manager.activePedestrians++;
    }
Beispiel #8
0
    void Start()
    {
        roads             = GameObject.FindGameObjectsWithTag("Road");
        player            = GameObject.Find("Player").gameObject;
        pedestrianManager = GameObject.Find("GameManager").GetComponent <PedestrianManager> ();
        noticesManager    = GameObject.Find("GameManager").GetComponent <NoticesManager> ();
        passengerLeave    = GameObject.Find("SFX").transform.Find("Passenger Leave").GetComponent <AudioSource> ();
        successSound      = GameObject.Find("SFX").transform.Find("Success").GetComponent <AudioSource> ();
        failSound         = GameObject.Find("SFX").transform.Find("Failure").GetComponent <AudioSource> ();
        moneyManager      = GameObject.Find("GameManager").GetComponent <MoneyManager> ();
        tutorialManager   = GameObject.Find("GameManager").GetComponent <TutorialManager> ();
        gameModeManager   = GameObject.Find("GameManager").GetComponent <GameModeManager> ();
        passengerTimer.GetComponent <Text> ().text = "";

        if (gameModeManager.gameMode == "default" || gameModeManager.gameMode == "countdown" || gameModeManager.gameMode == "collateral")
        {
            StartCoroutine("FindNewPassenger");
        }
        else
        {
            destinationArrow.SetActive(false);
        }
    }
Beispiel #9
0
 void Awake()
 {
     instance = this;
 }
Beispiel #10
0
 public void PhysicsUpdate()
 {
     NPCManager.PhysicsUpdate();
     PedestrianManager.PhysicsUpdate();
 }
Beispiel #11
0
    public void Init(int?seed = null)
    {
        if (ApiManager.Instance != null)
        {
            FixedUpdateManager = ApiManager.Instance;
            IsAPI = true;
        }
        else
        {
            FixedUpdateManager = Instance;
            IsAPI = false;
        }

        controls = new SimulatorControls();
        controls.Enable();

        SimulationConfig config = null;

        if (Loader.Instance != null)
        {
            config = Loader.Instance.SimConfig;
        }

        var masterSeed = seed ?? config?.Seed ?? new System.Random().Next();

        RandomGenerator = new System.Random(masterSeed);

        //Calculate map bounds and limit position compression
        if (Loader.Instance != null && Loader.Instance.Network.IsClusterSimulation)
        {
            var mapBounds = CalculateMapBounds();
            //Add margin to the bounds
            mapBounds.size += Vector3.one * 10;
            ByteCompression.SetPositionBounds(mapBounds);
        }

        ManagerHolder = new GameObject("ManagerHolder");
        ManagerHolder.transform.SetParent(transform);
        AnalysisManager     = Instantiate(analysisManagerPrefab, ManagerHolder.transform);
        AgentManager        = Instantiate(agentManagerPrefab, ManagerHolder.transform);
        CameraManager       = Instantiate(cameraManagerPrefab, ManagerHolder.transform);
        ControllableManager = Instantiate(controllableManagerPrefab, ManagerHolder.transform);
        MapManager          = Instantiate(mapManagerPrefab, ManagerHolder.transform);
        NPCManager          = Instantiate(npcManagerPrefab, ManagerHolder.transform);
        NPCManager.InitRandomGenerator(RandomGenerator.Next());
        PedestrianManager = Instantiate(pedestrianManagerPrefab, ManagerHolder.transform);
        PedestrianManager.InitRandomGenerator(RandomGenerator.Next());
        EnvironmentEffectsManager = Instantiate(environmentEffectsManagerPrefab, ManagerHolder.transform);
        EnvironmentEffectsManager.InitRandomGenerator(RandomGenerator.Next());
        UIManager = Instantiate(uiManagerPrefab, ManagerHolder.transform);

        if (SystemInfo.operatingSystemFamily == OperatingSystemFamily.Linux && Application.isEditor)
        {
            // empty
        }
        else
        {
            controls.Simulator.ToggleNPCS.performed        += ctx => NPCManager.NPCActive = !NPCManager.NPCActive;
            controls.Simulator.TogglePedestrians.performed += ctx => PedestrianManager.PedestriansActive = !PedestrianManager.PedestriansActive;
            controls.Simulator.ToggleAgent.performed       += ctx =>
            {
                if (int.TryParse(ctx.control.name, out int index))
                {
                    AgentManager.SetCurrentActiveAgent(index - 1);
                }
            };
            controls.Simulator.ToggleReset.performed      += ctx => AgentManager.ResetAgent();
            controls.Simulator.ToggleControlsUI.performed += ctx => UIManager.UIActive = !UIManager.UIActive;
        }

        if (config != null)
        {
            simulationName       = config.Name;
            clusterName          = config.ClusterName;
            mapName              = config.MapName;
            NPCManager.NPCActive = config.UseTraffic;
            PedestrianManager.PedestriansActive = config.UsePedestrians;
            if (config.Agents != null)
            {
                AgentManager.SpawnAgents(config.Agents);
            }
            apiMode     = config.ApiOnly;
            headless    = config.Headless;
            interactive = config.Interactive;
            useSeed     = config.Seed.HasValue;
            npc         = config.UseTraffic;
            pedestrian  = config.UsePedestrians;
            timeOfDay   = config.TimeOfDay.ToString("HH:mm");
            rain        = config.Rain;
            wet         = config.Wetness;
            fog         = config.Fog;
            cloud       = config.Cloudiness;

            if (headless)
            {
                controls.Disable();
            }
        }
        SIM.APIOnly = apiMode;
        SIM.LogSimulation(SIM.Simulation.SimulationStart, simulationName);
        SIM.LogSimulation(SIM.Simulation.ClusterNameStart, clusterName);
        SIM.LogSimulation(SIM.Simulation.MapStart, string.IsNullOrEmpty(mapName) ? UnityEngine.SceneManagement.SceneManager.GetActiveScene().name : mapName);
        SIM.LogSimulation(SIM.Simulation.HeadlessModeStart, state: headless);
        SIM.LogSimulation(SIM.Simulation.InteractiveModeStart, state: interactive);
        SIM.LogSimulation(SIM.Simulation.UsePredefinedSeedStart, state: useSeed);
        SIM.LogSimulation(SIM.Simulation.NPCStart, state: npc);
        SIM.LogSimulation(SIM.Simulation.RandomPedestrianStart, state: pedestrian);
        SIM.LogSimulation(SIM.Simulation.TimeOfDayStart, timeOfDay == "" ? string.Format("{0:hh}:{0:mm}", TimeSpan.FromHours(EnvironmentEffectsManager.currentTimeOfDay)) : timeOfDay);
        SIM.LogSimulation(SIM.Simulation.RainStart, rain == 0f ? EnvironmentEffectsManager.rain.ToString() : rain.ToString());
        SIM.LogSimulation(SIM.Simulation.WetnessStart, wet == 0f ? EnvironmentEffectsManager.wet.ToString() : wet.ToString());
        SIM.LogSimulation(SIM.Simulation.FogStart, fog == 0f ? EnvironmentEffectsManager.fog.ToString() : fog.ToString());
        SIM.LogSimulation(SIM.Simulation.CloudinessStart, cloud == 0f ? EnvironmentEffectsManager.cloud.ToString() : cloud.ToString());
        InitSegmenationColors();
        WireframeBoxes = gameObject.AddComponent <WireframeBoxes>();
        if (Loader.Instance != null)
        {
            TimeManager.Initialize(Loader.Instance.Network.MessagesManager);
        }
        Sensors.Initialize();
        Loader.ResetMaterials(); // TODO remove Editor hack for 2019.3.3 bug once fixed
        IsInitialized = true;
    }
 private void OnApplicationQuit()
 {
     _instance = null;
     DestroyImmediate(gameObject);
 }
    public void Init(int?seed = null)
    {
        controls = new SimulatorControls();
        controls.Enable();

        var config = Loader.Instance?.SimConfig;

        var masterSeed = seed ?? config?.Seed ?? new System.Random().Next();

        System.Random rand = new System.Random(masterSeed);

        AgentManager  = Instantiate(agentManagerPrefab, transform);
        CameraManager = Instantiate(cameraManagerPrefab, transform);
        MapManager    = Instantiate(mapManagerPrefab, transform);
        NPCManager    = Instantiate(npcManagerPrefab, transform);
        NPCManager.InitRandomGenerator(rand.Next());
        PedestrianManager = Instantiate(pedestrianManagerPrefab, transform);
        PedestrianManager.InitRandomGenerator(rand.Next());
        EnvironmentEffectsManager = Instantiate(environmentEffectsManagerPrefab, transform);
        EnvironmentEffectsManager.InitRandomGenerator(rand.Next());
        UIManager = Instantiate(uiManagerPrefab, transform);

        if (ApiManager.Instance != null)
        {
            IsAPI = true;
        }

        if (SystemInfo.operatingSystemFamily == OperatingSystemFamily.Linux && Application.isEditor)
        {
            // empty
        }
        else
        {
            controls.Simulator.ToggleNPCS.performed        += ctx => NPCManager.NPCActive = !NPCManager.NPCActive;
            controls.Simulator.TogglePedestrians.performed += ctx => PedestrianManager.PedestriansActive = !PedestrianManager.PedestriansActive;
            controls.Simulator.ToggleAgent.performed       += ctx =>
            {
                if (int.TryParse(ctx.control.name, out int index))
                {
                    AgentManager.SetCurrentActiveAgent(index - 1);
                }
            };
            controls.Simulator.ToggleReset.performed      += ctx => AgentManager.ResetAgent();
            controls.Simulator.ToggleControlsUI.performed += ctx => UIManager.UIActive = !UIManager.UIActive;
        }

        if (config != null)
        {
            simulationName       = config.Name;
            clusterName          = config.ClusterName;
            mapName              = config.MapName;
            NPCManager.NPCActive = config.UseTraffic;
            PedestrianManager.PedestriansActive = config.UsePedestrians;
            if (config.Agents != null)
            {
                AgentManager.SpawnAgents(config.Agents);
            }
            apiMode     = config.ApiOnly;
            headless    = config.Headless;
            interactive = config.Interactive;
            useSeed     = config.Seed.HasValue;
            npc         = config.UseTraffic;
            pedestrian  = config.UsePedestrians;
            timeOfDay   = config.TimeOfDay.ToString("HH:mm");
            rain        = config.Rain;
            wet         = config.Wetness;
            fog         = config.Fog;
            cloud       = config.Cloudiness;

            if (headless)
            {
                controls.Disable();
            }

            if (config.Interactive)
            {
                SetTimeScale(0.0f);
            }
        }
        SIM.APIOnly = apiMode;
        SIM.LogSimulation(SIM.Simulation.SimulationStart, simulationName);
        SIM.LogSimulation(SIM.Simulation.ClusterNameStart, clusterName);
        SIM.LogSimulation(SIM.Simulation.MapStart, string.IsNullOrEmpty(mapName) ? UnityEngine.SceneManagement.SceneManager.GetActiveScene().name : mapName);
        SIM.LogSimulation(SIM.Simulation.HeadlessModeStart, state: headless);
        SIM.LogSimulation(SIM.Simulation.InteractiveModeStart, state: interactive);
        SIM.LogSimulation(SIM.Simulation.UsePredefinedSeedStart, state: useSeed);
        SIM.LogSimulation(SIM.Simulation.NPCStart, state: npc);
        SIM.LogSimulation(SIM.Simulation.RandomPedestrianStart, state: pedestrian);
        SIM.LogSimulation(SIM.Simulation.TimeOfDayStart, timeOfDay == "" ? string.Format("{0:hh}:{0:mm}", TimeSpan.FromHours(EnvironmentEffectsManager.currentTimeOfDay)) : timeOfDay);
        SIM.LogSimulation(SIM.Simulation.RainStart, rain == 0f ? EnvironmentEffectsManager.rain.ToString() : rain.ToString());
        SIM.LogSimulation(SIM.Simulation.WetnessStart, wet == 0f ? EnvironmentEffectsManager.wet.ToString() : wet.ToString());
        SIM.LogSimulation(SIM.Simulation.FogStart, fog == 0f ? EnvironmentEffectsManager.fog.ToString() : fog.ToString());
        SIM.LogSimulation(SIM.Simulation.CloudinessStart, cloud == 0f ? EnvironmentEffectsManager.cloud.ToString() : cloud.ToString());
        InitSemanticTags();
        WireframeBoxes = gameObject.AddComponent <WireframeBoxes>();
    }
Beispiel #14
0
    public void Init(int?seed = null)
    {
        if (ApiManager.Instance != null)
        {
            FixedUpdateManager = ApiManager.Instance;
            IsAPI = true;
        }
        else
        {
            FixedUpdateManager = Instance;
            IsAPI = false;
        }

        controls = new SimulatorControls();
        controls.Enable();

        SimulationConfig config = null;

        if (Loader.Instance != null)
        {
            config = Loader.Instance.SimConfig;
        }

        var masterSeed = seed ?? config?.Seed ?? new System.Random().Next();

        RandomGenerator       = new System.Random(masterSeed);
        segmentationIdMapping = new SegmentationIdMapping();

        //Calculate map bounds and limit position compression
        if (Loader.Instance != null && Loader.Instance.Network.IsClusterSimulation)
        {
            var mapBounds = CalculateMapBounds();
            //Add margin to the bounds
            mapBounds.size += Vector3.one * 50;
            ByteCompression.SetPositionBounds(mapBounds);
        }

        ManagerHolder = new GameObject("ManagerHolder");
        ManagerHolder.transform.SetParent(transform);
        BridgeMessageDispatcher = new BridgeMessageDispatcher();
        AnalysisManager         = InstantiateManager(analysisManagerPrefab, ManagerHolder.transform);
        AgentManager            = InstantiateManager(agentManagerPrefab, ManagerHolder.transform);
        CameraManager           = InstantiateManager(cameraManagerPrefab, ManagerHolder.transform);
        ControllableManager     = InstantiateManager(controllableManagerPrefab, ManagerHolder.transform);
        MapManager = InstantiateManager(mapManagerPrefab, ManagerHolder.transform);
        NPCManager = InstantiateManager(npcManagerPrefab, ManagerHolder.transform);
        NPCManager.InitRandomGenerator(RandomGenerator.Next());
        PedestrianManager = InstantiateManager(pedestrianManagerPrefab, ManagerHolder.transform);
        PedestrianManager.InitRandomGenerator(RandomGenerator.Next());
        EnvironmentEffectsManager = InstantiateManager(environmentEffectsManagerPrefab, ManagerHolder.transform);
        EnvironmentEffectsManager.InitRandomGenerator(RandomGenerator.Next());
        CustomPassManager = InstantiateManager(customPassManagerPrefab, ManagerHolder.transform);
        UIManager         = InstantiateManager(uiManagerPrefab, ManagerHolder.transform);

        controls.Simulator.ToggleNPCS.performed        += ctx => NPCManager.NPCActive = !NPCManager.NPCActive;
        controls.Simulator.TogglePedestrians.performed += ctx => PedestrianManager.PedestriansActive = !PedestrianManager.PedestriansActive;
        controls.Simulator.ToggleAgent.performed       += ctx =>
        {
            if (int.TryParse(ctx.control.name, out int index))
            {
                AgentManager.SetCurrentActiveAgent(index - 1);
            }
        };
        controls.Simulator.ToggleReset.performed      += ctx => AgentManager.ResetAgent();
        controls.Simulator.ToggleControlsUI.performed += ctx => UIManager.UIActive = !UIManager.UIActive;

        if (config != null)
        {
            simulationName       = config.Name;
            clusterName          = config.ClusterName;
            mapName              = config.MapName;
            NPCManager.NPCActive = config.UseTraffic;
            PedestrianManager.PedestriansActive = config.UsePedestrians;
            if (config.Agents != null)
            {
                AgentManager.SpawnAgents(config.Agents);
            }
            apiMode     = config.ApiOnly;
            headless    = config.Headless;
            interactive = config.Interactive;
            useSeed     = config.Seed.HasValue;
            npc         = config.UseTraffic;
            pedestrian  = config.UsePedestrians;
            timeOfDay   = config.TimeOfDay.ToString("HH:mm");
            rain        = config.Rain;
            wet         = config.Wetness;
            fog         = config.Fog;
            cloud       = config.Cloudiness;
            Damage      = config.Damage;

            if (headless)
            {
                controls.Disable();
            }
        }
        InitSegmenationColors();
        WireframeBoxes = gameObject.AddComponent <WireframeBoxes>();
        if (Loader.Instance != null)
        {
            TimeManager.Initialize(Loader.Instance.Network.MessagesManager);
        }
        Sensors.Initialize();
        IsInitialized = true;
    }
Beispiel #15
0
 // Use this for initialization
 void Start()
 {
     _orbiter = GetComponent<Orbiter>();
     _pedManager = PedestrianManager.Instance;
     LoadAmmo();
 }