public void TriggerHapticPulse(ushort durationMicroSec = 500, EVRButtonId buttonId = EVRButtonId.k_EButton_SteamVR_Touchpad)
 {
     var vr = SteamVR.instance;
     var axisId = (uint)buttonId - (uint)EVRButtonId.k_EButton_Axis0;
     vr.hmd.TriggerHapticPulse(index, axisId, (char)durationMicroSec);
 }
예제 #2
0
	internal static extern IntPtr VR_IVRSystem_GetButtonIdNameFromEnum(IntPtr instancePtr, EVRButtonId eButtonId);
 public bool GetPressUp(EVRButtonId buttonId)
 {
     return GetPressUp(1ul << (int)buttonId);
 }
 public override Vector2 GetAxis(bool usePrevState, EVRButtonId buttonId = EVRButtonId.k_EButton_SteamVR_Touchpad)
 {
     return(m_state.GetAxis(usePrevState, buttonId));
 }
 public virtual Vector2 GetAxis(EVRButtonId buttonId = EVRButtonId.k_EButton_SteamVR_Touchpad, bool usePrevState = false)
 {
     return(Vector2.zero);
 }
예제 #6
0
        public static bool IsButtonHintActive(Hand hand, EVRButtonId button)
        {
            ControllerButtonHints controllerButtonHints = ControllerButtonHints.GetControllerButtonHints(hand);

            return(controllerButtonHints != null && controllerButtonHints.IsButtonHintActive(button));
        }
예제 #7
0
 public bool GetTouchUp(EVRButtonId buttonId)
 {
     return(GetTouchUp(1ul << (int)buttonId));
 }
예제 #8
0
 public void TriggerHapticPulse(ushort durationMicroSec = 500, EVRButtonId buttonId = EVRButtonId.k_EButton_Axis0)
 {
     if (Controller != null)
     {
         if (durationMicroSec < 3000)
         {
             Controller.TriggerHapticPulse(durationMicroSec, buttonId);
         }
         else
         {
             Debug.LogWarning("You're trying to pulse for over 3000 microseconds, you probably don't want to do that. If you do, use NVRHand.LongHapticPulse(float seconds)");
         }
     }
 }
예제 #9
0
 private IEnumerator DoLongHapticPulse(float seconds, EVRButtonId buttonId)
 {
     float startTime = Time.time;
     float endTime = startTime + seconds;
     while (Time.time < endTime)
     {
         Controller.TriggerHapticPulse(100, buttonId);
         yield return null;
     }
 }
예제 #10
0
 //touchpad:
 public bool IsButtonTouched(EVRButtonId button)
 {
     return 0 != (m_controllerState.ulButtonTouched & ((ulong)1 << (int)button));
 }
예제 #11
0
 public void LongHapticPulse(float seconds, EVRButtonId buttonId = EVRButtonId.k_EButton_Axis0)
 {
     StartCoroutine(DoLongHapticPulse(seconds, buttonId));
 }
예제 #12
0
 public bool WasButtonReleased(EVRButtonId button)
 {
     return 0 != (m_buttonReleasedAcc & ((ulong)1 << (int)button));
 }
예제 #13
0
 private IEnumerator DoLongHapticPulse(float seconds, EVRButtonId buttonId = EVRButtonId.k_EButton_SteamVR_Touchpad)
 {
     var startTime = Time.time;
     var endTime = startTime + seconds;
     while (Time.time < endTime) {
         Controller.TriggerHapticPulse(100, buttonId);
         yield return null;
     }
 }
예제 #14
0
 public void LongHapticPulse(float seconds, EVRButtonId buttonId = EVRButtonId.k_EButton_SteamVR_Touchpad)
 {
     StartCoroutine(DoLongHapticPulse(seconds, buttonId));
 }
