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); } }
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; } }
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); } }
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; } }
// 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; } }