Beispiel #1
0
    public void FixedUpdate()
    {
        if (!isStarted && _startup)
        {
            // Load scenario JSON
            TextAsset    scenarioJsonFile = Resources.Load <TextAsset>(scenariosPath + scenarioId + "/scenario");
            ScenarioJson scenarioJson     = JsonUtility.FromJson <ScenarioJson>(scenarioJsonFile.text);

            // Set current simulated time
            currentSimulatedTime = Convert.ToDateTime(scenarioJson.currentSimulatedTime);

            // Set Point Last Seen
            pointLastSeen = scenarioJson.pointLastSeen;

            // Set Last Known Position
            lastKnownPosition = scenarioJson.lastKnownPosition;

            // Set Command Post location
            commandPostLocation = scenarioJson.commandPostLocation;

            // Setup field teams
            foreach (FieldTeamJson fieldTeamJson in scenarioJson.fieldTeams)
            {
                GameObject fieldTeamObj = GameObject.Instantiate(fieldTeamPrefab, this.transform);
                FieldTeam  fieldTeam    = fieldTeamObj.GetComponent <FieldTeam>();
                fieldTeam.teamName = fieldTeamJson.name;
                ColorUtility.TryParseHtmlString(fieldTeamJson.color, out fieldTeam.teamColor);
                fieldTeam.recordingDirectoryPath = scenariosPath + scenarioId + "/TeamRecords/" + fieldTeamJson.path;
                fieldTeam.simulatedStartTime     = Convert.ToDateTime(fieldTeamJson.simulatedStartTime);
                fieldTeam.mainController         = this;

                AddFieldTeam(fieldTeam);
            }

            //// Instantiate PLS and LKP markers
            //plsMarkerObj = GameObject.Instantiate(plsMarkerPrefab, sceneUiObj.transform);
            //plsMarkerObj.transform.SetSiblingIndex(0);
            //lkpMarkerObj = GameObject.Instantiate(lkpMarkerPrefab, sceneUiObj.transform);
            //lkpMarkerObj.transform.SetSiblingIndex(0);

            // Instantiate Command Post marker
            cpMarkerObj = GameObject.Instantiate(cpMarkerPrefab, sceneUiObj.transform);
            cpMarkerObj.transform.SetSiblingIndex(0);

            _startTimeOfSimulation = currentSimulatedTime.dateTime;
            _actualStartTime       = DateTime.Now;

            networkEvents.AddHandler("MessageToCommand", MessageToCommand);

            //LayoutRebuilder.MarkLayoutForRebuild(sideUiObj.GetComponent<RectTransform>());
            Canvas.ForceUpdateCanvases();
            layoutGroupToRefresh.enabled = false;
            layoutGroupToRefresh.enabled = true;

            isStarted = true;
            _startup  = false;

            GameObject.Destroy(startScreenObj);
        }
    }