예제 #15
0
 public virtual void ButtonPressUp2(EVRButtonId button, ControllerInput controller, ControllerInput controller1)
 {
 }
 private void ExecutePressDown(EVRButtonId id)
 {
     switch (id)
     {
         case EVRButtonId.k_EButton_ApplicationMenu:
             pointerData.applicationMenuPress = pointerData.pointerCurrentRaycast.gameObject;
             ExecuteEvents.Execute<IApplicationMenuHandler>(pointerData.applicationMenuPress, pointerData,
                 (x, y) => x.OnApplicationMenuPressDown(pointerData));
             break;
         case EVRButtonId.k_EButton_Grip:
             pointerData.gripPress = pointerData.pointerCurrentRaycast.gameObject;
             ExecuteEvents.Execute<IGripHandler>(pointerData.gripPress, pointerData,
                 (x, y) => x.OnGripPressDown(pointerData));
             break;
         case EVRButtonId.k_EButton_SteamVR_Touchpad:
             pointerData.touchpadPress = pointerData.pointerCurrentRaycast.gameObject;
             ExecuteEvents.Execute<ITouchpadHandler>(pointerData.touchpadPress, pointerData,
                 (x, y) => x.OnTouchpadPressDown(pointerData));
             break;
         case EVRButtonId.k_EButton_SteamVR_Trigger:
             pointerData.triggerPress = pointerData.pointerCurrentRaycast.gameObject;
             ExecuteEvents.Execute<ITriggerHandler>(pointerData.triggerPress, pointerData,
                 (x, y) => x.OnTriggerPressDown(pointerData));
             break;
     }
 }
예제 #17
0
 /// <summary>
 /// Called when button is released after an object has been "grabbed".
 /// </summary>
 /// <param name="controller"></param>
 public virtual void ButtonPressUp(EVRButtonId button, VRControllerInput controller)
 {
     //Empty. Overriden meothod only.
 }
 private void ExecutePressUp(EVRButtonId id)
 {
     switch (id)
     {
         case EVRButtonId.k_EButton_ApplicationMenu:
             ExecuteEvents.Execute<IApplicationMenuHandler>(pointerData.applicationMenuPress, pointerData,
                 (x, y) => x.OnApplicationMenuPressUp(pointerData));
             pointerData.applicationMenuPress = null;
             break;
         case EVRButtonId.k_EButton_Grip:
             ExecuteEvents.Execute<IGripHandler>(pointerData.gripPress, pointerData,
                 (x, y) => x.OnGripPressUp(pointerData));
             pointerData.gripPress = null;
             break;
         case EVRButtonId.k_EButton_SteamVR_Touchpad:
             ExecuteEvents.Execute<ITouchpadHandler>(pointerData.touchpadPress, pointerData,
                 (x, y) => x.OnTouchpadPressUp(pointerData));
             pointerData.touchpadPress = null;
             break;
         case EVRButtonId.k_EButton_SteamVR_Trigger:
             ExecuteEvents.Execute<ITriggerHandler>(pointerData.triggerPress, pointerData,
                 (x, y) => x.OnTriggerPressUp(pointerData));
             pointerData.triggerPress = null;
             break;
     }
 }
예제 #19
0
 public override void ButtonPressUp(EVRButtonId button, ControllerInput controller)
 {
 }
 private void ExecuteTouchDown(EVRButtonId id)
 {
     switch (id)
     {
         case EVRButtonId.k_EButton_SteamVR_Touchpad:
             pointerData.touchpadTouch = pointerData.pointerCurrentRaycast.gameObject;
             ExecuteEvents.Execute<ITouchpadHandler>(pointerData.touchpadTouch, pointerData,
                 (x, y) => x.OnTouchpadTouchDown(pointerData));
             break;
         case EVRButtonId.k_EButton_SteamVR_Trigger:
             pointerData.triggerTouch = pointerData.pointerCurrentRaycast.gameObject;
             ExecuteEvents.Execute<ITriggerHandler>(pointerData.triggerTouch, pointerData,
                 (x, y) => x.OnTriggerTouchDown(pointerData));
             break;
     }
 }
