public ConfigWidget drawConfigWidget() { //if user clicks on config icon while in AR setup, accept setup (same as ok button) acceptARConfig(); mainController.deselect(); // get radial menu // get ProgressWidget GameObject radialrefObject = GameObject.Find("GUI/Canvas/ProgressWidget"); if (radialrefObject != null) { radialrefObject.gameObject.SetActive(false); } // copy values from global settings to config widget TODO: load it directly, see next line VPETSettings.mapValuesToObject(configWidget); // map values from preferences to config widget VPETSettings.mapValuesFromPreferences(configWidget); configWidget.Show(); configWidget.initConfigWidget(); UI.OnUIChanged.Invoke(); return(configWidget); }
//! //! reset all parameters to inital values present on startup //! public void resetAll() { locked = false; serverAdapter.SendObjectUpdate(this, ParameterType.LOCK); target.localRotation = initialRotation; serverAdapter.SendObjectUpdate(this, ParameterType.ROT); target.localPosition = initialPosition; serverAdapter.SendObjectUpdate(this, ParameterType.POS); target.localScale = initialScale; serverAdapter.SendObjectUpdate(this, ParameterType.SCALE); this.setKinematic(true); #if !SCENE_HOST mainController.deselect(); #endif }
//! //! Wrapper for unity API function GetButtonDown() that does not behave like described on iOS. //! Using a dictionary to keep track of the status of controller buttons. //! A bool flag gets kept for every button name this function is called for. //! The function can be probably removed when the iOS unity API issue was fixed. //! @param buttonName name of a button like its defined in the Input Manager. //! @return true only for the first time the function gets called for a certain button after the user stated pressing it. //! /*private bool buttonPressed(string buttonName) * { * if (Input.GetButtonDown(buttonName)) * { * float buttonPressedTimestamp = 0f; * if (buttonPressedState.TryGetValue(buttonName, out buttonPressedTimestamp)) * { * if (buttonPressedTimestamp > 0f) * return false; * else * { * buttonPressedState[buttonName] = Time.time; * return true; * } * } * else * { * buttonPressedState.Add(buttonName, Time.time); * return true; * } * } * else if (Input.GetButtonUp(buttonName) && buttonPressedState.ContainsKey(buttonName)) * buttonPressedState[buttonName] = 0f; * return false; * }*/ //! //! Function to mesure for how long a button has already been pressed. //! In case the given button is not pressed at all ... //! @param buttonName name of a button like its defined in the Input Manager. //! @return the time in seconds for how long the button has been already pressed or 0 if the button isn't pressed //! /*private float buttonPressedTime(string buttonName) { * float buttonPressedTimestamp = 0f; * if (!buttonPressedState.TryGetValue(buttonName, out buttonPressedTimestamp)) { * buttonPressed(buttonName); * return buttonPressedTimestamp; // this should be an exception * } * else if (buttonPressedTimestamp > 0f) * return Time.time - buttonPressedTimestamp; * else * return buttonPressedTimestamp; * }*/ //! //! all possible inputs //! called every frame by MoveCamera (in its update() function) //! private void getButtonUpdates() { if (gamepad.leftShoulder.isPressed) //if (Input.GetButton("L1")) { getcurrentCrosshairObject(); // hide center menu mainController.deselect(); // switch to camera mode moveCameraActive = true; moveObjectActive = false; rotateObjectActive = false; scaleObjectActive = false; // show crosshair crossHair.SetActive(true); // initial state, previousCrosshairObject == some object, currentCrosshairObject == null if (previousCrosshairObject != null && currentCrosshairObject == null) { previousCrosshairObject.GetComponent <SceneObject>().callShowNormal(previousCrosshairObject); } // initial state, previousCrosshairObject == some object (previous), currentCrosshairObject == some object new else if (currentCrosshairObject != null && previousCrosshairObject != null && currentCrosshairObject != previousCrosshairObject) { previousCrosshairObject.GetComponent <SceneObject>().callShowNormal(previousCrosshairObject); } // highlight current selection else if (currentCrosshairObject) { outlineEffect.lineColor0 = new Color(1f, 0.9f, 0.7f); currentCrosshairObject.GetComponent <SceneObject>().callShowHighlighted(currentCrosshairObject); } } else if (gamepad.leftShoulder.wasReleasedThisFrame) //else if (Input.GetButtonUp("L1")) { if (currentCrosshairObject != null) { outlineEffect.lineColor0 = new Color(1.0f, 0.8f, 0.3f); mainController.handleSelection(currentCrosshairObject.GetComponent <Transform>()); } crossHair.SetActive(false); } // enter translation mode else if (gamepad.buttonNorth.wasPressedThisFrame) //else if (buttonPressed("Fire3")) { // enter object translation mode if (moveCameraActive && mainController.getCurrentSelection()) { moveCameraActive = false; moveObjectActive = true; rotateObjectActive = false; scaleObjectActive = false; mainController.UIAdapter.CenterMenu.transform.GetChild(0).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } // directly enter rotation mode else if (rotateObjectActive) { moveCameraActive = false; moveObjectActive = true; rotateObjectActive = false; scaleObjectActive = false; mainController.UIAdapter.CenterMenu.transform.GetChild(1).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); mainController.UIAdapter.drawCenterMenu(layouts.OBJECT); mainController.UIAdapter.CenterMenu.transform.GetChild(0).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } // directly enter scale mode else if (scaleObjectActive) { moveCameraActive = false; moveObjectActive = true; rotateObjectActive = false; scaleObjectActive = false; mainController.UIAdapter.CenterMenu.transform.GetChild(2).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); mainController.UIAdapter.drawCenterMenu(layouts.OBJECT); mainController.UIAdapter.CenterMenu.transform.GetChild(0).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } // enter camera mode else if (moveObjectActive) { moveCameraActive = true; moveObjectActive = false; rotateObjectActive = false; scaleObjectActive = false; mainController.UIAdapter.CenterMenu.transform.GetChild(0).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } } // enter rotation mode else if (gamepad.buttonEast.wasPressedThisFrame) //else if (buttonPressed("Fire1")) { // enter object translation mode if (moveCameraActive && mainController.getCurrentSelection()) { moveCameraActive = false; moveObjectActive = false; rotateObjectActive = true; scaleObjectActive = false; mainController.UIAdapter.CenterMenu.transform.GetChild(1).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } // directly enter rotation mode else if (moveObjectActive) { moveCameraActive = false; moveObjectActive = false; rotateObjectActive = true; scaleObjectActive = false; mainController.UIAdapter.CenterMenu.transform.GetChild(0).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); mainController.UIAdapter.drawCenterMenu(layouts.OBJECT); mainController.UIAdapter.CenterMenu.transform.GetChild(1).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } // directly enter scale mode else if (scaleObjectActive) { moveCameraActive = false; moveObjectActive = false; rotateObjectActive = true; scaleObjectActive = false; mainController.UIAdapter.CenterMenu.transform.GetChild(2).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); mainController.UIAdapter.drawCenterMenu(layouts.OBJECT); mainController.UIAdapter.CenterMenu.transform.GetChild(1).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } // enter camera mode else if (rotateObjectActive) { moveCameraActive = true; moveObjectActive = false; rotateObjectActive = false; scaleObjectActive = false; mainController.UIAdapter.CenterMenu.transform.GetChild(1).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } } // enter scale mode else if (gamepad.buttonSouth.wasPressedThisFrame) //else if (buttonPressed("Fire0")) { // enter object translation mode if (moveCameraActive && mainController.getCurrentSelection()) { moveCameraActive = false; moveObjectActive = false; rotateObjectActive = false; scaleObjectActive = true; if (mainController.getCurrentSelection().GetComponent <SceneObjectLight>()) { mainController.UIAdapter.CenterMenu.transform.GetChild(7).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } else { mainController.UIAdapter.CenterMenu.transform.GetChild(2).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } } // directly enter rotation mode else if (moveObjectActive) { moveCameraActive = false; moveObjectActive = false; rotateObjectActive = false; scaleObjectActive = true; mainController.UIAdapter.CenterMenu.transform.GetChild(0).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); if (mainController.getCurrentSelection().GetComponent <SceneObjectLight>()) { if (mainController.arMode) { mainController.UIAdapter.drawCenterMenu(layouts.LIGHT_AR); } else { mainController.UIAdapter.drawCenterMenu(layouts.LIGHT); } mainController.UIAdapter.CenterMenu.transform.GetChild(7).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } else { mainController.UIAdapter.drawCenterMenu(layouts.OBJECT); mainController.UIAdapter.CenterMenu.transform.GetChild(2).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } } // directly enter scale mode else if (rotateObjectActive) { moveCameraActive = false; moveObjectActive = false; rotateObjectActive = false; scaleObjectActive = true; mainController.UIAdapter.CenterMenu.transform.GetChild(1).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); if (mainController.getCurrentSelection().GetComponent <SceneObjectLight>()) { if (mainController.arMode) { mainController.UIAdapter.drawCenterMenu(layouts.LIGHT_AR); } else { mainController.UIAdapter.drawCenterMenu(layouts.LIGHT); } mainController.UIAdapter.CenterMenu.transform.GetChild(7).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } else { mainController.UIAdapter.drawCenterMenu(layouts.OBJECT); mainController.UIAdapter.CenterMenu.transform.GetChild(2).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } } // enter camera mode else if (scaleObjectActive) { moveCameraActive = true; moveObjectActive = false; rotateObjectActive = false; scaleObjectActive = false; if (mainController.getCurrentSelection().GetComponent <SceneObject>() is SceneObjectLight) { mainController.UIAdapter.CenterMenu.transform.GetChild(7).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } else { mainController.UIAdapter.CenterMenu.transform.GetChild(2).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } } } // toggle configuration window else if (gamepad.startButton.wasPressedThisFrame) //else if (Input.GetButtonDown("Settings")) { mainController.UIAdapter.MainMenu.transform.GetChild(3).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } // toggle predefined bookmarks else if (gamepad.rightShoulder.wasPressedThisFrame && !mainController.arMode) { //else if (buttonPressed("R1") && !mainController.arMode) mainController.repositionCamera(); } // disable tracking else if (gamepad.rightTrigger.wasPressedThisFrame && !mainController.arMode) //else if (buttonPressed("R2") && !mainController.arMode) { mainController.UIAdapter.MainMenu.transform.GetChild(2).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } // deselect or reset current selection //TODO: reimplement hold if (gamepad.buttonWest.wasPressedThisFrame /*&& buttonPressedTime("Fire2") > 0f && buttonPressedTime("Fire2") < deselectHoldDuration*/) //if (!Input.GetButton("Fire2") && buttonPressedTime("Fire2") > 0f && buttonPressedTime("Fire2") < deselectHoldDuration) { mainController.handleSelection(); moveObjectActive = false; rotateObjectActive = false; scaleObjectActive = false; moveCameraActive = true; } /*else if (gamepad.buttonWest.isPressed && buttonPressedTime("Fire2") > deselectHoldDuration) { * //else if (Input.GetButton("Fire2") && buttonPressedTime("Fire2") > deselectHoldDuration){ * if (mainController.getCurrentSelection()) * { * if (mainController.getCurrentSelection().GetComponent<SceneObject>().GetType() == typeof(SceneObjectLight)) * mainController.getCurrentSelection().GetComponent<SceneObjectLight>().resetAll(); * else * mainController.getCurrentSelection().GetComponent<SceneObject>().resetAll(); * } * }*/ if (gamepad.bButton.wasPressedThisFrame) { } // cycle through edit modes else if (gamepad.leftTrigger.wasPressedThisFrame) //else if (buttonPressed("L2")) { mainController.UIAdapter.MainMenu.transform.GetChild(1).GetComponent <MenuButtonList>().OnPointerClick(new PointerEventData(EventSystem.current)); } // cycle through object list else if (gamepad.dpad.up.wasPressedThisFrame || gamepad.dpad.down.wasPressedThisFrame || gamepad.dpad.left.wasPressedThisFrame || gamepad.dpad.right.wasPressedThisFrame) //else if ( (buttonPressed("DPAD_H")) || // (buttonPressed("DPAD_H_neg")) || // (buttonPressed("DPAD_V")) || // (buttonPressed("DPAD_V_neg")) ) { if (gamepad.dpad.right.wasPressedThisFrame || gamepad.dpad.up.wasPressedThisFrame) { //if (Input.GetButtonDown("DPAD_H") || Input.GetButtonDown("DPAD_V")) DPADdirection = 1; } else { DPADdirection = -1; } int match = -1; bool cycleLights = false; #if UNITY_EDITOR || UNITY_STANDALONE if (gamepad.dpad.y.ReadValue() != 0) { //if (Input.GetAxis("DPAD_V") != 0) cycleLights = true; } #elif UNITY_IOS || UNITY_STANDALONE_OSX if (gamepad.dpad.up.wasPressedThisFrame || gamepad.dpad.down.wasPressedThisFrame) { //if (Input.GetButtonDown("DPAD_V") || Input.GetButtonDown("DPAD_V_neg") ) cycleLights = true; } #endif Transform currentSelection = mainController.getCurrentSelection(); mainController.handleSelection(); if (cycleLights) { if (currentSelection) { match = SceneLoader.SelectableLights.IndexOf(currentSelection.gameObject); } if (match < 0) { selectLight(0); } else { selectLight(match + DPADdirection); } } else { if (currentSelection) { match = SceneLoader.SceneEditableObjects.IndexOf(currentSelection.gameObject); } if (match < 0) { selectObject(0); } else { selectObject(match + DPADdirection); } } // reactivate last selected edit mode if (moveObjectActive) { mainController.buttonTranslationClicked(true); } else if (rotateObjectActive) { mainController.buttonRotationClicked(true); } else if (scaleObjectActive & !mainController.getCurrentSelection().GetComponent <SceneObjectLight>()) { mainController.buttonScaleClicked(true); } } }
//! //! all possible inputs //! called every frame by MoveCamera (in its update() function) //! public void getButtonUpdates() { if (Input.GetButton("L1")) { getcurrentCrosshairObject(); // hide center menu mainController.deselect(); // switch to camera mode moveCameraActive = true; moveObjectActive = false; rotateObjectActive = false; scaleObjectActive = false; // show crosshair crossHair.SetActive(true); // initial state, previousCrosshairObject == some object, currentCrosshairObject == null if (previousCrosshairObject != null && currentCrosshairObject == null) { previousCrosshairObject.GetComponent <SceneObject>().callShowNormal(previousCrosshairObject); } // initial state, previousCrosshairObject == some object (previous), currentCrosshairObject == some object new else if (currentCrosshairObject != null && previousCrosshairObject != null && currentCrosshairObject != previousCrosshairObject) { previousCrosshairObject.GetComponent <SceneObject>().callShowNormal(previousCrosshairObject); } // highlight current selection else if (currentCrosshairObject) { outlineEffect.lineColor0 = new Color(1f, 0.9f, 0.7f); currentCrosshairObject.GetComponent <SceneObject>().callShowHighlighted(currentCrosshairObject); } } else if (Input.GetButtonUp("L1")) { if (currentCrosshairObject != null) { outlineEffect.lineColor0 = new Color(1.0f, 0.8f, 0.3f); mainController.handleSelection(currentCrosshairObject.GetComponent <Transform>()); } crossHair.SetActive(false); } // enter translation mode else if (buttonPressed("Fire3")) { // enter object translation mode if (moveCameraActive && mainController.getCurrentSelection()) { moveCameraActive = false; moveObjectActive = true; rotateObjectActive = false; scaleObjectActive = false; mainController.UIAdapter.CenterMenu.transform.GetChild(0).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } // directly enter rotation mode else if (rotateObjectActive) { moveCameraActive = false; moveObjectActive = true; rotateObjectActive = false; scaleObjectActive = false; mainController.UIAdapter.CenterMenu.transform.GetChild(1).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); mainController.UIAdapter.drawCenterMenu(layouts.OBJECT); mainController.UIAdapter.CenterMenu.transform.GetChild(0).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } // directly enter scale mode else if (scaleObjectActive) { moveCameraActive = false; moveObjectActive = true; rotateObjectActive = false; scaleObjectActive = false; mainController.UIAdapter.CenterMenu.transform.GetChild(2).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); mainController.UIAdapter.drawCenterMenu(layouts.OBJECT); mainController.UIAdapter.CenterMenu.transform.GetChild(0).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } // enter camera mode else if (moveObjectActive) { moveCameraActive = true; moveObjectActive = false; rotateObjectActive = false; scaleObjectActive = false; mainController.UIAdapter.CenterMenu.transform.GetChild(0).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } } // enter rotation mode else if (buttonPressed("Fire1")) { // enter object translation mode if (moveCameraActive && mainController.getCurrentSelection()) { moveCameraActive = false; moveObjectActive = false; rotateObjectActive = true; scaleObjectActive = false; mainController.UIAdapter.CenterMenu.transform.GetChild(1).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } // directly enter rotation mode else if (moveObjectActive) { moveCameraActive = false; moveObjectActive = false; rotateObjectActive = true; scaleObjectActive = false; mainController.UIAdapter.CenterMenu.transform.GetChild(0).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); mainController.UIAdapter.drawCenterMenu(layouts.OBJECT); mainController.UIAdapter.CenterMenu.transform.GetChild(1).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } // directly enter scale mode else if (scaleObjectActive) { moveCameraActive = false; moveObjectActive = false; rotateObjectActive = true; scaleObjectActive = false; mainController.UIAdapter.CenterMenu.transform.GetChild(2).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); mainController.UIAdapter.drawCenterMenu(layouts.OBJECT); mainController.UIAdapter.CenterMenu.transform.GetChild(1).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } // enter camera mode else if (rotateObjectActive) { moveCameraActive = true; moveObjectActive = false; rotateObjectActive = false; scaleObjectActive = false; mainController.UIAdapter.CenterMenu.transform.GetChild(1).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } } // enter scale mode else if (buttonPressed("Fire0")) { // enter object translation mode if (moveCameraActive && mainController.getCurrentSelection()) { moveCameraActive = false; moveObjectActive = false; rotateObjectActive = false; scaleObjectActive = true; if (mainController.getCurrentSelection().GetComponent <SceneObjectLight>()) { mainController.UIAdapter.CenterMenu.transform.GetChild(7).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } else { mainController.UIAdapter.CenterMenu.transform.GetChild(2).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } } // directly enter rotation mode else if (moveObjectActive) { moveCameraActive = false; moveObjectActive = false; rotateObjectActive = false; scaleObjectActive = true; mainController.UIAdapter.CenterMenu.transform.GetChild(0).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); if (mainController.getCurrentSelection().GetComponent <SceneObjectLight>()) { if (mainController.arMode) { mainController.UIAdapter.drawCenterMenu(layouts.LIGHT_AR); } else { mainController.UIAdapter.drawCenterMenu(layouts.LIGHT); } mainController.UIAdapter.CenterMenu.transform.GetChild(7).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } else { mainController.UIAdapter.drawCenterMenu(layouts.OBJECT); mainController.UIAdapter.CenterMenu.transform.GetChild(2).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } } // directly enter scale mode else if (rotateObjectActive) { moveCameraActive = false; moveObjectActive = false; rotateObjectActive = false; scaleObjectActive = true; mainController.UIAdapter.CenterMenu.transform.GetChild(1).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); if (mainController.getCurrentSelection().GetComponent <SceneObjectLight>()) { if (mainController.arMode) { mainController.UIAdapter.drawCenterMenu(layouts.LIGHT_AR); } else { mainController.UIAdapter.drawCenterMenu(layouts.LIGHT); } mainController.UIAdapter.CenterMenu.transform.GetChild(7).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } else { mainController.UIAdapter.drawCenterMenu(layouts.OBJECT); mainController.UIAdapter.CenterMenu.transform.GetChild(2).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } } // enter camera mode else if (scaleObjectActive) { moveCameraActive = true; moveObjectActive = false; rotateObjectActive = false; scaleObjectActive = false; if (mainController.getCurrentSelection().GetComponent <SceneObject>() is SceneObjectLight) { mainController.UIAdapter.CenterMenu.transform.GetChild(7).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } else { mainController.UIAdapter.CenterMenu.transform.GetChild(2).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } } } // toggle configuration window else if (Input.GetButtonDown("Settings")) { mainController.UIAdapter.MainMenu.transform.GetChild(3).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } // toggle predefined bookmarks else if (buttonPressed("R1") && !mainController.arMode) { mainController.repositionCamera(); } // disable tracking #if UNITY_EDITOR || UNITY_STANDALONE else if (Input.GetAxis("R2") < 0 && !hasPressedR2 && !mainController.arMode) #elif UNITY_IOS || UNITY_STANDALONE_OSX else if (buttonPressed("R2") && !mainController.arMode) #endif { hasPressedR2 = true; mainController.UIAdapter.MainMenu.transform.GetChild(2).GetComponent <MenuButtonToggle>().OnPointerClick(new PointerEventData(EventSystem.current)); } // deselect or reset current selection if (!Input.GetButton("Fire2") && buttonPressedTime("Fire2") > 0f && buttonPressedTime("Fire2") < deselectHoldDuration) { mainController.handleSelection(); moveObjectActive = false; rotateObjectActive = false; scaleObjectActive = false; moveCameraActive = true; } else if (Input.GetButton("Fire2") && buttonPressedTime("Fire2") > deselectHoldDuration) { if (mainController.getCurrentSelection()) { if (mainController.getCurrentSelection().GetComponent <SceneObject>().GetType() == typeof(SceneObjectLight)) { mainController.getCurrentSelection().GetComponent <SceneObjectLight>().resetAll(); } else { mainController.getCurrentSelection().GetComponent <SceneObject>().resetAll(); } } } if (buttonPressed("Fire2")) { } // cycle through edit modes #if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN || UNITY_EDITOR_LINUX else if (Input.GetAxis("L2") > 0 && !hasPressedL2) #elif UNITY_IOS || UNITY_STANDALONE_OSX else if (buttonPressed("L2")) #endif { hasPressedL2 = true; mainController.UIAdapter.MainMenu.transform.GetChild(1).GetComponent <MenuButtonList>().OnPointerClick(new PointerEventData(EventSystem.current)); } // cycle through object list #if UNITY_EDITOR || UNITY_STANDALONE else if (Input.GetAxis("DPAD_H") != 0 && !hasPressedDirectionalPad || Input.GetAxis("DPAD_V") != 0 && !hasPressedDirectionalPad) { if (Input.GetAxis("DPAD_H") == 1 || Input.GetAxis("DPAD_V") == 1) #elif UNITY_IOS || UNITY_STANDALONE_OSX else if ((buttonPressed("DPAD_H")) || (buttonPressed("DPAD_H_neg")) || (buttonPressed("DPAD_V")) || (buttonPressed("DPAD_V_neg"))) { if (Input.GetButtonDown("DPAD_H") || Input.GetButtonDown("DPAD_V")) #endif { DPADdirection = 1; } else { DPADdirection = -1; } hasPressedDirectionalPad = true; int match = -1; bool cycleLights = false; #if UNITY_EDITOR || UNITY_STANDALONE if (Input.GetAxis("DPAD_V") != 0) { cycleLights = true; } #elif UNITY_IOS || UNITY_STANDALONE_OSX if (Input.GetButtonDown("DPAD_V") || Input.GetButtonDown("DPAD_V_neg")) { cycleLights = true; } #endif Transform currentSelection = mainController.getCurrentSelection(); mainController.handleSelection(); if (cycleLights) { if (currentSelection) { match = SceneLoader.SelectableLights.IndexOf(currentSelection.gameObject); } if (match < 0) { selectLight(0); } else { selectLight(match + DPADdirection); } } else { if (currentSelection) { match = SceneLoader.SceneEditableObjects.IndexOf(currentSelection.gameObject); } if (match < 0) { selectObject(0); } else { selectObject(match + DPADdirection); } } // reactivate last selected edit mode if (moveObjectActive) { mainController.buttonTranslationClicked(true); } else if (rotateObjectActive) { mainController.buttonRotationClicked(true); } else if (scaleObjectActive & !mainController.getCurrentSelection().GetComponent <SceneObjectLight>()) { mainController.buttonScaleClicked(true); } } // Dpad and R2 reset #if UNITY_EDITOR || UNITY_STANDALONE if (Input.GetAxis("DPAD_H") == 0 && (Input.GetAxis("DPAD_V") == 0)) { hasPressedDirectionalPad = false; } if (Input.GetAxis("R2") == 0) { hasPressedR2 = false; } if (Input.GetAxis("L2") == 0) { hasPressedL2 = false; } #elif UNITY_IOS || UNITY_STANDALONE_OSX if (!buttonPressed("DPAD_H") && !buttonPressed("DPAD_V")) { hasPressedDirectionalPad = false; } #endif }