using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/*******************************************************************************
*Create By CG
*Function 接头跟随鼠标
*******************************************************************************/
namespace ZXK.GYJQR
{
public class GensuishubiaoCtrl : Step_0
{
public GensuishubiaoCtrl(AZBS itemAttr) : base(itemAttr) { }
///
/// 执行鼠标交互的逻辑
///
public void OnExcuteMouseHandle(string jumpStepName)
{
FollowMouse fm = outLineParts[0].GetComponent() ? outLineParts[0].GetComponent() : outLineParts[0].AddComponent();
OnMouseEvent(outLineParts[0], true, () =>
{
if (!CG.UTility.PopUpMng._TriAble) return;
fm.isFollow = !fm.isFollow;
CG.UTility.MonoManager.Instance.StartCoroutine(OnDelay(0.5f, () =>
{
StepEnd();
StepManager.Instance.SwitchStep(jumpStepName);
}));
}, 0.0f, () =>
{
return;
});
}
private IEnumerator OnDelay(float t, System.Action action)
{
yield return new WaitForSeconds(t);
action?.Invoke();
}
///
/// 触发鼠标点击事件后
/// 1.开始执行函数
/// 2.是否吸附到鼠标上
///
private void OnMouseEvent(GameObject obj, bool _isAdsorbing = false,System.Action _startAction = null, float _maxDistance = 0.0f, System.Action _endAction = null)
{
MouseEventListener mel = obj.GetComponent();
mel.isAdsorbing = _isAdsorbing;
if (mel.isAdsorbing == false)
{
return;
}
mel.startAction = _startAction;
mel.maxDistance = _maxDistance;
mel.endAction = _endAction;
}
}
}