예제 #21
0
 private void highlightButtonOnBothControllers(EVRButtonId button, string text)
 {
     hideAllHints();
     ControllerButtonHints.ShowTextHint(leftHand.GetComponent <Hand>(), button, text);
     ControllerButtonHints.ShowTextHint(rightHand.GetComponent <Hand>(), button, text);
 }
 private void ExecuteTouchUp(EVRButtonId id)
 {
     switch (id)
     {
         case EVRButtonId.k_EButton_SteamVR_Touchpad:
             ExecuteEvents.Execute<ITouchpadHandler>(pointerData.touchpadTouch, pointerData,
                 (x, y) => x.OnTouchpadTouchUp(pointerData));
             pointerData.touchpadTouch = null;
             break;
         case EVRButtonId.k_EButton_SteamVR_Trigger:
             ExecuteEvents.Execute<ITriggerHandler>(pointerData.triggerTouch, pointerData,
                 (x, y) => x.OnTriggerTouchUp(pointerData));
             pointerData.triggerTouch = null;
             break;
     }
 }
 public virtual bool GetPressUp(EVRButtonId buttonId)
 {
     return(false);
 }
예제 #24
0
파일: openvr_api.cs 프로젝트: Chazman11/SGJ
	public string GetButtonIdNameFromEnum(EVRButtonId eButtonId)
	{
		IntPtr result = FnTable.GetButtonIdNameFromEnum(eButtonId);
		return Marshal.PtrToStringAnsi(result);
	}
 public override bool GetTouch(EVRButtonId buttonId)
 {
     return(GetTouch(1ul << (int)buttonId));
 }
예제 #26
0
 private bool GetTouchUp(EVRButtonId button)
 {
     return(controller.GetTouchUp(button));
 }
예제 #27
0
 public bool WasButtonReleased(EVRButtonId button)
 {
     return false;
 }
예제 #28
0
 private bool GetClick(EVRButtonId button)
 {
     return(controller.GetClick(button));
 }
 public bool GetTouchUp(EVRButtonId buttonId)
 {
     return GetTouchUp(1ul << (int)buttonId);
 }
예제 #30
0
 public void LongHapticPulse(float seconds, EVRButtonId buttonId = EVRButtonId.k_EButton_SteamVR_Touchpad)
 {
     StartCoroutine(DoLongHapticPulse(seconds, buttonId));
 }
 public OVRKeyEventArgs(EVRButtonId buttonId, Vector2 axis, bool isLeft, bool isAxis, bool isTouch) : base()
 {
     ButtonId = buttonId; Axis = axis; IsLeft = isLeft; IsAxis = isAxis; IsTouch = isTouch;
 }
예제 #32
0
		public void TriggerHapticPulse(ushort durationMicroSec = 500, EVRButtonId buttonId = EVRButtonId.k_EButton_SteamVR_Touchpad)
		{
			var system = OpenVR.System;
			if (system != null)
			{
				var axisId = (uint)buttonId - (uint)EVRButtonId.k_EButton_Axis0;
				system.TriggerHapticPulse(index, axisId, (char)durationMicroSec);
			}
		}
