コード例 #1
0
    // Use this for initialization
    void Start()
    {
        canvas           = GameObject.Find("Canvas");
        toolkitWindow    = AuxFunctions.FindObject(canvas, "ToolkitPanel");
        sensorManagerGUI = GameObject.Find("StateMachine").GetComponent <SensorManagerGUI>();

        //Ruler Objects
        rulerStartPoint = GameObject.Find("RulerStartPoint");
        rulerEndPoint   = GameObject.Find("RulerEndPoint");
        rulerWindow     = AuxFunctions.FindObject(canvas, "RulerPanel");
        rulerText       = AuxFunctions.FindObject(canvas, "RulerText").GetComponent <Text>();
        rulerXText      = AuxFunctions.FindObject(canvas, "RulerXAxisText").GetComponent <Text>();
        rulerYText      = AuxFunctions.FindObject(canvas, "RulerYAxisText").GetComponent <Text>();
        rulerZText      = AuxFunctions.FindObject(canvas, "RulerZAxisText").GetComponent <Text>();

        //Stopwatch Objects
        stopwatchWindow          = AuxFunctions.FindObject(canvas, "StopwatchPanel");
        stopwatchText            = AuxFunctions.FindObject(canvas, "StopwatchText").GetComponent <Text>();
        stopwatchStartButtonText = AuxFunctions.FindObject(canvas, "StopwatchStartText").GetComponent <Text>();
        stopwatchPauseButtonText = AuxFunctions.FindObject(canvas, "StopwatchPauseText").GetComponent <Text>();

        //Stats Objects
        statsWindow          = AuxFunctions.FindObject(canvas, "StatsPanel");
        speedEntry           = AuxFunctions.FindObject(statsWindow, "SpeedEntry");
        speedUnit            = AuxFunctions.FindObject(speedEntry, "Unit").GetComponent <Text>();
        accelerationEntry    = AuxFunctions.FindObject(statsWindow, "AccelerationEntry");
        accelerationUnit     = AuxFunctions.FindObject(accelerationEntry, "Unit").GetComponent <Text>();
        angularVelocityEntry = AuxFunctions.FindObject(statsWindow, "AngularVelocityEntry");
        weightEntry          = AuxFunctions.FindObject(statsWindow, "WeightEntry");
        weightUnit           = AuxFunctions.FindObject(weightEntry, "Unit").GetComponent <Text>();
    }
コード例 #2
0
        public override void Start()
        {
            robotCameraGUI   = StateMachine.SceneGlobal.GetComponent <RobotCameraGUI>();
            sensorManagerGUI = StateMachine.SceneGlobal.GetComponent <SensorManagerGUI>();

            canvas        = GameObject.Find("Canvas");
            tabs          = Auxiliary.FindObject(canvas, "Tabs");
            sensorToolbar = Auxiliary.FindObject(canvas, "SensorToolbar");

            helpMenu     = Auxiliary.FindObject(canvas, "Help");
            overlay      = Auxiliary.FindObject(canvas, "Overlay");
            helpBodyText = Auxiliary.FindObject(canvas, "BodyText").GetComponent <Text>();

            ultrasonicDropdown  = Auxiliary.FindObject(sensorToolbar, "UltrasonicDropdown").GetComponent <Dropdown>();
            beamBreakerDropdown = Auxiliary.FindObject(sensorToolbar, "BeamBreakDropdown").GetComponent <Dropdown>();
            gyroDropdown        = Auxiliary.FindObject(sensorToolbar, "GyroDropdown").GetComponent <Dropdown>();

            //initialize dropdowns
            UpdateSensorDropdown(ultrasonicDropdown, sensorManagerGUI.sensorManager.ultrasonicList);
            UpdateSensorDropdown(beamBreakerDropdown, sensorManagerGUI.sensorManager.beamBreakerList);
            UpdateSensorDropdown(gyroDropdown, sensorManagerGUI.sensorManager.gyroList);

            numUltrasonics  = sensorManagerGUI.sensorManager.ultrasonicList.Count();
            numBeamBreakers = sensorManagerGUI.sensorManager.beamBreakerList.Count();
            numGyros        = sensorManagerGUI.sensorManager.gyroList.Count();

            UpdateOutputButton();

            Button helpButton = Auxiliary.FindObject(helpMenu, "CloseHelpButton").GetComponent <Button>();

            helpButton.onClick.RemoveAllListeners();
            helpButton.onClick.AddListener(CloseHelpMenu);
        }
