Ejemplo n.º 1
0
    void Start()
    {
        if (this.transform.parent == null)
        {
            this.currentMenuState = RUISMenuStates.calibration;
        }

        try
        {
            Input.GetButtonDown("RUISMenu");
        }
        catch (UnityException)
        {
            ruisMenuButtonDefined = false;
        }

        foreach (GameObject button in buttons)
        {
            UIEventListener.Get(button).onClick += buttonPressed;
        }

        foreach (GameObject checkBox in checkBoxes)
        {
            UIEventListener.Get(checkBox).onClick += checkBoxClicked;
        }

        foreach (GameObject textField in textFields)
        {
            UIEventListener.Get(textField).onInput += textFieldChanged;
        }


        currentMenuState = RUISMenuStates.selectAndConfigureDevices;

        jumpGesture = FindObjectOfType(typeof(RUISJumpGestureRecognizer)) as RUISJumpGestureRecognizer;

        SaveInputChanges();         // Save initial settings
        updateCalibratableDevices();

        UpdateGUI();
        handleInfotexts();
        handleSelectAndConfigureDevicesGUISpacing();

        // Menu is hidden upon init
        Hide3DGUI();

        this.transform.localPosition = new Vector3(displayManager.guiX, displayManager.guiY, displayManager.guiZ);
        this.transform.localScale    = new Vector3(displayManager.guiScaleX, displayManager.guiScaleY, 1);

        if (displayManager.displays[displayManager.guiDisplayChoice].isObliqueFrustum &&
            displayManager.displays[displayManager.guiDisplayChoice].linkedCamera &&
            !displayManager.displays[displayManager.guiDisplayChoice].linkedCamera.isHmdCamera)
        {
            this.transform.localRotation = Quaternion.LookRotation(-displayManager.displays[displayManager.guiDisplayChoice].DisplayNormal,
                                                                   displayManager.displays[displayManager.guiDisplayChoice].DisplayUp);
            this.transform.localPosition = displayManager.displays[displayManager.guiDisplayChoice].displayCenterPosition
                                           + this.transform.localRotation * new Vector3(displayManager.guiX, displayManager.guiY, displayManager.guiZ);
        }
    }
Ejemplo n.º 2
0
	void buttonPressed(GameObject clickedGameObject) 
	{ 
	
		switch(currentMenuState) 
		{
			
			case RUISMenuStates.selectAndConfigureDevices:
				switch(clickedGameObject.name) 
				{
				
					case "Button - Calibration": 
						calibrationReady = false;
						menuIsVisible = false;
						inputManager.Export(inputManager.filename);
						calibrationDropDownSelection = this.transform.Find (
													"NGUIControls/Panel/selectAndConfigureDevices/Buttons/Dropdown - Calibration Devices").GetComponent<UIPopupList>().selection;
						
						if(calibrationDropDownSelection.Contains("Oculus")) // TODO: Not the best way to be sure that we will calibrate Oculus Rift
				   			enableOculusPositionalTracking();
				   		
						SaveInputChanges();
						DontDestroyOnLoad(this);
						this.transform.parent = null;
						currentMenuState = RUISMenuStates.calibration;
						previousSceneId = Application.loadedLevel;
						Hide3DGUI();
						Application.LoadLevel("calibration");
					break;
					
					case "Button - Display Management": 
						toggleKeystoneConfigurationLayer();
						currentMenuState = RUISMenuStates.keyStoneConfiguration;
					break;
					
					case "Button - Save Config & Restart Scene":  
						inputManager.Export(inputManager.filename);
						SaveInputChanges();
						Application.LoadLevel(Application.loadedLevel);
					break;
					
					case "Button - Discard Configuration":  
						DiscardInputChanges();
					break;
					
					case "Button - Quit Application": 
						if (!Application.isEditor) System.Diagnostics.Process.GetCurrentProcess().Kill(); 
						else Application.Quit();
					break;
				
				}
			break;
			
			case RUISMenuStates.keyStoneConfiguration:
				switch(clickedGameObject.name)
				{
					
					case "Button - Reset Keystoning":
						foreach (RUISKeystoningConfiguration keystoningConfiguration in FindObjectsOfType(typeof(RUISKeystoningConfiguration)) as RUISKeystoningConfiguration[])
						{
							keystoningConfiguration.ResetConfiguration();
						}
					break;	
					
					case "Button - Save Configurations":
						(FindObjectOfType(typeof(RUISDisplayManager)) as RUISDisplayManager).SaveDisplaysToXML();
					break;
					
					case "Button - Load Old Configurations":	
						(FindObjectOfType(typeof(RUISDisplayManager)) as RUISDisplayManager).LoadDisplaysFromXML();
					break;
					
					case "Button - End Display Editing":
						toggleKeystoneConfigurationLayer();
						currentMenuState = RUISMenuStates.selectAndConfigureDevices;
					break;
				}
			break;	
		}
	}