예제 #33
0
        //-------------------------------------------------
        private void CreateAndAddButtonInfo(EVRButtonId buttonID)
        {
            Transform           buttonTransform = null;
            List <MeshRenderer> buttonRenderers = new List <MeshRenderer>();

            string buttonDebug = "Looking for button: " + buttonID;

            EVRButtonId searchButtonID = buttonID;

            if (buttonID == EVRButtonId.k_EButton_Grip && SteamVR.instance.hmd_TrackingSystemName.ToLowerInvariant().Contains("oculus"))
            {
                searchButtonID = EVRButtonId.k_EButton_Axis2;
            }
            ulong buttonMaskForID = (1ul << (int)searchButtonID);

            foreach (KeyValuePair <string, ulong> componentButtonMask in componentButtonMasks)
            {
                if ((componentButtonMask.Value & buttonMaskForID) == buttonMaskForID)
                {
                    buttonDebug += "\nFound component: " + componentButtonMask.Key + " " + componentButtonMask.Value;
                    Transform componentTransform = renderModel.FindComponent(componentButtonMask.Key);

                    buttonTransform = componentTransform;

                    buttonDebug += "\nFound componentTransform: " + componentTransform + " buttonTransform: " + buttonTransform;

                    buttonRenderers.AddRange(componentTransform.GetComponentsInChildren <MeshRenderer>());
                }
            }

            buttonDebug += "\nFound " + buttonRenderers.Count + " renderers for " + buttonID;
            foreach (MeshRenderer renderer in buttonRenderers)
            {
                buttonDebug += "\n\t" + renderer.name;
            }

            HintDebugLog(buttonDebug);

            if (buttonTransform == null)
            {
                HintDebugLog("Couldn't find buttonTransform for " + buttonID);
                return;
            }

            ButtonHintInfo hintInfo = new ButtonHintInfo();

            buttonHintInfos.Add(buttonID, hintInfo);

            hintInfo.componentName = buttonTransform.name;
            hintInfo.renderers     = buttonRenderers;

            //Get the local transform for the button
            hintInfo.localTransform = buttonTransform.Find(SteamVR_RenderModel.k_localTransformName);

            OffsetType offsetType = OffsetType.Right;

            switch (buttonID)
            {
            case EVRButtonId.k_EButton_SteamVR_Trigger:
            {
                offsetType = OffsetType.Right;
            }
            break;

            case EVRButtonId.k_EButton_ApplicationMenu:
            {
                offsetType = OffsetType.Right;
            }
            break;

            case EVRButtonId.k_EButton_System:
            {
                offsetType = OffsetType.Right;
            }
            break;

            case Valve.VR.EVRButtonId.k_EButton_Grip:
            {
                offsetType = OffsetType.Forward;
            }
            break;

            case Valve.VR.EVRButtonId.k_EButton_SteamVR_Touchpad:
            {
                offsetType = OffsetType.Up;
            }
            break;
            }

            //Offset for the text end transform
            switch (offsetType)
            {
            case OffsetType.Forward:
                hintInfo.textEndOffsetDir = hintInfo.localTransform.forward;
                break;

            case OffsetType.Back:
                hintInfo.textEndOffsetDir = -hintInfo.localTransform.forward;
                break;

            case OffsetType.Right:
                hintInfo.textEndOffsetDir = hintInfo.localTransform.right;
                break;

            case OffsetType.Up:
                hintInfo.textEndOffsetDir = hintInfo.localTransform.up;
                break;
            }

            //Create the text hint object
            Vector3 hintStartPos = hintInfo.localTransform.position + (hintInfo.localTransform.forward * 0.01f);

            hintInfo.textHintObject      = GameObject.Instantiate(textHintPrefab, hintStartPos, Quaternion.identity) as GameObject;
            hintInfo.textHintObject.name = "Hint_" + hintInfo.componentName + "_Start";
            hintInfo.textHintObject.transform.SetParent(textHintParent);
            hintInfo.textHintObject.layer = gameObject.layer;
            hintInfo.textHintObject.tag   = gameObject.tag;

            //Get all the relevant child objects
            hintInfo.textStartAnchor = hintInfo.textHintObject.transform.Find("Start");
            hintInfo.textEndAnchor   = hintInfo.textHintObject.transform.Find("End");
            hintInfo.canvasOffset    = hintInfo.textHintObject.transform.Find("CanvasOffset");
            hintInfo.line            = hintInfo.textHintObject.transform.Find("Line").GetComponent <LineRenderer>();
            hintInfo.textCanvas      = hintInfo.textHintObject.GetComponentInChildren <Canvas>();
            hintInfo.text            = hintInfo.textCanvas.GetComponentInChildren <Text>();
            hintInfo.textMesh        = hintInfo.textCanvas.GetComponentInChildren <TextMesh>();

            hintInfo.textHintObject.SetActive(false);

            hintInfo.textStartAnchor.position = hintStartPos;

            if (hintInfo.text != null)
            {
                hintInfo.text.text = hintInfo.componentName;
            }

            if (hintInfo.textMesh != null)
            {
                hintInfo.textMesh.text = hintInfo.componentName;
            }

            centerPosition += hintInfo.textStartAnchor.position;

            // Scale hint components to match player size
            hintInfo.textCanvas.transform.localScale      = Vector3.Scale(hintInfo.textCanvas.transform.localScale, player.transform.localScale);
            hintInfo.textStartAnchor.transform.localScale = Vector3.Scale(hintInfo.textStartAnchor.transform.localScale, player.transform.localScale);
            hintInfo.textEndAnchor.transform.localScale   = Vector3.Scale(hintInfo.textEndAnchor.transform.localScale, player.transform.localScale);
            hintInfo.line.transform.localScale            = Vector3.Scale(hintInfo.line.transform.localScale, player.transform.localScale);
        }