コード例 #3
0
        public override void Start()
        {
            canvas = GameObject.Find("Canvas");
            camera = GameObject.Find("Main Camera").GetComponent <DynamicCamera>();

            tabs    = Auxiliary.FindObject(canvas, "Tabs");
            toolbar = Auxiliary.FindObject(canvas, "MainToolbar");

            changeRobotPanel  = Auxiliary.FindObject(canvas, "ChangeRobotPanel");
            robotListPanel    = Auxiliary.FindObject(changeRobotPanel, "RobotListPanel");
            changePanel       = Auxiliary.FindObject(canvas, "ChangePanel");
            addPanel          = Auxiliary.FindObject(canvas, "AddPanel");
            changeFieldPanel  = Auxiliary.FindObject(canvas, "ChangeFieldPanel");
            pointImpulsePanel = Auxiliary.FindObject(canvas, "PointImpulsePanel");

            resetDropdown    = GameObject.Find("ResetRobotDropdown");
            multiplayerPanel = Auxiliary.FindObject(canvas, "MultiplayerPanel");

            stopwatchWindow = Auxiliary.FindObject(canvas, "StopwatchPanel");
            statsWindow     = Auxiliary.FindObject(canvas, "StatsPanel");
            rulerWindow     = Auxiliary.FindObject(canvas, "RulerPanel");

            // To access instatiate classes within a state, use the StateMachine.SceneGlobal
            toolkit          = StateMachine.SceneGlobal.GetComponent <Toolkit>();
            multiplayer      = StateMachine.SceneGlobal.GetComponent <LocalMultiplayer>();
            simUI            = StateMachine.SceneGlobal.GetComponent <SimUI>();
            menuUI           = StateMachine.SceneGlobal.GetComponent <MenuUI>();
            robotCameraGUI   = StateMachine.SceneGlobal.GetComponent <RobotCameraGUI>();
            sensorManagerGUI = StateMachine.SceneGlobal.GetComponent <SensorManagerGUI>();

            State = StateMachine.SceneGlobal.CurrentState as MainState;

            cameraViewDropdown = Auxiliary.FindObject(canvas, "CameraDropdown").GetComponent <Dropdown>();
            dynamicCamera      = UnityEngine.Camera.main.transform.GetComponent <DynamicCamera>();
        }
コード例 #4
0
ファイル: RobotCameraGUI.cs プロジェクト: ezhangle/synthesis
        /// <summary>
        /// Find all robot camera related GUI elements in the canvas
        /// </summary>
        private void FindGUIElements()
        {
            canvas           = GameObject.Find("Canvas");
            sensorManagerGUI = GetComponent <SensorManagerGUI>();

            //For robot camera view window
            robotCameraView       = Resources.Load("Images/Old Assets/RobotCameraView") as RenderTexture;
            robotCameraViewWindow = Auxiliary.FindObject(canvas, "RobotCameraPanelBorder");

            //For robot camera manager
            robotCameraListObject = GameObject.Find("RobotCameraList");
            robotCameraManager    = robotCameraListObject.GetComponent <RobotCameraManager>();

            //For camera indicator
            if (CameraIndicator == null)
            {
                CameraIndicator = Auxiliary.FindObject(robotCameraListObject, "CameraIndicator");
            }

            //For camera position and attachment configuration
            configureCameraPanel       = Auxiliary.FindObject(canvas, "CameraConfigurationPanel");
            configureRobotCameraButton = Auxiliary.FindObject(canvas, "CameraConfigurationButton");

            //For camera angle configuration
            cameraAnglePanel = Auxiliary.FindObject(canvas, "CameraAnglePanel");
            xAngleEntry      = Auxiliary.FindObject(cameraAnglePanel, "xAngleEntry1");
            yAngleEntry      = Auxiliary.FindObject(cameraAnglePanel, "yAngleEntry1");
            zAngleEntry      = Auxiliary.FindObject(cameraAnglePanel, "zAngleEntry1");

            //For field of view configuration
            cameraFOVPanel = Auxiliary.FindObject(configureCameraPanel, "CameraFOVPanel");
            FOVEntry       = Auxiliary.FindObject(cameraFOVPanel, "FOVEntry");
        }
