123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using VRTK;
- public class HandHintController : MonoBehaviour
- {
- private static HandHintController _instance;
- public static HandHintController GetInstance()
- {
- if (!_instance)
- {
- _instance = (HandHintController)GameObject.FindObjectOfType(typeof(HandHintController));
- if (!_instance) { Debug.LogError("场景中没有活跃的HandHintController"); }
- }
- return _instance;
- }
- public HandTooltipsManager rightHandTooltipsManager;
- public HandTooltipsManager leftHandTooltipsManager;
- private void Awake()
- {
- rightHandTooltipsManager.SetToolTips(false,false);
- leftHandTooltipsManager.SetToolTips(false,false);
- }
- public void UpdateToolTipsText(SDK_BaseController.ControllerHand _controllerHand, SDK_BaseController.ButtonTypes _buttonType,string info)
- {
-
- switch (_controllerHand)
- {
- case SDK_BaseController.ControllerHand.None:
- break;
- case SDK_BaseController.ControllerHand.Left:
- switch (_buttonType)
- {
- case SDK_BaseController.ButtonTypes.ButtonTwo:
- HandHintController.GetInstance().leftHandTooltipsManager.buttonTwoTooltip.UpdateText(info);
- break;
- case SDK_BaseController.ButtonTypes.Grip:
- HandHintController.GetInstance().leftHandTooltipsManager.gripTooltip.UpdateText(info);
- break;
- case SDK_BaseController.ButtonTypes.Trigger:
- HandHintController.GetInstance().leftHandTooltipsManager.triggerTooltip.UpdateText(info);
- break;
- case SDK_BaseController.ButtonTypes.Touchpad:
- HandHintController.GetInstance().leftHandTooltipsManager.touchPadTooltip.UpdateText(info);
- break;
- }
- break;
- case SDK_BaseController.ControllerHand.Right:
- switch (_buttonType)
- {
- case SDK_BaseController.ButtonTypes.ButtonTwo:
- HandHintController.GetInstance().rightHandTooltipsManager.buttonTwoTooltip.UpdateText(info);
- break;
- case SDK_BaseController.ButtonTypes.Grip:
- HandHintController.GetInstance().rightHandTooltipsManager.gripTooltip.UpdateText(info);
- break;
- case SDK_BaseController.ButtonTypes.Trigger:
- HandHintController.GetInstance().rightHandTooltipsManager.triggerTooltip.UpdateText(info);
- break;
- case SDK_BaseController.ButtonTypes.Touchpad:
- HandHintController.GetInstance().rightHandTooltipsManager.touchPadTooltip.UpdateText(info);
- break;
- }
- break;
- default:
- break;
- }
- }
- /// <summary>
- /// 打开手柄提示(对应按键)
- /// </summary>
- /// <param name="_controllerHand"></param>
- /// <param name="_buttonType"></param>
- public void ShowHandHint(SDK_BaseController.ControllerHand _controllerHand, SDK_BaseController.ButtonTypes _buttonType)
- {
- switch (_controllerHand)
- {
- case SDK_BaseController.ControllerHand.Left:
- leftHandTooltipsManager.ShowToolTip(_buttonType);
- break;
- case SDK_BaseController.ControllerHand.Right:
- rightHandTooltipsManager.ShowToolTip(_buttonType);
- break;
- default:
- break;
- }
- }
- /// <summary>
- /// 关闭手柄提示(对应按键)
- /// </summary>
- /// <param name="_controllerHand"></param>
- /// <param name="_buttonType"></param>
- public void CloseHandHint(SDK_BaseController.ControllerHand _controllerHand, SDK_BaseController.ButtonTypes _buttonType)
- {
- switch (_controllerHand)
- {
- case SDK_BaseController.ControllerHand.Left:
- leftHandTooltipsManager.CloseToolTip(_buttonType);
- break;
- case SDK_BaseController.ControllerHand.Right:
- rightHandTooltipsManager.CloseToolTip(_buttonType);
- break;
- default:
- break;
- }
- }
- /// <summary>
- /// 设置手柄提示状态
- /// </summary>
- /// <param name="_controllerHand"></param>
- /// <param name="state"></param>
- public void SetHandHint(SDK_BaseController.ControllerHand _controllerHand, bool state)
- {
- switch (_controllerHand)
- {
- case SDK_BaseController.ControllerHand.Left:
- leftHandTooltipsManager.SetToolTips(state,false);
- break;
- case SDK_BaseController.ControllerHand.Right:
- rightHandTooltipsManager.SetToolTips(state,false);
- break;
- default:
- break;
- }
- }
- /// <summary>
- /// 设置手柄提示状态
- /// </summary>
- /// <param name="_controllerHand"></param>
- /// <param name="state"></param>
- public void SetHandHint(SDK_BaseController.ControllerHand _controllerHand, bool state, bool flash)
- {
- switch (_controllerHand)
- {
- case SDK_BaseController.ControllerHand.Left:
- leftHandTooltipsManager.SetToolTips(state, flash);
- break;
- case SDK_BaseController.ControllerHand.Right:
- rightHandTooltipsManager.SetToolTips(state, flash);
- break;
- default:
- break;
- }
- }
- }
|