123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using ChivaXR.Op;
- public class OpTrigger_ToolTIpsGroup : OperationData_TriggerMode
- {
- public List<ToolTipsElement> toolTipsElements = new List<ToolTipsElement>();
- 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]);
- }
- }
- }
- }
- /// <summary>
- /// 点击目标提示高亮
- /// </summary>
- /// <param name="state"></param>
- public void SetHighlighterState(bool state)
- {
- if (targetObj.HighlighterConstant == state) return;
- if (state)
- {
- targetObj.OpenHighlighter(OutLineType.hint);
- }
- else
- {
- targetObj.CloseHighlighter();
- }
- }
- /// <summary>
- /// 重置点击目标
- /// </summary>
- /// <param name="toolTipsElement"></param>
- public void ResetTargetObj(ToolTipsElement toolTipsElement)
- {
- targetObj = toolTipsElement.GetComponent<RayCastItem>() == null
- ? toolTipsElement.gameObject.AddComponent<RayCastItem>()
- : toolTipsElement.gameObject.GetComponent<RayCastItem>();
- ToolTipsManager.Instance.UpdateToolTipsInfo(toolTipsElement);
- SetHighlighterState(true);
- }
- }
|