Ejemplo n.º 3
0
	void Start () 
	{
		if(this.transform.parent == null) 
		{
			this.currentMenuState = RUISMenuStates.calibration;
		}
		
		try
		{
			Input.GetButtonDown("RUISMenu");
		}
		catch (UnityException)
		{
			ruisMenuButtonDefined = false;
		}
		
		foreach(GameObject button in buttons) 
		{
			UIEventListener.Get(button).onClick += buttonPressed;
		}
		
		foreach(GameObject checkBox in checkBoxes) 
		{
			UIEventListener.Get (checkBox).onClick += checkBoxClicked;
		}
		
		foreach(GameObject textField in textFields) 
		{
			UIEventListener.Get (textField).onInput += textFieldChanged;
		}
		
		
		currentMenuState = RUISMenuStates.selectAndConfigureDevices;
		
		jumpGesture = FindObjectOfType(typeof(RUISJumpGestureRecognizer)) as RUISJumpGestureRecognizer;
		
		SaveInputChanges(); // Save initial settings
		updateCalibratableDevices();
		
		UpdateGUI();
		handleInfotexts();
		handleSelectAndConfigureDevicesGUISpacing();
		
		// Menu is hidden upon init
		Hide3DGUI();

		this.transform.localPosition = new Vector3(displayManager.guiX, displayManager.guiY, displayManager.guiZ);
		this.transform.localScale = new Vector3(displayManager.guiScaleX, displayManager.guiScaleY, 1);
		
		if(displayManager.displays[displayManager.guiDisplayChoice].isObliqueFrustum && !displayManager.displays[displayManager.guiDisplayChoice].enableOculusRift)
		{
			this.transform.localRotation = Quaternion.LookRotation(-displayManager.displays[displayManager.guiDisplayChoice].DisplayNormal, 
			                                                        displayManager.displays[displayManager.guiDisplayChoice].DisplayUp     );
			this.transform.localPosition = displayManager.displays[displayManager.guiDisplayChoice].displayCenterPosition
											+ this.transform.localRotation * new Vector3(displayManager.guiX, displayManager.guiY, displayManager.guiZ);
		}
	}
Ejemplo n.º 4
0
    void buttonPressed(GameObject clickedGameObject)
    {
        switch (currentMenuState)
        {
        case RUISMenuStates.selectAndConfigureDevices:
            switch (clickedGameObject.name)
            {
            case "Button - Calibration":
                calibrationReady = false;
                menuIsVisible    = false;
                inputManager.Export(inputManager.filename);
                calibrationDropDownSelection = this.transform.Find(
                    "NGUIControls/Panel/selectAndConfigureDevices/Buttons/Dropdown - Calibration Devices").GetComponent <UIPopupList>().selection;

                if (calibrationDropDownSelection.Contains("Oculus"))                                // TODO: Not the best way to be sure that we will calibrate Oculus Rift
                {
                    enableOculusPositionalTracking();
                }

                SaveInputChanges();
                DontDestroyOnLoad(this);
                this.transform.parent = null;
                currentMenuState      = RUISMenuStates.calibration;
                previousSceneId       = Application.loadedLevel;
                Hide3DGUI();
                Application.LoadLevel("calibration");
                break;

            case "Button - Display Management":
                toggleKeystoneConfigurationLayer();
                currentMenuState = RUISMenuStates.keyStoneConfiguration;
                break;

            case "Button - Save Config & Restart Scene":
                inputManager.Export(inputManager.filename);
                SaveInputChanges();
                Application.LoadLevel(Application.loadedLevel);
                break;

            case "Button - Discard Configuration":
                DiscardInputChanges();
                break;

            case "Button - Quit Application":
                if (!Application.isEditor)
                {
                    System.Diagnostics.Process.GetCurrentProcess().Kill();
                }
                else
                {
                    Application.Quit();
                }
                break;
            }
            break;

        case RUISMenuStates.keyStoneConfiguration:
            switch (clickedGameObject.name)
            {
            case "Button - Reset Keystoning":
                foreach (RUISKeystoningConfiguration keystoningConfiguration in FindObjectsOfType(typeof(RUISKeystoningConfiguration)) as RUISKeystoningConfiguration[])
                {
                    keystoningConfiguration.ResetConfiguration();
                }
                break;

            case "Button - Save Configurations":
                (FindObjectOfType(typeof(RUISDisplayManager)) as RUISDisplayManager).SaveDisplaysToXML();
                break;

            case "Button - Load Old Configurations":
                (FindObjectOfType(typeof(RUISDisplayManager)) as RUISDisplayManager).LoadDisplaysFromXML();
                break;

            case "Button - End Display Editing":
                toggleKeystoneConfigurationLayer();
                currentMenuState = RUISMenuStates.selectAndConfigureDevices;
                break;
            }
            break;
        }
    }
