123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
-
- namespace ChivaXR.VR
- {
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class CVR_HintManager : MonoSingleton<CVR_HintManager>
- {
- public List<CVR_HintItem> hintItems = new List<CVR_HintItem>();
- public Color hoverColor = Color.yellow;
- private bool isActive = true;
- public bool IsActive
- {
- get { return isActive; }
- set
- {
- if (isActive != value)
- {
- isActive = value;
- RefrushHintItemActive();
- }
- }
- }
- /// <summary>
- /// 高亮显示
- /// </summary>
- /// <param name="interactables"></param>
- public void OpenHint(IVR_Interactable interactable, GameObject target)
- {
- CVR_HintItem tempHintItem = null;
- if (interactable != null)
- {
- CVR_HintItem cvr_HintItem = interactable.CVR_GetCurrentObject().GetComponent<CVR_HintItem>();
- tempHintItem = cvr_HintItem == null
- ? interactable.CVR_GetCurrentObject().AddComponent<CVR_HintItem>()
- : cvr_HintItem;
- //打开背包
- CVR_ToolType type = interactable.GetToolType();
- ToolPack.instance.CheckToolState(type);
- tempHintItem.OpenHint(target);
- }
- else
- {
- tempHintItem = target.GetComponent<CVR_HintItem>() == null
- ? target.AddComponent<CVR_HintItem>()
- : target.GetComponent<CVR_HintItem>();
- tempHintItem.OpenHint();
- }
- if (!hintItems.Contains(tempHintItem))
- {
- hintItems.Add(tempHintItem);
- }
- }
- /// <summary>
- /// 关闭高亮显示
- /// </summary>
- 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<CVR_HintItem>();
- //if (tempHintItem != null) tempHintItem.CloseHint();
- //if (hintItems.Contains(tempHintItem))
- //{
- // hintItems.Remove(tempHintItem);
- //}
- }
- /// <summary>
- /// 高亮显示
- /// </summary>
- /// <param name="hintObject"></param>
- public void OpenHint(GameObject hintObject)
- {
- CVR_HintItem tempHintItem = hintObject.GetComponent<CVR_HintItem>() == null
- ? hintObject.AddComponent<CVR_HintItem>()
- : hintObject.GetComponent<CVR_HintItem>();
- tempHintItem.OpenHint();
- if (!hintItems.Contains(tempHintItem))
- {
- hintItems.Add(tempHintItem);
- }
- }
- /// <summary>
- /// 关闭高亮显示
- /// </summary>
- public void CloseHint(GameObject hintObject)
- {
- CVR_HintItem tempHintItem = hintObject.GetComponent<CVR_HintItem>() == null
- ? hintObject.AddComponent<CVR_HintItem>()
- : hintObject.GetComponent<CVR_HintItem>();
- tempHintItem.CloseHint();
- if (hintItems.Contains(tempHintItem))
- {
- hintItems.Remove(tempHintItem);
- }
- }
- public void RefrushHintItemActive()
- {
- foreach (var item in hintItems)
- {
- item.RefrushCurrentHintActive();
- }
- }
- }
- }
|