예제 #34
0
		public Vector2 GetAxis(EVRButtonId buttonId = EVRButtonId.k_EButton_SteamVR_Touchpad)
		{
			Update();
			var axisId = (uint)buttonId - (uint)EVRButtonId.k_EButton_Axis0;
			switch (axisId)
			{
				case 0: return new Vector2(state.rAxis0.x, state.rAxis0.y);
				case 1: return new Vector2(state.rAxis1.x, state.rAxis1.y);
				case 2: return new Vector2(state.rAxis2.x, state.rAxis2.y);
				case 3: return new Vector2(state.rAxis3.x, state.rAxis3.y);
				case 4: return new Vector2(state.rAxis4.x, state.rAxis4.y);
			}
			return Vector2.zero;
		}
예제 #35
0
        private void CreateAndAddButtonInfo(EVRButtonId buttonID)
        {
            Transform           transform = null;
            List <MeshRenderer> list      = new List <MeshRenderer>();
            string      text        = "Looking for button: " + buttonID;
            EVRButtonId evrbuttonId = buttonID;

            if (buttonID == EVRButtonId.k_EButton_Grip && SteamVR.instance.hmd_TrackingSystemName.ToLowerInvariant().Contains("oculus"))
            {
                evrbuttonId = EVRButtonId.k_EButton_Axis2;
            }
            ulong  num = 1UL << (int)evrbuttonId;
            string text2;

            foreach (KeyValuePair <string, ulong> keyValuePair in this.componentButtonMasks)
            {
                if ((keyValuePair.Value & num) == num)
                {
                    text2 = text;
                    text  = string.Concat(new object[]
                    {
                        text2,
                        "\nFound component: ",
                        keyValuePair.Key,
                        " ",
                        keyValuePair.Value
                    });
                    Transform transform2 = this.renderModel.FindComponent(keyValuePair.Key);
                    transform = transform2;
                    text2     = text;
                    text      = string.Concat(new object[]
                    {
                        text2,
                        "\nFound componentTransform: ",
                        transform2,
                        " buttonTransform: ",
                        transform
                    });
                    list.AddRange(transform2.GetComponentsInChildren <MeshRenderer>());
                }
            }
            text2 = text;
            text  = string.Concat(new object[]
            {
                text2,
                "\nFound ",
                list.Count,
                " renderers for ",
                buttonID
            });
            foreach (MeshRenderer meshRenderer in list)
            {
                text = text + "\n\t" + meshRenderer.name;
            }
            this.HintDebugLog(text);
            if (transform == null)
            {
                this.HintDebugLog("Couldn't find buttonTransform for " + buttonID);
                return;
            }
            ControllerButtonHints.ButtonHintInfo buttonHintInfo = new ControllerButtonHints.ButtonHintInfo();
            this.buttonHintInfos.Add(buttonID, buttonHintInfo);
            buttonHintInfo.componentName  = transform.name;
            buttonHintInfo.renderers      = list;
            buttonHintInfo.localTransform = transform.Find("attach");
            ControllerButtonHints.OffsetType offsetType = ControllerButtonHints.OffsetType.Right;
            switch (buttonID)
            {
            case EVRButtonId.k_EButton_System:
                offsetType = ControllerButtonHints.OffsetType.Right;
                break;

            case EVRButtonId.k_EButton_ApplicationMenu:
                offsetType = ControllerButtonHints.OffsetType.Right;
                break;

            case EVRButtonId.k_EButton_Grip:
                offsetType = ControllerButtonHints.OffsetType.Forward;
                break;

            default:
                if (buttonID != EVRButtonId.k_EButton_Axis0)
                {
                    if (buttonID == EVRButtonId.k_EButton_Axis1)
                    {
                        offsetType = ControllerButtonHints.OffsetType.Right;
                    }
                }
                else
                {
                    offsetType = ControllerButtonHints.OffsetType.Up;
                }
                break;
            }
            switch (offsetType)
            {
            case ControllerButtonHints.OffsetType.Up:
                buttonHintInfo.textEndOffsetDir = buttonHintInfo.localTransform.up;
                break;

            case ControllerButtonHints.OffsetType.Right:
                buttonHintInfo.textEndOffsetDir = buttonHintInfo.localTransform.right;
                break;

            case ControllerButtonHints.OffsetType.Forward:
                buttonHintInfo.textEndOffsetDir = buttonHintInfo.localTransform.forward;
                break;

            case ControllerButtonHints.OffsetType.Back:
                buttonHintInfo.textEndOffsetDir = -buttonHintInfo.localTransform.forward;
                break;
            }
            Vector3 position = buttonHintInfo.localTransform.position + buttonHintInfo.localTransform.forward * 0.01f;

            buttonHintInfo.textHintObject      = UnityEngine.Object.Instantiate <GameObject>(this.textHintPrefab, position, Quaternion.identity);
            buttonHintInfo.textHintObject.name = "Hint_" + buttonHintInfo.componentName + "_Start";
            buttonHintInfo.textHintObject.transform.SetParent(this.textHintParent);
            buttonHintInfo.textHintObject.layer = base.gameObject.layer;
            buttonHintInfo.textHintObject.tag   = base.gameObject.tag;
            buttonHintInfo.textStartAnchor      = buttonHintInfo.textHintObject.transform.Find("Start");
            buttonHintInfo.textEndAnchor        = buttonHintInfo.textHintObject.transform.Find("End");
            buttonHintInfo.canvasOffset         = buttonHintInfo.textHintObject.transform.Find("CanvasOffset");
            buttonHintInfo.line       = buttonHintInfo.textHintObject.transform.Find("Line").GetComponent <LineRenderer>();
            buttonHintInfo.textCanvas = buttonHintInfo.textHintObject.GetComponentInChildren <Canvas>();
            buttonHintInfo.text       = buttonHintInfo.textCanvas.GetComponentInChildren <Text>();
            buttonHintInfo.textMesh   = buttonHintInfo.textCanvas.GetComponentInChildren <TextMesh>();
            buttonHintInfo.textHintObject.SetActive(false);
            buttonHintInfo.textStartAnchor.position = position;
            if (buttonHintInfo.text != null)
            {
                buttonHintInfo.text.text = buttonHintInfo.componentName;
            }
            if (buttonHintInfo.textMesh != null)
            {
                buttonHintInfo.textMesh.text = buttonHintInfo.componentName;
            }
            this.centerPosition += buttonHintInfo.textStartAnchor.position;
            buttonHintInfo.textCanvas.transform.localScale      = Vector3.Scale(buttonHintInfo.textCanvas.transform.localScale, this.player.transform.localScale);
            buttonHintInfo.textStartAnchor.transform.localScale = Vector3.Scale(buttonHintInfo.textStartAnchor.transform.localScale, this.player.transform.localScale);
            buttonHintInfo.textEndAnchor.transform.localScale   = Vector3.Scale(buttonHintInfo.textEndAnchor.transform.localScale, this.player.transform.localScale);
            buttonHintInfo.line.transform.localScale            = Vector3.Scale(buttonHintInfo.line.transform.localScale, this.player.transform.localScale);
        }
