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;
}
}
///
/// 打开手柄提示(对应按键)
///
///
///
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;
}
}
///
/// 关闭手柄提示(对应按键)
///
///
///
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;
}
}
///
/// 设置手柄提示状态
///
///
///
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;
}
}
///
/// 设置手柄提示状态
///
///
///
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;
}
}
}