コード例 #5
0
ファイル: MainState.cs プロジェクト: Ronoman/synthesis
    /// <summary>
    /// Called after Awake() when the script instance is enabled.
    /// Initializes variables then loads the field and robot as well as setting up replay features.
    /// </summary>
    public override void Start()
    {
        //getting bullet physics information
        physicsWorld = BPhysicsWorld.Get();
        ((DynamicsWorld)physicsWorld.world).SetInternalTickCallback(BRobotManager.Instance.UpdateRaycastRobots);
        lastFrameCount = physicsWorld.frameCount;

        //setting up replay
        Trackers         = new List <Tracker>();
        CollisionTracker = new CollisionTracker(this);

        //starts a new instance of unity packet which receives packets from the driver station
        unityPacket = new UnityPacket();
        unityPacket.Start();

        //loads all the controls
        Controls.Load();

        //If a replay has been selected, load the replay. Otherwise, load the field and robot.
        string selectedReplay = PlayerPrefs.GetString("simSelectedReplay");

        SpawnedRobots = new List <Robot>();

        if (string.IsNullOrEmpty(selectedReplay))
        {
            Tracking = true;
            Debug.Log(LoadField(PlayerPrefs.GetString("simSelectedField")) ? "Load field success!" : "Load field failed.");
            Debug.Log(LoadRobot(PlayerPrefs.GetString("simSelectedRobot")) ? "Load robot success!" : "Load robot failed.");

            int isMixAndMatch  = PlayerPrefs.GetInt("MixAndMatch", 0); // 0 is false, 1 is true
            int hasManipulator = PlayerPrefs.GetInt("hasManipulator");
            if (isMixAndMatch == 1 && hasManipulator == 1)
            {
                Debug.Log(LoadManipulator(PlayerPrefs.GetString("simSelectedManipulator")) ? "Load manipulator success" : "Load manipulator failed");
            }
        }
        else
        {
            awaitingReplay = true;
            LoadReplay(selectedReplay);
        }

        //initializes the dynamic camera
        dynamicCameraObject         = GameObject.Find("Main Camera");
        dynamicCamera               = dynamicCameraObject.AddComponent <DynamicCamera>();
        DynamicCamera.MovingEnabled = true;

        sensorManager    = GameObject.Find("SensorManager").GetComponent <SensorManager>();
        sensorManagerGUI = GameObject.Find("StateMachine").GetComponent <SensorManagerGUI>();

        robotCameraManager = GameObject.Find("RobotCameraList").GetComponent <RobotCameraManager>();
    }
コード例 #6
0
ファイル: SimUI.cs プロジェクト: chargen/synthesis
        private void Update()
        {
            if (toolkit == null)
            {
                camera = GameObject.Find("Main Camera").GetComponent <DynamicCamera>();

                toolkit          = GetComponent <Toolkit>();
                multiplayer      = GetComponent <LocalMultiplayer>();
                sensorManagerGUI = GetComponent <SensorManagerGUI>();

                FindElements();
            }
            else if (camera == null)
            {
                camera = GameObject.Find("Main Camera").GetComponent <DynamicCamera>();
            }
            else
            {
                UpdateWindows();

                if (UnityEngine.Input.GetKeyDown(KeyCode.Escape) && !InputControl.freeze)
                {
                    if (!exitPanel.activeSelf)
                    {
                        if (GameObject.Find("Dropdown List"))
                        {
                            GameObject.Destroy(GameObject.Find("Dropdown List"));
                        }
                        MainMenuExit("open");
                    }
                    else
                    {
                        MainMenuExit("cancel");
                    }
                }

                if (KeyButton.Binded() && inputPanelOn)
                {
                    ShowBindedInfoPanel();
                }
            }
            HighlightTabs();
            if (State.isEmulationDownloaded)
            {
                emulationTab.SetActive(true);
            }
        }