Ejemplo n.º 5
0
//	void enableOculusPositionalTracking()
//	{
//		OVRManager ovrManager = FindObjectOfType<OVRManager>();
//		if(ovrManager)
//			ovrManager.usePositionTracking = true;
//		if(OVRManager.tracker != null)
//			OVRManager.tracker.isEnabled = true;
//	}

    void buttonPressed(GameObject clickedGameObject)
    {
        switch (currentMenuState)
        {
        case RUISMenuStates.selectAndConfigureDevices:
            switch (clickedGameObject.name)
            {
            case "Button - Calibration":
                calibrationReady = false;
                menuIsVisible    = false;
                inputManager.Export(inputManager.filename);
                calibrationDropDownSelection = this.transform.Find(
                    "NGUIControls/Panel/selectAndConfigureDevices/Buttons/Dropdown - Calibration Devices").GetComponent <UIPopupList>().selection;

//						if(calibrationDropDownSelection.Contains("Oculus")) // *** HACK TODO: Not the best way to be sure that we will calibrate Oculus Rift
//									enableOculusPositionalTracking();

                SaveInputChanges();
                this.transform.parent = null;
//						DontDestroyOnLoad(this);
                currentMenuState = RUISMenuStates.calibration;
//						previousSceneId = Application.loadedLevel;
                Hide3DGUI();

                // NOTE: The calibrationDropDownSelection determines the device pair to be calibrated, and it must follow the format "Device A - Device B"
                //       The string must correspond the options in the Awake() method of RUISCoordinateCalibration script

                // Trim out the " (HMD)" and " (controller)" from the OpenVR option string
//						string dropDownSelectionSubstring = this.calibrationDropDownSelection;
//						if(dropDownSelectionSubstring != null)
//						{
//							int stringIndex = dropDownSelectionSubstring.IndexOf("OpenVR (");
//							if(stringIndex >= 0 && stringIndex + 6 < dropDownSelectionSubstring.Length)
//							{
//									dropDownSelectionSubstring = dropDownSelectionSubstring.Substring(0, stringIndex + 6);
//							}
//						}

                // Hacky way to pass information between loading scenes
                RUISCalibrationProcessSettings.isCalibrating      = true;
                RUISCalibrationProcessSettings.devicePair         = this.calibrationDropDownSelection;                         // dropDownSelectionSubstring
                RUISCalibrationProcessSettings.previousSceneId    = Application.loadedLevel;
                RUISCalibrationProcessSettings.enablePSMove       = inputManager.enablePSMove;
                RUISCalibrationProcessSettings.enableKinect       = inputManager.enableKinect;
                RUISCalibrationProcessSettings.enableKinect2      = inputManager.enableKinect2;
                RUISCalibrationProcessSettings.jumpGestureEnabled = inputManager.jumpGestureEnabled;
                RUISCalibrationProcessSettings.enableRazerHydra   = inputManager.enableRazerHydra;
                RUISCalibrationProcessSettings.PSMoveIP           = inputManager.PSMoveIP;
                RUISCalibrationProcessSettings.PSMovePort         = inputManager.PSMovePort;
                if (coordinateSystem)
                {
                    RUISCalibrationProcessSettings.yawOffset      = coordinateSystem.yawOffset;
                    RUISCalibrationProcessSettings.positionOffset = coordinateSystem.positionOffset;
                    RUISCalibrationProcessSettings.originalMasterCoordinateSystem = coordinateSystem.rootDevice;
                }

                Application.LoadLevel("calibration");
                break;

            case "Button - Display Management":
                toggleKeystoneConfigurationLayer();
                currentMenuState = RUISMenuStates.keyStoneConfiguration;
                break;

            case "Button - Save Config & Restart Scene":
                inputManager.Export(inputManager.filename);
                SaveInputChanges();
                Application.LoadLevel(Application.loadedLevel);
                break;

            case "Button - Discard Configuration":
                DiscardInputChanges();
                break;

            case "Button - Quit Application":
                if (!Application.isEditor)
                {
                    System.Diagnostics.Process.GetCurrentProcess().Kill();
                }
                else
                {
                    Application.Quit();
                }
                break;
            }
            break;

        case RUISMenuStates.keyStoneConfiguration:
            switch (clickedGameObject.name)
            {
            case "Button - Reset Keystoning":
                foreach (RUISKeystoningConfiguration keystoningConfiguration in FindObjectsOfType(typeof(RUISKeystoningConfiguration)) as RUISKeystoningConfiguration[])
                {
                    keystoningConfiguration.ResetConfiguration();
                }
                break;

            case "Button - Save Configurations":
                (FindObjectOfType(typeof(RUISDisplayManager)) as RUISDisplayManager).SaveDisplaysToXML();
                break;

            case "Button - Load Old Configurations":
                (FindObjectOfType(typeof(RUISDisplayManager)) as RUISDisplayManager).LoadDisplaysFromXML();
                break;

            case "Button - End Display Editing":
                toggleKeystoneConfigurationLayer();
                currentMenuState = RUISMenuStates.selectAndConfigureDevices;
                break;
            }
            break;
        }
    }