namespace ChivaXR.VR { using System.Collections; using System.Collections.Generic; using UnityEngine; public class CVR_HintManager : MonoSingleton { public List hintItems = new List(); public Color hoverColor = Color.yellow; private bool isActive = true; public bool IsActive { get { return isActive; } set { if (isActive != value) { isActive = value; RefrushHintItemActive(); } } } /// /// 高亮显示 /// /// public void OpenHint(IVR_Interactable interactable, GameObject target) { CVR_HintItem tempHintItem = null; if (interactable != null) { CVR_HintItem cvr_HintItem = interactable.CVR_GetCurrentObject().GetComponent(); tempHintItem = cvr_HintItem == null ? interactable.CVR_GetCurrentObject().AddComponent() : cvr_HintItem; //打开背包 CVR_ToolType type = interactable.GetToolType(); ToolPack.instance.CheckToolState(type); tempHintItem.OpenHint(target); } else { tempHintItem = target.GetComponent() == null ? target.AddComponent() : target.GetComponent(); tempHintItem.OpenHint(); } if (!hintItems.Contains(tempHintItem)) { hintItems.Add(tempHintItem); } } /// /// 关闭高亮显示 /// public void CloseHint(IVR_Interactable interactable) { if (hintItems.Count <= 0) { return; } for (int i = 0; i < hintItems.Count; i++) { hintItems[i].CloseHint(); hintItems.RemoveAt(i); } //CVR_HintItem tempHintItem = interactable.CVR_GetCurrentObject().GetComponent(); //if (tempHintItem != null) tempHintItem.CloseHint(); //if (hintItems.Contains(tempHintItem)) //{ // hintItems.Remove(tempHintItem); //} } /// /// 高亮显示 /// /// public void OpenHint(GameObject hintObject) { CVR_HintItem tempHintItem = hintObject.GetComponent() == null ? hintObject.AddComponent() : hintObject.GetComponent(); tempHintItem.OpenHint(); if (!hintItems.Contains(tempHintItem)) { hintItems.Add(tempHintItem); } } /// /// 关闭高亮显示 /// public void CloseHint(GameObject hintObject) { CVR_HintItem tempHintItem = hintObject.GetComponent() == null ? hintObject.AddComponent() : hintObject.GetComponent(); tempHintItem.CloseHint(); if (hintItems.Contains(tempHintItem)) { hintItems.Remove(tempHintItem); } } public void RefrushHintItemActive() { foreach (var item in hintItems) { item.RefrushCurrentHintActive(); } } } }