コード例 #7
0
ファイル: RobotCameraGUI.cs プロジェクト: j143-zz/synthesis
    /// <summary>
    /// Find all robot camera related GUI elements in the canvas
    /// </summary>
    public void FindGUIElements()
    {
        canvas           = GameObject.Find("Canvas");
        sensorManagerGUI = GameObject.Find("StateMachine").GetComponent <SensorManagerGUI>();

        //For robot camera view window
        robotCameraView       = Resources.Load("Images/RobotCameraView") as RenderTexture;
        robotCameraViewWindow = AuxFunctions.FindObject(canvas, "RobotCameraPanelBorder");

        //For robot camera manager
        robotCameraListObject = GameObject.Find("RobotCameraList");
        robotCameraManager    = robotCameraListObject.GetComponent <RobotCameraManager>();

        //For camera indicator
        if (CameraIndicator == null)
        {
            CameraIndicator = AuxFunctions.FindObject(robotCameraListObject, "CameraIndicator");
        }
        showCameraButton = AuxFunctions.FindObject(canvas, "ShowCameraButton");

        //For camera position and attachment configuration
        configureCameraPanel          = AuxFunctions.FindObject(canvas, "CameraConfigurationPanel");
        configureRobotCameraButton    = AuxFunctions.FindObject(canvas, "CameraConfigurationButton");
        changeCameraNodeButton        = AuxFunctions.FindObject(configureCameraPanel, "ChangeNodeButton");
        cameraConfigurationModeButton = AuxFunctions.FindObject(configureCameraPanel, "ConfigurationMode");
        cameraNodeText            = AuxFunctions.FindObject(configureCameraPanel, "NodeText").GetComponent <Text>();
        cancelNodeSelectionButton = AuxFunctions.FindObject(configureCameraPanel, "CancelNodeSelectionButton");

        //For camera angle configuration
        cameraAnglePanel = AuxFunctions.FindObject(canvas, "CameraAnglePanel");
        xAngleEntry      = AuxFunctions.FindObject(cameraAnglePanel, "xAngleEntry");
        yAngleEntry      = AuxFunctions.FindObject(cameraAnglePanel, "yAngleEntry");
        zAngleEntry      = AuxFunctions.FindObject(cameraAnglePanel, "zAngleEntry");
        showAngleButton  = AuxFunctions.FindObject(configureCameraPanel, "ShowCameraAngleButton");
        editAngleButton  = AuxFunctions.FindObject(cameraAnglePanel, "EditButton");

        //For field of view configuration
        cameraFOVPanel = AuxFunctions.FindObject(canvas, "CameraFOVPanel");
        FOVEntry       = AuxFunctions.FindObject(cameraFOVPanel, "FOVEntry");
        showFOVButton  = AuxFunctions.FindObject(configureCameraPanel, "ShowCameraFOVButton");
        editFOVButton  = AuxFunctions.FindObject(cameraFOVPanel, "EditButton");

        lockPositionButton = AuxFunctions.FindObject(configureCameraPanel, "LockPositionButton");
        lockAngleButton    = AuxFunctions.FindObject(configureCameraPanel, "LockAngleButton");
        lockFOVButton      = AuxFunctions.FindObject(configureCameraPanel, "LockFOVButton");
    }
コード例 #8
0
ファイル: SimUI.cs プロジェクト: j143-zz/synthesis
    private void Update()
    {
        if (main == null)
        {
            main = StateMachine.Instance.FindState <MainState>();
        }
        else if (dpm == null)
        {
            camera = GameObject.Find("Main Camera").GetComponent <DynamicCamera>();

            toolkit          = GetComponent <Toolkit>();
            dpm              = GetComponent <DriverPracticeMode>();
            multiplayer      = GetComponent <LocalMultiplayer>();
            sensorManagerGUI = GetComponent <SensorManagerGUI>();

            FindElements();
        }
        else if (camera == null)
        {
            camera = GameObject.Find("Main Camera").GetComponent <DynamicCamera>();
        }
        else
        {
            UpdateWindows();

            if (Input.GetKeyDown(KeyCode.Escape))
            {
                if (StateMachine.Instance.CurrentState.GetType().Equals(typeof(MainState)))
                {
                    if (!exitPanel.activeSelf)
                    {
                        MainMenuExit("open");
                    }
                    else
                    {
                        MainMenuExit("cancel");
                    }
                }
            }

            if (Input.GetKey(KeyCode.LeftControl) && Input.GetKeyDown(KeyCode.H))
            {
                TogglePanel(toolbar);
            }
        }
    }
