// Update is called once per frame void Update() { if (WaveVR_Controller.Input(mainControllerType).GetPress(WVR_InputId.WVR_InputId_Alias1_Touchpad)) { isTouchpadDown = true; } else { isTouchpadDown = false; } if (WaveVR_Controller.Input(mainControllerType).GetPress(WVR_InputId.WVR_InputId_Alias1_Trigger)) { isTriggerDown = true; } else { isTriggerDown = false; } // Move if (isTouchpadDown && !isTriggerDown && actStat == ActionStatus.Walk) // Move forward { Move(true); } if (!isTouchpadDown && isTriggerDown && actStat == ActionStatus.Walk) // Move backward { Move(false); } }
private bool isRenderModelNameSameAsPrevious() { WVR_DeviceType type = WaveVR_Controller.Input(this.deviceType).DeviceType; bool _connected = WaveVR_Controller.Input(this.deviceType).connected; bool _same = false; if (!_connected) { return(_same); } string parameterName = "GetRenderModelName"; ptrParameterName = Marshal.StringToHGlobalAnsi(parameterName); ptrResult = Marshal.AllocHGlobal(64); uint resultVertLength = 64; Interop.WVR_GetParameters(type, ptrParameterName, ptrResult, resultVertLength); string tmprenderModelName = Marshal.PtrToStringAnsi(ptrResult); PrintDebugLog("previous render model: " + renderModelName + ", current render model name: " + tmprenderModelName); if (tmprenderModelName == renderModelName) { _same = true; } Marshal.FreeHGlobal(ptrParameterName); Marshal.FreeHGlobal(ptrResult); return(_same); }
// --------- Reticle -------- } private void UpdateButtonStates() { btnPressDown = Input.GetMouseButtonDown((int)EGazeTriggerMouseKey.LeftClick); btnPressed = Input.GetMouseButton((int)EGazeTriggerMouseKey.LeftClick); btnPressUp = Input.GetMouseButtonUp((int)EGazeTriggerMouseKey.LeftClick); if (GazeDevice == EGazeTriggerDevice.HMD || GazeDevice == EGazeTriggerDevice.HMDWithNonDominantController || GazeDevice == EGazeTriggerDevice.HMDWithDominantController || GazeDevice == EGazeTriggerDevice.HMDWithTwoControllers) { btnPressDown |= WaveVR_Controller.Input(WaveVR_Controller.EDeviceType.Head).GetPressDown((WVR_InputId)ButtonToTrigger); btnPressed |= WaveVR_Controller.Input(WaveVR_Controller.EDeviceType.Head).GetPress((WVR_InputId)ButtonToTrigger); btnPressUp |= WaveVR_Controller.Input(WaveVR_Controller.EDeviceType.Head).GetPressUp((WVR_InputId)ButtonToTrigger); } if (GazeDevice == EGazeTriggerDevice.NonDominantController || GazeDevice == EGazeTriggerDevice.HMDWithNonDominantController || GazeDevice == EGazeTriggerDevice.HMDWithTwoControllers) { btnPressDown |= WaveVR_Controller.Input(WaveVR_Controller.EDeviceType.NonDominant).GetPressDown((WVR_InputId)ButtonToTrigger); btnPressed |= WaveVR_Controller.Input(WaveVR_Controller.EDeviceType.NonDominant).GetPress((WVR_InputId)ButtonToTrigger); btnPressUp |= WaveVR_Controller.Input(WaveVR_Controller.EDeviceType.NonDominant).GetPressUp((WVR_InputId)ButtonToTrigger); } if (GazeDevice == EGazeTriggerDevice.DominantController || GazeDevice == EGazeTriggerDevice.HMDWithDominantController || GazeDevice == EGazeTriggerDevice.HMDWithTwoControllers) { btnPressDown |= WaveVR_Controller.Input(WaveVR_Controller.EDeviceType.Dominant).GetPressDown((WVR_InputId)ButtonToTrigger); btnPressed |= WaveVR_Controller.Input(WaveVR_Controller.EDeviceType.Dominant).GetPress((WVR_InputId)ButtonToTrigger); btnPressUp |= WaveVR_Controller.Input(WaveVR_Controller.EDeviceType.Dominant).GetPressUp((WVR_InputId)ButtonToTrigger); } }
public bool SetLeftHandedMode(bool leftHandedInEditor = false) { if (!this.Initialized) { return(false); } bool _changed = false, _lefthanded = false; #if UNITY_EDITOR && UNITY_ANDROID if (Application.isEditor) { _lefthanded = leftHandedInEditor; } else #endif { _lefthanded = Interop.WVR_GetDefaultControllerRole() == WVR_DeviceType.WVR_DeviceType_Controller_Left ? true : false; } if (WaveVR_Controller.IsLeftHanded != _lefthanded) { _changed = true; Log.i(LOG_TAG, Log.CSB.Append("SetLeftHandedMode() Set left-handed mode to ").Append(_lefthanded).ToString()); WaveVR_Controller.SetLeftHandedMode(_lefthanded); } else { Log.i(LOG_TAG, Log.CSB.Append("SetLeftHandedMode() not change default role: ").Append(_lefthanded ? "LEFT." : "RIGHT.").ToString()); } return(_changed); }
void FixedUpdate() { if (WaveVR_Controller.Input(curFocusControllerType).GetPressDown(WVR_InputId.WVR_InputId_Alias1_Trigger)) { dragging = false; Vector3 fwd_L = m_LeftController.transform.TransformDirection(Vector3.forward); Ray ray = new Ray(WaveVR_Controller.Input(curFocusControllerType).transform.pos, fwd_L); //var ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (GetComponent <Collider>().Raycast(ray, out hit, Mathf.Infinity)) { dragging = true; } } if (WaveVR_Controller.Input(curFocusControllerType).GetPressUp(WVR_InputId.WVR_InputId_Alias1_Trigger)) { dragging = false; } if (dragging && WaveVR_Controller.Input(curFocusControllerType).GetPress(WVR_InputId.WVR_InputId_Alias1_Trigger)) { Vector3 fwd_L = m_LeftController.transform.TransformDirection(Vector3.forward); Ray ray = new Ray(WaveVR_Controller.Input(curFocusControllerType).transform.pos, fwd_L); //var ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (GetComponent <Collider>().Raycast(ray, out hit, Mathf.Infinity)) { var point = hit.point; point = GetComponent <Collider>().ClosestPointOnBounds(point); SetThumbPosition(point); SendMessage("OnDrag", Vector3.one - (thumb.position - GetComponent <Collider>().bounds.min) / GetComponent <Collider>().bounds.size.x); } } }
private void onDeviceConnected(params object[] args) { bool _connected = false; WVR_DeviceType _type = this.deviceType; #if UNITY_EDITOR if (Application.isEditor) { _connected = WaveVR_Controller.Input(this.deviceType).connected; _type = WaveVR_Controller.Input(this.deviceType).DeviceType; } else #endif { WaveVR.Device _device = WaveVR.Instance.getDeviceByType(this.deviceType); _connected = _device.connected; _type = _device.type; } PrintDebugLog("onDeviceConnected() " + _type + " is " + (_connected ? "connected" : "disconnected") + ", left-handed? " + WaveVR_Controller.IsLeftHanded); if (connected != _connected) { connected = _connected; } if (connected) { if (controllerPrefab == null) { onLoadController(_type); } } }
private void SetNonDominantInputRequest() { this.usableButtons_nonDominant.Clear(); if (!WaveVR.Instance.Initialized) { return; } WVR_DeviceType dev_type = WaveVR_Controller.Input(WaveVR_Controller.EDeviceType.NonDominant).DeviceType; bool ret = Interop.WVR_SetInputRequest(dev_type, this.inputAttributes_NonDominant, (uint)this.inputAttributes_NonDominant.Length); if (ret) { inputTableNonDominantSize = Interop.WVR_GetInputMappingTable(dev_type, inputTableNonDominant, inputTableSize); if (inputTableNonDominantSize > 0) { for (int i = 0; i < (int)inputTableNonDominantSize; i++) { if (inputTableNonDominant [i].source.capability != 0) { this.usableButtons_nonDominant.Add(inputTableNonDominant [i].destination.id); DEBUG("SetNonDominantInputRequest() " + dev_type + " button: " + inputTableNonDominant [i].source.id + "(capability: " + inputTableNonDominant [i].source.capability + ")" + " is mapping to NonDominant input ID: " + inputTableNonDominant [i].destination.id); } else { DEBUG("SetNonDominantInputRequest() " + dev_type + " source button " + inputTableNonDominant [i].source.id + " has invalid capability."); } } } WaveVR_Controller.Input(WaveVR_Controller.EDeviceType.NonDominant).UpdateButtonEvents(); } }
private void GazeControl() { bool _connD = WaveVR_Controller.Input(WaveVR_Controller.EDeviceType.Dominant).connected; bool _connN = WaveVR_Controller.Input(WaveVR_Controller.EDeviceType.NonDominant).connected; this.TimerControl = this.timerControlDefault; if (WaveVR_ButtonList.Instance == null || !this.ButtonControl) { // Set timer gaze if no button support. this.TimerControl = true; } else { if (!_connD && !_connN) { // Set timer gaze if no controller connected and HMD enter is unavailable. if (!WaveVR_ButtonList.Instance.IsButtonAvailable(WaveVR_Controller.EDeviceType.Head, WVR_InputId.WVR_InputId_Alias1_Enter)) { this.TimerControl = true; } } } preGazeObject = GetCurrentGameObject(pointerData); CastToCenterOfScreen(); this.currUnscaledTime = Time.unscaledTime; OnTriggeGaze(); UpdateProgressText(); UpdateCounterText(); }
private void onDeviceConnected(params object[] args) { bool _connected = false; WVR_DeviceType _type = this.type; #if UNITY_EDITOR && UNITY_ANDROID if (Application.isEditor) { _connected = WaveVR_Controller.Input(this.type).connected; _type = WaveVR_Controller.Input(this.type).DeviceType; } else #endif { WaveVR.Device _device = WaveVR.Instance.getDeviceByType(this.type); _connected = _device.connected; _type = _device.type; } PrintDebugLog("onDeviceConnected() " + _type + " is " + (_connected ? "connected" : "disconnected") + ", left-handed? " + WaveVR_Controller.IsLeftHanded); if (connected != _connected) { connected = _connected; setActive(connected && (!mFocusCapturedBySystem)); } }
/// <summary> /// GetTouch gets touch position adjusted coordinates. Abs(x) and abs(y) always 0 to 1 /// </summary> /// <param name="origin">like a numeric keypad, 1= lower left, 2=lower-center, 5=center etc</param> /// <returns>A Vector2 of the touch position.</returns> private Vector2 GetTouch(int origin = 5) { if (!WaveVR_Controller.Input(wvr.WVR_DeviceType.WVR_DeviceType_Controller_Right).GetTouch(wvr.WVR_InputId.WVR_InputId_Alias1_Touchpad)) { return(Vector2.zero); } Vector2 touch = -WaveVR_Controller.Input(wvr.WVR_DeviceType.WVR_DeviceType_Controller_Right).GetAxis(wvr.WVR_InputId.WVR_InputId_Alias1_Touchpad); // raw: 0,0 is top left, x is left-right, y is front-back // invert y axis touch.y = 1.0f - touch.y; switch (origin) { case 1: break; case 2: touch.x = touch.x * 2f - 1f; break; case 5: touch.y = touch.y * 2f - 1f; touch.x = touch.x * 2f - 1f; break; } return(touch); }
// Update is called once per frame void Update() { if (!isSaved) { if (isControllerFocus && isReachable) { if (WaveVR_Controller.Input(mainControllerType).GetPress(WVR_InputId.WVR_InputId_Alias1_Touchpad)) { progress.Update(); barImage.fillAmount = progress.GetProgressNorm(); if (barImage.fillAmount >= 0.999f) { isSaved = true; } } if (WaveVR_Controller.Input(mainControllerType).GetPressUp(WVR_InputId.WVR_InputId_Alias1_Touchpad)) { progress.Reset(); barImage.fillAmount = progress.GetProgressNorm(); } } //Use else to handle isReachable == false } else { BecomeSaved(); } }
// Update is called once per frame void Update() { if (autoStopAction != null) { autoStopAction.Invoke(); autoStopAction = null; } WaveVR_Utils.RigidTransform transform = WaveVR_Utils.RigidTransform.identity; if (0 == mSelectDevice) { transform = WaveVR_Controller.Input(WVR_DeviceType.WVR_DeviceType_HMD).transform; mHmdInfo.text = "Euler:(" + transform.rot.eulerAngles.y.ToString("0.0") + ", " + transform.rot.eulerAngles.x.ToString("0.0") + ", " + transform.rot.eulerAngles.z.ToString("0.0") + ")\n" + "Pos:(" + transform.pos.x.ToString("0.000") + ", " + transform.pos.y.ToString("0.000") + ", " + transform.pos.z.ToString("0.000") + ")\n" + aberration; } else { transform = WaveVR_Controller.Input(WVR_DeviceType.WVR_DeviceType_Controller_Right).transform; mControllerInfo.text = "Euler:(" + transform.rot.eulerAngles.y.ToString("0.0") + ", " + transform.rot.eulerAngles.x.ToString("0.0") + ", " + transform.rot.eulerAngles.z.ToString("0.0") + ")\n" + "Position:(" + transform.pos.x.ToString("0.000") + ", " + transform.pos.y.ToString("0.000") + ", " + transform.pos.z.ToString("0.000") + ")\n" + aberration; } }
void OnEnable() { for (int i = 0; i < ControllerObjects.Length; i++) { var obj = ControllerObjects[i]; if (obj != null) { PrintDebugLog ("OnEnable() disable controller " + i); obj.SetActive (false); } } for (int i = 0; i < WaveVR.DeviceTypes.Length; i++) { #if UNITY_EDITOR if (WaveVR_Controller.Input(WaveVR.DeviceTypes[i]).connected) #else if (WaveVR.Instance.connected [i]) #endif { PrintDebugLog ("OnEnable() device " + WaveVR.DeviceTypes [i] + " is connected."); onDeviceConnected (WaveVR.DeviceTypes [i], true); } } WaveVR_Utils.Event.Listen(WaveVR_Utils.Event.DEVICE_CONNECTED, onDeviceConnected); }
private void SetHmdInputRequest() { this.usableButtons_hmd.Clear(); if (!WaveVR.Instance.Initialized) { return; } WVR_DeviceType _type = WaveVR_Controller.Input(WaveVR_Controller.EDeviceType.Head).DeviceType; bool _ret = Interop.WVR_SetInputRequest(_type, this.inputAttributes_hmd, (uint)this.inputAttributes_hmd.Length); if (_ret) { inputTableHMDSize = Interop.WVR_GetInputMappingTable(_type, inputTableHMD, WaveVR_ButtonList.inputTableSize); if (inputTableHMDSize > 0) { for (int _i = 0; _i < (int)inputTableHMDSize; _i++) { if (inputTableHMD [_i].source.capability != 0) { this.usableButtons_hmd.Add(inputTableHMD [_i].destination.id); DEBUG("SetHmdInputRequest() " + _type + " button: " + inputTableHMD [_i].source.id + "(capability: " + inputTableHMD [_i].source.capability + ")" + " is mapping to HMD input ID: " + inputTableHMD [_i].destination.id); } else { DEBUG("SetHmdInputRequest() " + _type + " source button " + inputTableHMD [_i].source.id + " has invalid capability."); } } } WaveVR_Controller.Input(WaveVR_Controller.EDeviceType.Head).UpdateButtonEvents(); } }
// private WaveVR_Reticle rp; private void Update() { if (WaveVR_Controller.Input(wvr.WVR_DeviceType.WVR_DeviceType_Controller_Right).GetTouch(wvr.WVR_InputId.WVR_InputId_Alias1_Touchpad)) { var axis = WaveVR_Controller.Input(device).GetAxis(WVR_InputId.WVR_InputId_Alias1_Touchpad); float angle = VectorAngle(new Vector2(1, 0), axis); //上 if (angle < -45 && angle > -135) { player.Translate(dic.forward * Time.deltaTime * speed); //transform.Translate(transform.forward * Time.deltaTime * speed); } //下 else if (angle > 45 && angle < 135) { player.Translate(-dic.forward * Time.deltaTime * speed); //transform.Translate(-transform.forward * Time.deltaTime * speed); } //左 else if ((angle < 180 && angle > 135) || (angle < -135 && angle > -180)) { player.Translate(-dic.right * Time.deltaTime * speed); //transform.Translate(-transform.forward * Time.deltaTime * speed); } //右 else if ((angle > 0 && angle < 45) || (angle < 0 && angle > -45)) { player.Translate(dic.right * Time.deltaTime * speed); //transform.Translate(transform.forward * Time.deltaTime * speed); } } }
public bool GetInputMappingPair(WaveVR_Controller.EDeviceType device, ref WVR_InputId destination) { if (!WaveVR.Instance.Initialized) { return(false); } // Default true in editor mode, destination will be equivallent to source. bool _result = true; WVR_DeviceType _type = WaveVR_Controller.Input(device).DeviceType; /* * uint _ret = Interop.WVR_GetInputMappingTable (_type, this.inputTable, WaveVR_ButtonList.inputTableSize); * for (int _i = 0; _i < (int)_ret; _i++) * { * PrintDebugLog ("GetInputMappingPair " + device + " table: " + _type + " " + this.inputTable [_i].source.id + " to " + inputTable [_i].destination.id); * if (this.inputTable [_i].destination.id == destination) * { * destination = this.inputTable [_i].source.id; * _result = true; * break; * } * } */ _result = Interop.WVR_GetInputMappingPair(_type, destination, ref this.inputPair); if (_result) { destination = this.inputPair.source.id; } return(_result); }
/// <summary> /// Executes every frame /// </summary> void Update() { //Check if button on right controller is pressed var isTriggered = WaveVR_Controller.Input(WVR_DeviceType.WVR_DeviceType_Controller_Right).GetPressDown(WVR_InputId.WVR_InputId_Alias1_Menu); if (isTriggered) { //Get controller's transform from plugin var trans = WaveVR_Controller.Input(WVR_DeviceType.WVR_DeviceType_Controller_Right).transform; //Calculate controller's forward vector in world coordinates var dir = (trans.TransformPoint(new Vector3(0f, 0f, 1f)) - trans.pos).normalized; //Create a ray starting from the controller's position, pointing to its forward vector var ray = new Ray(trans.pos, dir); RaycastHit hit; //Check if anything is hit by ray if (Physics.Raycast(ray, out hit, 100f)) { //Check if what is being hit has 'START' tag if (hit.transform.tag == "START") { //Reset HMD's roaming position ResetWorldPivot(); //Start game levelController.StartLevel(); } } } }
private void SetNonDominantInputRequest() { this.usableButtons_nonDominant.Clear(); if (!WaveVR.Instance.Initialized) { return; } WVR_DeviceType _type = WaveVR_Controller.Input(WaveVR_Controller.EDeviceType.NonDominant).DeviceType; bool _ret = Interop.WVR_SetInputRequest(_type, this.inputAttributes_NonDominant, (uint)this.inputAttributes_NonDominant.Length); if (_ret) { uint _size = Interop.WVR_GetInputMappingTable(_type, this.inputTable, WaveVR_ButtonList.inputTableSize); if (_size > 0) { for (int _i = 0; _i < (int)_size; _i++) { if (this.inputTable [_i].source.capability != 0) { this.usableButtons_nonDominant.Add(this.inputTable [_i].destination.id); PrintDebugLog("SetNonDominantInputRequest() " + _type + " button: " + this.inputTable [_i].source.id + "(capability: " + this.inputTable [_i].source.capability + ")" + " is mapping to NonDominant input ID: " + this.inputTable [_i].destination.id); } else { PrintDebugLog("SetNonDominantInputRequest() " + _type + " source button " + this.inputTable [_i].source.id + " has invalid capability."); } } } } }
private void updateDevicePose(WVR_DevicePosePair_t pose, WaveVR_Utils.RigidTransform rtPose) { if (TrackPosition) { if (InversePosition) { transform.localPosition = -rtPose.pos; } else { transform.localPosition = rtPose.pos; } if (SetCustomHand && pose.pose.Is6DoFPose == false) { v3ChangeAxisX.x = WaveVR_Controller.Input(this.Type).DeviceType == WVR_DeviceType.WVR_DeviceType_Controller_Right ? 1 : -1; transform.localPosition = Vector3.Scale(transform.localPosition, v3ChangeAxisX); } } if (TrackRotation) { if (InverseRotation) { transform.localRotation = Quaternion.Inverse(rtPose.rot); } else { transform.localRotation = rtPose.rot; } } }
private bool updateBatteryInfo() { if (Application.isEditor) { return(false); } WVR_DeviceType _type = WaveVR_Controller.Input(this.device).DeviceType; float batteryPer = Interop.WVR_GetDeviceBatteryPercentage(_type); PrintDebugLog("updateBatteryInfo() _type: " + _type + ", percentage: " + batteryPer); if (batteryPer < 0) { PrintDebugLog("updateBatteryInfo() _type: " + _type + " BatteryPercentage is negative, return false"); return(false); } foreach (BatteryPercentage bp in batteryPercentages) { if (batteryPer >= bp.minBatteryPercentage && batteryPer <= bp.maxBatteryPercentage) { batteryMeshRenderer.material.mainTexture = bp.texture; Log.d(LOG_TAG, "BatteryPercentage device: " + device + ", between " + bp.minBatteryPercentage + " and " + bp.maxBatteryPercentage); Battery_Change.SetActive(true); } } return(true); }
public void TriggerHapticPulse( uint _durationMicroSec = 1000000, WVR_InputId _id = WVR_InputId.WVR_InputId_Alias1_Touchpad ) { WaveVR_Controller.Input(this.DeviceType).TriggerHapticPulse(); }
// Update is called once per frame void Update() { //debugText.text = string.Format("Saved bot: {0}", gm.numBotSaved); debugText.text = string.Format("my pos: {0}", subject.GetPosition2D().ToString()); //bot0 distance //float d0 = Vector2.Distance(subject.GetPosition2D(), new Vector2(20, 20)); //float d1 = Vector2.Distance(subject.GetPosition2D(), new Vector2(16, 30)); //debugText.text = string.Format("d0: {0}, d1: {1}", d0, d1); //Show minimap or not if (WaveVR_Controller.Input(mainControllerType).GetPress(WVR_InputId.WVR_InputId_Alias1_Menu)) { ShowCanvas(); } else { HideCanvas(); } // Update countdown time left cdText.text = "剩余时间:" + timeLeft; if (timeLeft <= 0) { StopCoroutine("DecrementTime"); gmGO.BroadcastMessage("BC_Timesup", SendMessageOptions.DontRequireReceiver); } }
private void onDeviceConnected(params object[] args) { if (!ptmEnabled) { PrintDebugLog("onDeviceConnected() do NOTHING when disabled."); return; } bool _connected = false; WVR_DeviceType _type = this.Type; #if UNITY_EDITOR if (Application.isEditor) { _connected = WaveVR_Controller.Input(this.Type).connected; _type = WaveVR_Controller.Input(this.Type).DeviceType; } else #endif { WaveVR.Device _device = WaveVR.Instance.getDeviceByType(this.Type); _connected = _device.connected; _type = _device.type; } PrintDebugLog("onDeviceConnected() " + _type + " is " + (_connected ? "connected" : "disconnected") + ", left-handed? " + WaveVR_Controller.IsLeftHanded); if (this.connected != _connected) { this.connected = _connected; ActivateTargetObjects(this.connected && (!mFocusCapturedBySystem)); } }
// --------- Reticle -------- } private void UpdateBtnState() { btnPressDown = Input.GetMouseButtonDown((int)EGazeTriggerMouseKey.LeftClick); btnPressed = Input.GetMouseButton((int)EGazeTriggerMouseKey.LeftClick); btnPressUp = Input.GetMouseButtonUp((int)EGazeTriggerMouseKey.LeftClick); if (GazeDevice == EGazeTriggerDevice.HMD || GazeDevice == EGazeTriggerDevice.HMDWithLeftController || GazeDevice == EGazeTriggerDevice.HMDWithRightController || GazeDevice == EGazeTriggerDevice.HMDWithTwoControllers) { btnPressDown |= WaveVR_Controller.Input(WVR_DeviceType.WVR_DeviceType_HMD).GetPressDown((WVR_InputId)ButtonToTrigger); btnPressed |= WaveVR_Controller.Input(WVR_DeviceType.WVR_DeviceType_HMD).GetPress((WVR_InputId)ButtonToTrigger); btnPressUp |= WaveVR_Controller.Input(WVR_DeviceType.WVR_DeviceType_HMD).GetPressUp((WVR_InputId)ButtonToTrigger); } if (GazeDevice == EGazeTriggerDevice.LeftController || GazeDevice == EGazeTriggerDevice.HMDWithLeftController || GazeDevice == EGazeTriggerDevice.HMDWithTwoControllers) { btnPressDown |= WaveVR_Controller.Input(WVR_DeviceType.WVR_DeviceType_Controller_Left).GetPressDown((WVR_InputId)ButtonToTrigger); btnPressed |= WaveVR_Controller.Input(WVR_DeviceType.WVR_DeviceType_Controller_Left).GetPress((WVR_InputId)ButtonToTrigger); btnPressUp |= WaveVR_Controller.Input(WVR_DeviceType.WVR_DeviceType_Controller_Left).GetPressUp((WVR_InputId)ButtonToTrigger); } if (GazeDevice == EGazeTriggerDevice.RightController || GazeDevice == EGazeTriggerDevice.HMDWithRightController || GazeDevice == EGazeTriggerDevice.HMDWithTwoControllers) { btnPressDown |= WaveVR_Controller.Input(WVR_DeviceType.WVR_DeviceType_Controller_Right).GetPressDown((WVR_InputId)ButtonToTrigger); btnPressed |= WaveVR_Controller.Input(WVR_DeviceType.WVR_DeviceType_Controller_Right).GetPress((WVR_InputId)ButtonToTrigger); btnPressUp |= WaveVR_Controller.Input(WVR_DeviceType.WVR_DeviceType_Controller_Right).GetPressUp((WVR_InputId)ButtonToTrigger); } }
public bool SetLeftHandedMode(bool leftHandedInEditor = false) { if (!this.Initialized) { return(false); } bool _changed = false, _lefthanded = false; #if UNITY_EDITOR if (Application.isEditor) { _lefthanded = leftHandedInEditor; } else #endif { _lefthanded = Interop.WVR_GetDefaultControllerRole() == WVR_DeviceType.WVR_DeviceType_Controller_Left ? true : false; } if (WaveVR_Controller.IsLeftHanded != _lefthanded) { _changed = true; PrintInfoLog("SetLeftHandedMode() Set left-handed mode to " + _lefthanded); WaveVR_Controller.SetLeftHandedMode(_lefthanded); } else { PrintInfoLog("SetLeftHandedMode() not change default role: " + (_lefthanded ? "LEFT." : "RIGHT.")); } return(_changed); }
private void updateDPadAxisText() { if (this.dpad_axis_text == null) { return; } bool _touched = false; foreach (WVR_InputId _dpadId in this.dpadIds) { if (WaveVR_ButtonList.Instance != null && WaveVR_ButtonList.Instance.IsButtonAvailable(this.DeviceType, _dpadId)) { if (WaveVR_Controller.Input(this.DeviceType).GetTouch(_dpadId)) { _touched = true; this.v2axis = WaveVR_Controller.Input(this.DeviceType).GetAxis(_dpadId); this.dpad_axis_text.text = this.v2axis.x.ToString() + ", " + this.v2axis.y.ToString(); PrintDebugLog("updateDPadAxisText() " + _dpadId + " axis: (" + this.v2axis.x + ", " + this.v2axis.y + ")"); } } } if (!_touched) { this.dpad_axis_text.text = ""; } }
private void DeleteControllerWhenDisconnect() { if (mLoadingState != LoadingState.LoadingState_LOADED) { return; } bool _connected = WaveVR_Controller.Input(this.deviceType).connected; if (_connected) { WVR_DeviceType type = WaveVR_Controller.Input(this.deviceType).DeviceType; string parameterName = "GetRenderModelName"; ptrParameterName = Marshal.StringToHGlobalAnsi(parameterName); ptrResult = Marshal.AllocHGlobal(64); uint resultVertLength = 64; uint ret = Interop.WVR_GetParameters(type, ptrParameterName, ptrResult, resultVertLength); string tmprenderModelName = Marshal.PtrToStringAnsi(ptrResult); Marshal.FreeHGlobal(ptrParameterName); Marshal.FreeHGlobal(ptrResult); if ((ret > 0) && (tmprenderModelName != renderModelName)) { deleteChild("Destroy controller prefeb because render model is different"); } } else { deleteChild("Destroy controller prefeb because it is disconnect"); } return; }
private void updateDpadPressText() { if (this.dpad_press_text == null) { return; } WVR_DeviceType _type = WaveVR_Controller.Input(this.DeviceType).DeviceType; foreach (WVR_InputId _dpadId in this.dpadIds) { if (WaveVR_ButtonList.Instance != null && WaveVR_ButtonList.Instance.IsButtonAvailable(this.DeviceType, _dpadId)) { if (WaveVR_Controller.Input(this.DeviceType).GetPressDown(_dpadId)) { this.dpad_press_text.text = _dpadId.ToString(); PrintDebugLog("updateDpadPressText() " + _dpadId + " is pressed down."); WVR_InputId _btn = _dpadId; bool _result = WaveVR_ButtonList.Instance.GetInputMappingPair(this.DeviceType, ref _btn); if (_result) { PrintDebugLog("updateDpadPressText() " + _dpadId + " is mapping from " + _type + " button " + _btn); } } if (WaveVR_Controller.Input(this.DeviceType).GetPressUp(_dpadId)) { this.dpad_press_text.text = ""; PrintDebugLog("updateDpadPressText() " + _dpadId + " is pressed up."); } } } }
private void GazeControl() { bool _connD = WaveVR_Controller.Input(WaveVR_Controller.EDeviceType.Dominant).connected; bool _connN = WaveVR_Controller.Input(WaveVR_Controller.EDeviceType.NonDominant).connected; if (WaveVR_ButtonList.Instance == null) { // Set timer gaze if no button support. this.WithTimeGaze = true; } else { this.WithTimeGaze = this.defWithTimeGaze; if (!_connD && !_connN) { // Set timer gaze if no controller connected and HMD enter is unavailable. if (!WaveVR_ButtonList.Instance.IsButtonAvailable(WaveVR_Controller.EDeviceType.Head, WVR_InputId.WVR_InputId_Alias1_Enter)) { this.WithTimeGaze = true; } } } CastToCenterOfScreen(); this.currUnscaledTime = Time.unscaledTime; OnTriggeGaze(); UpdateProgressText(); UpdateCounterText(); }
/// <summary> /// 获取TouchPad触摸坐标 /// </summary> /// <param name="handType"></param> /// <returns></returns> public Vector2 GetTouchPadPos(HandType handType) { Vector2 v2_temp = Vector2.zero; #if OVR #elif VIVE #elif WVR (WaveVR_Controller.EDeviceType, WaveVR_Controller.EDeviceType)left_and_right = getLeftAndRight(); switch (handType) { case HandType.Left: v2_temp = WaveVR_Controller.Input(left_and_right.Item1).GetAxis(WaveVR_ButtonList.EButtons.Touchpad); break; case HandType.Right: v2_temp = WaveVR_Controller.Input(left_and_right.Item2).GetAxis(WaveVR_ButtonList.EButtons.Touchpad); break; case HandType.Single: v2_temp = WaveVR_Controller.Input(left_and_right.Item1).GetAxis(WaveVR_ButtonList.EButtons.Touchpad); break; default: break; } #elif HVR #elif PVR v2_temp = Pvr_UnitySDKAPI.Controller.UPvr_GetTouchPadPosition((int)handType); #endif return(v2_temp); }