예제 #36
0
 public void TriggerHapticPulse(ushort durationMicroSec = 500, EVRButtonId buttonId = EVRButtonId.k_EButton_SteamVR_Touchpad)
 {
     trackedController.peripheral.DpnupWriteDeviceFeedback(DPNP_VALUE_TYPE.DPNP_VALUE_TYPE_FEEDBACK_MOTOR - DPNP_VALUE_TYPE.DPNP_VALUE_TYPE_FEEDBACK, durationMicroSec / 1000.0f);
 }
예제 #37
0
 /************CON ESTO SE LLAMAN LOS METODOS DE LA INTERACCION DEPENDIENDO DEL BOTON PRESIONADO*************/
 public override void ButtonPressDown(EVRButtonId button, ControllerInput controller)
 {
     thisScreen.SetActive(false);
     nxtScreen.SetActive(true);
 }
예제 #38
0
 private bool GetPress(EVRButtonId id)
 {
     return(SteamVR_Controller.Input(index).GetPressDown(id) ||
            SteamVR_Controller.Input(index).GetPress(id));
 }
예제 #39
0
 public bool GetPressDown(EVRButtonId buttonId)
 {
     return(GetPressDown(1ul << (int)buttonId));
 }
예제 #40
0
 private bool GetTouch(EVRButtonId id)
 {
     return(SteamVR_Controller.Input(index).GetTouchDown(id) ||
            SteamVR_Controller.Input(index).GetTouch(id));
 }