コード例 #9
0
ファイル: SimUI.cs プロジェクト: matthew17754/synthesis
        private void Update()
        {
            if (InputControl.GetButtonDown(new KeyMapping("Hide Menu", KeyCode.H, Input.Enums.KeyModifier.Ctrl), true))
            {
                tabs.SetActive(!tabs.activeSelf);
                tabStateMachine.CurrentState.ToggleHidden();
            }
            if (toolkit == null)
            {
                camera = GameObject.Find("Main Camera").GetComponent <DynamicCamera>();

                toolkit          = GetComponent <Toolkit>();
                multiplayer      = GetComponent <LocalMultiplayer>();
                sensorManagerGUI = GetComponent <SensorManagerGUI>();

                FindElements();
            }
            else if (camera == null)
            {
                camera = GameObject.Find("Main Camera").GetComponent <DynamicCamera>();
            }
            else
            {
                UpdateWindows();

                if (UnityEngine.Input.GetKeyDown(KeyCode.Escape))
                {
                    if (!exitPanel.activeSelf)
                    {
                        if (GameObject.Find("Dropdown List"))
                        {
                            GameObject.Destroy(GameObject.Find("Dropdown List"));
                        }
                        MainMenuExit("open");
                    }
                    else
                    {
                        MainMenuExit("cancel");
                    }
                }
            }
            UpdateJoystickStates();
            HighlightTabs();
        }
コード例 #10
0
ファイル: MainToolbarState.cs プロジェクト: chargen/synthesis
        public override void Start()
        {
            canvas = GameObject.Find("Canvas");
            camera = GameObject.Find("Main Camera").GetComponent <DynamicCamera>();

            tabs         = Auxiliary.FindObject(canvas, "Tabs");
            toolbar      = Auxiliary.FindObject(canvas, "MainToolbar");
            helpMenu     = Auxiliary.FindObject(canvas, "Help");
            overlay      = Auxiliary.FindObject(canvas, "Overlay");
            helpBodyText = Auxiliary.FindObject(canvas, "BodyText").GetComponent <Text>();

            changeRobotPanel = Auxiliary.FindObject(canvas, "ChangeRobotPanel");
            robotListPanel   = Auxiliary.FindObject(changeRobotPanel, "RobotListPanel");
            changePanel      = Auxiliary.FindObject(canvas, "ChangePanel");
            addPanel         = Auxiliary.FindObject(canvas, "AddPanel");
            changeFieldPanel = Auxiliary.FindObject(canvas, "ChangeFieldPanel");

            resetDropdown    = GameObject.Find("ResetRobotDropdown");
            multiplayerPanel = Auxiliary.FindObject(canvas, "MultiplayerPanel");

            stopwatchWindow = Auxiliary.FindObject(canvas, "StopwatchPanel");
            statsWindow     = Auxiliary.FindObject(canvas, "StatsPanel");
            rulerWindow     = Auxiliary.FindObject(canvas, "RulerPanel");

            inputManagerPanel = Auxiliary.FindObject(canvas, "InputManagerPanel");
            bindedKeyPanel    = Auxiliary.FindObject(canvas, "BindedKeyPanel");
            checkSavePanel    = Auxiliary.FindObject(canvas, "CheckSavePanel");

            // To access instatiate classes within a state, use the StateMachine.SceneGlobal
            toolkit          = StateMachine.SceneGlobal.GetComponent <Toolkit>();
            multiplayer      = StateMachine.SceneGlobal.GetComponent <LocalMultiplayer>();
            simUI            = StateMachine.SceneGlobal.GetComponent <SimUI>();
            robotCameraGUI   = StateMachine.SceneGlobal.GetComponent <RobotCameraGUI>();
            sensorManagerGUI = StateMachine.SceneGlobal.GetComponent <SensorManagerGUI>();

            State = StateMachine.SceneGlobal.CurrentState as MainState;

            Button helpButton = Auxiliary.FindObject(helpMenu, "CloseHelpButton").GetComponent <Button>();

            helpButton.onClick.RemoveAllListeners();
            helpButton.onClick.AddListener(CloseHelpMenu);
        }
