InteractableHintElement.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using VRTK;
  5. using ChivaXR.VR;
  6. public class InteractableHintElement : MonoBehaviour
  7. {
  8. private VRTK_InteractableObject interactable;
  9. private CVR_TriggerTool triggerTool;
  10. public SDK_BaseController.ControllerHand currentTouchHand;
  11. public string gripInfo_Hold = "侧键-放下";
  12. public string gripInfo_No = "侧键-拾取";
  13. public string triggerInfo = "扳机键-使用";
  14. void Awake()
  15. {
  16. interactable = this.GetComponent<VRTK_InteractableObject>();
  17. //interactable.InteractableObjectTouched += Touch;
  18. //interactable.InteractableObjectUntouched += UnTouch;
  19. }
  20. public void Touch(object sender, InteractableObjectEventArgs e)
  21. {
  22. currentTouchHand = VRTK_DeviceFinder.GetControllerHand(e.interactingObject);
  23. if (interactable.isGrabbable)
  24. {
  25. HandHintController.GetInstance().ShowHandHint(currentTouchHand, SDK_BaseController.ButtonTypes.Grip);
  26. HandHintController.GetInstance().UpdateToolTipsText(currentTouchHand, SDK_BaseController.ButtonTypes.Grip, gripInfo_No);
  27. //LearningUIController.Instance.SetText("点击手柄侧键,拾取当前工具");
  28. }
  29. else
  30. {
  31. HandHintController.GetInstance().ShowHandHint(currentTouchHand, SDK_BaseController.ButtonTypes.Trigger);
  32. LearningUIController.Instance.SetText("按住扳机键,沿衬条抽出方向,移动手柄");
  33. }
  34. }
  35. public void UnTouch(object sender, InteractableObjectEventArgs e)
  36. {
  37. if (interactable.isGrabbable)
  38. {
  39. HandHintController.GetInstance().CloseHandHint(currentTouchHand, SDK_BaseController.ButtonTypes.Grip);
  40. }
  41. else
  42. {
  43. HandHintController.GetInstance().CloseHandHint(currentTouchHand, SDK_BaseController.ButtonTypes.Trigger);
  44. }
  45. currentTouchHand = SDK_BaseController.ControllerHand.None;
  46. }
  47. }