예제 #41
0
파일: NVRHand.cs 프로젝트: rcgray/NewtonVR
 public void LongHapticPulse(float seconds, EVRButtonId buttonId = EVRButtonId.k_EButton_Axis0)
 {
     StartCoroutine(DoLongHapticPulse(seconds, buttonId));
 }
 public OVRKeyEventArgs(EVRButtonId buttonId, Vector2 axis, bool isLeft, bool isTouch) : base()
 {
     this.buttonId = buttonId; this.axis = axis; this.isLeft = isLeft; this.isAxis = isTouch;
 }
 public override bool GetTouchUp(EVRButtonId buttonId)
 {
     return(m_state.GetTouchUp(buttonId));
 }
예제 #44
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="eventStr">press, pressandhold, unpress, touch, touchandhold, untouch</param>
 /// <param name="id"></param>
 /// <param name="btnId"></param>
 /// <param name="holdT"></param>
 public int ButtonEvent(string eventStr, int id, EVRButtonId btnId, int holdT)
 {
     return(_fnButtonEvent(_self, ToByte(eventStr), id, (int)btnId, holdT));
 }
 public override Vector2 GetAxis(EVRButtonId buttonId = EVRButtonId.k_EButton_SteamVR_Touchpad, bool usePrevState = false)
 {
     return(m_state.GetAxis(buttonId, usePrevState));
 }
예제 #46
0
	public string GetButtonIdNameFromEnum(EVRButtonId eButtonId)
	{
		IntPtr result = FnTable.GetButtonIdNameFromEnum(eButtonId);
		return (string) Marshal.PtrToStructure(result, typeof(string));
	}
 public virtual bool GetTouchUp(EVRButtonId buttonId)
 {
     return(false);
 }
예제 #48
0
 public static bool IsTouched(this VRControllerState_t controllerState, EVRButtonId buttonId)
 {
     return((controllerState.ulButtonTouched & (1ul << (int)buttonId)) != 0);
 }
 public override bool GetPressUp(EVRButtonId buttonId)
 {
     return(GetPressUp(1ul << (int)buttonId));
 }
예제 #50
0
 public KeyEventArgs(EVRButtonId buttonId, float axisX, float axisY, bool isLeft) : base()
 {
     ButtonId = buttonId; AxisX = axisX; AxisY = axisY; IsLeft = isLeft;
 }
예제 #51
0
	public abstract string GetButtonIdNameFromEnum(EVRButtonId eButtonId);
 public Vector2 GetAxis(EVRButtonId buttonId = EVRButtonId.k_EButton_SteamVR_Touchpad)
 {
     Update();
     var axisId = (uint)buttonId - (uint)EVRButtonId.k_EButton_Axis0;
     return new Vector2(state.rAxis[axisId].x, state.rAxis[axisId].y);
 }
예제 #53
0
	public override string GetButtonIdNameFromEnum(EVRButtonId eButtonId)
	{
		CheckIfUsable();
		IntPtr result = VRNativeEntrypoints.VR_IVRSystem_GetButtonIdNameFromEnum(m_pVRSystem,eButtonId);
		return (string) Marshal.PtrToStructure(result, typeof(string));
	}
예제 #54
0
 public bool WasButtonPressed(EVRButtonId button)
 {
     return false;
 }