コード例 #11
0
        public override void Start()
        {
            robotCameraGUI   = StateMachine.SceneGlobal.GetComponent <RobotCameraGUI>();
            sensorManagerGUI = StateMachine.SceneGlobal.GetComponent <SensorManagerGUI>();

            canvas        = GameObject.Find("Canvas");
            sensorToolbar = Auxiliary.FindObject(canvas, "SensorToolbar");
            tabs          = Auxiliary.FindObject(canvas, "Tabs");

            ultrasonicDropdown  = Auxiliary.FindObject(sensorToolbar, "UltrasonicDropdown").GetComponent <Dropdown>();
            beamBreakerDropdown = Auxiliary.FindObject(sensorToolbar, "BeamBreakDropdown").GetComponent <Dropdown>();
            gyroDropdown        = Auxiliary.FindObject(sensorToolbar, "GyroDropdown").GetComponent <Dropdown>();

            //initialize dropdowns
            UpdateSensorDropdown(ultrasonicDropdown, sensorManagerGUI.sensorManager.ultrasonicList);
            UpdateSensorDropdown(beamBreakerDropdown, sensorManagerGUI.sensorManager.beamBreakerList);
            UpdateSensorDropdown(gyroDropdown, sensorManagerGUI.sensorManager.gyroList);

            numUltrasonics  = sensorManagerGUI.sensorManager.ultrasonicList.Count();
            numBeamBreakers = sensorManagerGUI.sensorManager.beamBreakerList.Count();
            numGyros        = sensorManagerGUI.sensorManager.gyroList.Count();

            UpdateOutputButton();
        }
コード例 #12
0
ファイル: MainState.cs プロジェクト: ezhangle/synthesis
        /// <summary>
        /// Called after Awake() when the script instance is enabled.
        /// Initializes variables then loads the field and robot as well as setting up replay features.
        /// </summary>
        public override void Start()
        {
            AppModel.ClearError();

            //getting bullet physics information
            physicsWorld = BPhysicsWorld.Get();
            ((DynamicsWorld)physicsWorld.world).SetInternalTickCallback(BPhysicsTickListener.Instance.PhysicsTick);
            lastFrameCount = physicsWorld.frameCount;

            //setting up raycast robot tick callback
            BPhysicsTickListener.Instance.OnTick -= BRobotManager.Instance.UpdateRaycastRobots;
            BPhysicsTickListener.Instance.OnTick += BRobotManager.Instance.UpdateRaycastRobots;

            //starts a new instance of unity packet which receives packets from the driver station
            unityPacket.Start();

            //If a replay has been selected, load the replay. Otherwise, load the field and robot.
            string selectedReplay = PlayerPrefs.GetString("simSelectedReplay");

            if (string.IsNullOrEmpty(selectedReplay))
            {
                Tracking = true;

                if (!LoadField(PlayerPrefs.GetString("simSelectedField")))
                {
                    AppModel.ErrorToMenu("Could not load field: " + PlayerPrefs.GetString("simSelectedField") + "\nHas it been moved or deleted?)");
                    return;
                }

                if (!LoadRobot(PlayerPrefs.GetString("simSelectedRobot"), RobotTypeManager.IsMixAndMatch))
                {
                    AppModel.ErrorToMenu("Could not load robot: " + PlayerPrefs.GetString("simSelectedRobot") + "\nHas it been moved or deleted?)");
                    return;
                }

                reset = FieldDataHandler.robotSpawn == new Vector3(99999, 99999, 99999);

                if (RobotTypeManager.IsMixAndMatch && RobotTypeManager.HasManipulator)
                {
                    Debug.Log(LoadManipulator(RobotTypeManager.ManipulatorPath) ? "Load manipulator success" : "Load manipulator failed");
                }
            }
            else
            {
                awaitingReplay = true;
                LoadReplay(selectedReplay);
            }

            //initializes the dynamic camera
            DynamicCameraObject          = GameObject.Find("Main Camera");
            dynamicCamera                = DynamicCameraObject.AddComponent <DynamicCamera>();
            DynamicCamera.ControlEnabled = true;

            sensorManager    = GameObject.Find("SensorManager").GetComponent <SensorManager>();
            sensorManagerGUI = StateMachine.gameObject.GetComponent <SensorManagerGUI>();

            simUI = StateMachine.SceneGlobal.GetComponent <SimUI>();

            robotCameraManager = GameObject.Find("RobotCameraList").GetComponent <RobotCameraManager>();

            IsMetric = PlayerPrefs.GetString("Measure").Equals("Metric") ? true : false;

            StateMachine.Link <MainState>(GameObject.Find("Main Camera").transform.GetChild(0).gameObject);
            StateMachine.Link <MainState>(GameObject.Find("Main Camera").transform.GetChild(1).gameObject, false);
            StateMachine.Link <ReplayState>(Auxiliary.FindGameObject("ReplayUI"));
            StateMachine.Link <SaveReplayState>(Auxiliary.FindGameObject("SaveReplayUI"));
            StateMachine.Link <GamepieceSpawnState>(Auxiliary.FindGameObject("ResetGamepieceSpawnpointUI"));
            StateMachine.Link <DefineNodeState>(Auxiliary.FindGameObject("DefineNodeUI"));
            StateMachine.Link <GoalState>(Auxiliary.FindGameObject("GoalStateUI"));
            StateMachine.Link <SensorSpawnState>(Auxiliary.FindGameObject("ResetSensorSpawnpointUI"));
            StateMachine.Link <DefineSensorAttachmentState>(Auxiliary.FindGameObject("DefineSensorAttachmentUI"));

            string defaultDirectory = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"Autodesk\Synthesis\Emulator");
            string directoryPath    = "";

            if (Directory.Exists(defaultDirectory))
            {
                directoryPath         = defaultDirectory;
                isEmulationDownloaded = true;
            }
        }
