mergemilitary/Assets/Scripts/UIs/GuideStep.cs

84 lines
1.8 KiB
C#
Raw Normal View History

2022-05-23 13:39:59 +00:00
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
public class GuideStep : MonoBehaviour
{
public Action<int, bool> DelStepDone;
public float FinishDelay = -1;
public int ExcuteCount = 1;
public bool AutoNext = true;
//[SerializeField] GameObject mGobClick;
[SerializeField] Button mBtnOp;
//private RectTransform mRect;
private int mIndex;
private void Awake()
{
//mRect = GetComponent<RectTransform>();
if (mBtnOp != null)
{
UIUtils.BindBtn(mBtnOp, FinishStep);
}
}
public void InitStep(int pIndex)
{
mIndex = pIndex;
ShowStep(false);
}
public void StartStep(Vector3 pScreen = default)
{
ShowStep(true);
//if (pScreen != default)
//{
// Vector2 position;
// if (RectTransformUtility.ScreenPointToLocalPointInRectangle(mRect, pScreen, null, out position))
// {
// mGobClick.GetComponent<RectTransform>().localPosition = position;
// }
//}
if (FinishDelay > 0)
{
CancelInvoke("FinishStep");
Invoke("FinishStep", FinishDelay);
}
DOTweenAnimation tAni = GetComponentInChildren<DOTweenAnimation>();
if (tAni != null)
{
tAni.DOPlay();
}
}
public void FinishStep()
{
ExcuteCount--;
if (ExcuteCount <= 0)
{
DelStepDone?.Invoke(mIndex, AutoNext);
ShowStep(false);
}
else
{
DelStepDone?.Invoke(mIndex, false);
}
}
private void ShowStep(bool pShow)
{
gameObject.SetActive(pShow);
}
}