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;
}
}
}