コード例 #13
0
    /// <summary>
    /// Called after Awake() when the script instance is enabled.
    /// Initializes variables then loads the field and robot as well as setting up replay features.
    /// </summary>
    public override void Start()
    {
        AppModel.ClearError();

        //getting bullet physics information
        physicsWorld = BPhysicsWorld.Get();
        ((DynamicsWorld)physicsWorld.world).SetInternalTickCallback(BPhysicsTickListener.Instance.PhysicsTick);
        lastFrameCount = physicsWorld.frameCount;

        //setting up raycast robot tick callback
        BPhysicsTickListener.Instance.OnTick -= BRobotManager.Instance.UpdateRaycastRobots;
        BPhysicsTickListener.Instance.OnTick += BRobotManager.Instance.UpdateRaycastRobots;

        //setting up replay
        CollisionTracker = new CollisionTracker(this);

        //starts a new instance of unity packet which receives packets from the driver station
        unityPacket = new UnityPacket();
        unityPacket.Start();

        //loads all the controls
        Controls.Load();

        //If a replay has been selected, load the replay. Otherwise, load the field and robot.
        string selectedReplay = PlayerPrefs.GetString("simSelectedReplay");

        SpawnedRobots = new List <Robot>();

        if (string.IsNullOrEmpty(selectedReplay))
        {
            Tracking = true;

            if (!LoadField(PlayerPrefs.GetString("simSelectedField")))
            {
                AppModel.ErrorToMenu("Could not load field: " + PlayerPrefs.GetString("simSelectedField") + "\nHas it been moved or deleted?)");
                return;
            }

            if (!LoadRobot(PlayerPrefs.GetString("simSelectedRobot"), RobotTypeManager.IsMixAndMatch))
            {
                AppModel.ErrorToMenu("Could not load robot: " + PlayerPrefs.GetString("simSelectedRobot") + "\nHas it been moved or deleted?)");
                return;
            }

            if (RobotTypeManager.IsMixAndMatch && RobotTypeManager.HasManipulator)
            {
                Debug.Log(LoadManipulator(RobotTypeManager.ManipulatorPath) ? "Load manipulator success" : "Load manipulator failed");
            }
        }
        else
        {
            awaitingReplay = true;
            LoadReplay(selectedReplay);
        }

        //initializes the dynamic camera
        DynamicCameraObject         = GameObject.Find("Main Camera");
        dynamicCamera               = DynamicCameraObject.AddComponent <DynamicCamera>();
        DynamicCamera.MovingEnabled = true;

        sensorManager    = GameObject.Find("SensorManager").GetComponent <SensorManager>();
        sensorManagerGUI = GameObject.Find("StateMachine").GetComponent <SensorManagerGUI>();

        robotCameraManager = GameObject.Find("RobotCameraList").GetComponent <RobotCameraManager>();

        IsMetric = PlayerPrefs.GetString("Measure").Equals("Metric") ? true : false;

        StateMachine.Instance.Link <MainState>(GameObject.Find("Main Camera").transform.GetChild(0).gameObject);
        StateMachine.Instance.Link <ReplayState>(Resources.FindObjectsOfTypeAll <GameObject>().First(x => x.name.Equals("ReplayUI")));
        StateMachine.Instance.Link <SaveReplayState>(Resources.FindObjectsOfTypeAll <GameObject>().First(x => x.name.Equals("SaveReplayUI")));
    }
