using System.Collections; using System.Collections.Generic; using UnityEngine; using ChivaXR.Op; public class OpTrigger_ToolTIpsGroup : OperationData_TriggerMode { public List toolTipsElements = new List(); private int currentID = 0; private RayCastItem targetObj; protected override void OnOperationDataStatusChanged(OperationDataStatus status) { base.OnOperationDataStatusChanged(status); switch (status) { case OperationDataStatus.InActive: ToolTipsManager.Instance.DisActive(); break; case OperationDataStatus.Listening: ToolTipsManager.Instance.UpdateToolTipsInfo(toolTipsElements[currentID]); break; case OperationDataStatus.Playing: break; default: break; } } public override void SetDataStateValue(float value) { if (value == 0) { currentID = 0; ResetTargetObj(toolTipsElements[currentID]); } else if (value == 1) { currentID = toolTipsElements.Count; if (Application.isPlaying) { ToolTipsManager.Instance.DisActive(); SetHighlighterState(false); } } } public override bool TriggerCondition() { return currentID == toolTipsElements.Count; } protected override void PlayUpdata() { base.PlayUpdata(); if (Input.GetMouseButtonDown(0)) { if (CameraRayCastManager.Instance.CheckCurrentHoverItem(targetObj)) { SetHighlighterState(false); currentID++; if (currentID < toolTipsElements.Count) { ResetTargetObj(toolTipsElements[currentID]); } } } } /// /// 点击目标提示高亮 /// /// public void SetHighlighterState(bool state) { if (targetObj.HighlighterConstant == state) return; if (state) { targetObj.OpenHighlighter(OutLineType.hint); } else { targetObj.CloseHighlighter(); } } /// /// 重置点击目标 /// /// public void ResetTargetObj(ToolTipsElement toolTipsElement) { targetObj = toolTipsElement.GetComponent() == null ? toolTipsElement.gameObject.AddComponent() : toolTipsElement.gameObject.GetComponent(); ToolTipsManager.Instance.UpdateToolTipsInfo(toolTipsElement); SetHighlighterState(true); } }