Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. using UnityEngine;
  2. using UnityEngine.EventSystems;
  3. using UnityEngine.UI;
  4.  
  5. [RequireComponent(typeof(SteamVR_LaserPointer))]
  6. public class VRUIInput : MonoBehaviour
  7. {
  8. private SteamVR_LaserPointer laserPointer;
  9. private SteamVR_TrackedController trackedController;
  10.  
  11. private void OnEnable()
  12. {
  13. laserPointer = GetComponent<SteamVR_LaserPointer>();
  14. laserPointer.PointerIn -= HandlePointerIn;
  15. laserPointer.PointerIn += HandlePointerIn;
  16. laserPointer.PointerOut -= HandlePointerOut;
  17. laserPointer.PointerOut += HandlePointerOut;
  18.  
  19. trackedController = GetComponent<SteamVR_TrackedController>();
  20. if (trackedController == null)
  21. {
  22. trackedController = GetComponentInParent<SteamVR_TrackedController>();
  23. }
  24. trackedController.TriggerClicked -= HandleTriggerClicked;
  25. trackedController.TriggerClicked += HandleTriggerClicked;
  26. }
  27.  
  28. private void HandleTriggerClicked(object sender, ClickedEventArgs e)
  29. {
  30. if (EventSystem.current.currentSelectedGameObject != null)
  31. {
  32. ExecuteEvents.Execute(EventSystem.current.currentSelectedGameObject, new PointerEventData(EventSystem.current), ExecuteEvents.submitHandler);
  33. }
  34. }
  35.  
  36. private void HandlePointerIn(object sender, PointerEventArgs e)
  37. {
  38. var button = e.target.GetComponent<Button>();
  39. if (button != null)
  40. {
  41. button.Select();
  42. Debug.Log("HandlePointerIn", e.target.gameObject);
  43. }
  44. }
  45.  
  46. private void HandlePointerOut(object sender, PointerEventArgs e)
  47. {
  48.  
  49. var button = e.target.GetComponent<Button>();
  50. if (button != null)
  51. {
  52. EventSystem.current.SetSelectedGameObject(null);
  53. Debug.Log("HandlePointerOut", e.target.gameObject);
  54. }
  55. }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement