using System.Collections; using System.Collections.Generic; using ChivaXR.Op; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; public class OpTrigger_OperationButtonClick : OperationData_TriggerMode { [SerializeField] private Button m_ClickButton; [SerializeField] private UnityEvent m_ClickUnityEvent; [SerializeField] private UnityEvent m_PrimitiveUnityEvent; private bool m_IsClicked; /// /// 学习模式延迟提示高亮时长 /// private float timer; public override void SetDataStateValue(float value) { switch (value) { case 0: m_ClickButton.GetComponent().color = new Color(1, 1, 1, 1); m_IsClicked = false; m_PrimitiveUnityEvent?.Invoke(); break; case 1: m_ClickButton.GetComponent().color = new Color(1, 1, 1, 1); m_IsClicked = false; break; } } public override bool TriggerCondition() { if (OperateSetting.Instance.m_CurrentOperationMode == OperationMode.Learn) { HightColorEvent.ChangeImageAppha(m_ClickButton.GetComponent()); timer += Time.deltaTime; if (timer > 1) { return true; } else { return false; } } if (OperateSetting.Instance.ToolPackUILogic.GetHint()) { HightColorEvent.ChangeImageAppha(m_ClickButton.GetComponent()); } else { m_ClickButton.GetComponent().color = new Color(1, 1, 1, 1); } return m_IsClicked; } protected override void OnOperationDataStatusChanged(OperationDataStatus status) { switch (status) { case OperationDataStatus.InActive: m_ClickButton.GetComponent().color = new Color(1, 1, 1, 1); break; case OperationDataStatus.Listening: m_ClickButton.onClick.AddListener(delegate { m_ClickUnityEvent?.Invoke(); m_IsClicked = true; }); break; } } }