コード例 #14
0
        /// <summary>
        /// Called after Awake() when the script instance is enabled.
        /// Initializes variables then loads the field and robot as well as setting up replay features.
        /// </summary>
        public override void Start()
        {
            AppModel.ClearError();

            //getting bullet physics information
            physicsWorld = BPhysicsWorld.Get();
            ((DynamicsWorld)physicsWorld.world).SetInternalTickCallback(BPhysicsTickListener.Instance.PhysicsTick);
            lastFrameCount = physicsWorld.frameCount;

            //setting up raycast robot tick callback
            BPhysicsTickListener.Instance.OnTick -= BRobotManager.Instance.UpdateRaycastRobots;
            BPhysicsTickListener.Instance.OnTick += BRobotManager.Instance.UpdateRaycastRobots;

            //If a replay has been selected, load the replay. Otherwise, load the field and robot.
            string selectedReplay = PlayerPrefs.GetString("simSelectedReplay");

            if (PlayerPrefs.GetString("simSelectedRobot", "").Equals(""))
            {
                AppModel.ErrorToMenu("ROBOT_SELECT|FIRST");
                return;
            }

            if (string.IsNullOrEmpty(selectedReplay))
            {
                Tracking = true;

                if (!LoadField(PlayerPrefs.GetString("simSelectedField")))
                {
                    //AppModel.ErrorToMenu("FIELD_SELECT|FIRST");
                    AppModel.ErrorToMenu("FIELD_SELECT|Could not load field: " + PlayerPrefs.GetString("simSelectedField") + "\nHas it been moved or deleted?)");
                    return;
                }
                else
                {
                    MovePlane();
                }

                bool result = false;

                try
                {
                    result = LoadRobot(PlayerPrefs.GetString("simSelectedRobot"), false);
                }
                catch (Exception e)
                {
                    MonoBehaviour.Destroy(GameObject.Find("Robot"));
                }

                if (!result)
                {
                    AppModel.ErrorToMenu("ROBOT_SELECT|Could not find the selected robot");
                    return;
                }

                reset = FieldDataHandler.robotSpawn == new Vector3(99999, 99999, 99999);

                if (RobotTypeManager.IsMixAndMatch && RobotTypeManager.HasManipulator)
                {
                    Debug.Log(LoadManipulator(RobotTypeManager.ManipulatorPath) ? "Load manipulator success" : "Load manipulator failed");
                }
            }
            else
            {
                awaitingReplay = true;
                PlayerPrefs.SetString("simSelectedReplay", "");
                LoadReplay(selectedReplay);
            }

            //initializes the dynamic camera
            DynamicCameraObject          = GameObject.Find("Main Camera");
            dynamicCamera                = DynamicCameraObject.AddComponent <DynamicCamera>();
            DynamicCamera.ControlEnabled = true;

            sensorManager    = GameObject.Find("SensorManager").GetComponent <SensorManager>();
            sensorManagerGUI = StateMachine.gameObject.GetComponent <SensorManagerGUI>();

            simUI = StateMachine.SceneGlobal.GetComponent <SimUI>();

            robotCameraManager = GameObject.Find("RobotCameraList").GetComponent <RobotCameraManager>();

            IsMetric = PlayerPrefs.GetString("Measure").Equals("Metric");

            StateMachine.Link <MainState>(GameObject.Find("Main Camera").transform.GetChild(0).gameObject);
            StateMachine.Link <MainState>(GameObject.Find("Main Camera").transform.GetChild(1).gameObject, false);
            StateMachine.Link <ReplayState>(Auxiliary.FindGameObject("ReplayUI"));
            StateMachine.Link <SaveReplayState>(Auxiliary.FindGameObject("SaveReplayUI"));
            StateMachine.Link <GamepieceSpawnState>(Auxiliary.FindGameObject("ResetGamepieceSpawnpointUI"));
            StateMachine.Link <DefineNodeState>(Auxiliary.FindGameObject("DefineNodeUI"));
            StateMachine.Link <GoalState>(Auxiliary.FindGameObject("GoalStateUI"));
            StateMachine.Link <SensorSpawnState>(Auxiliary.FindGameObject("ResetSensorSpawnpointUI"));
            StateMachine.Link <DefineSensorAttachmentState>(Auxiliary.FindGameObject("DefineSensorAttachmentUI"));

            MediaManager.getInstance();

            Controls.Load();
            Controls.UpdateFieldControls();
            Controls.Save(true);
        }