2022-05-23 13:39:59 +00:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
|
|
public class GuideManager : D_MonoSingleton<GuideManager>
|
|
|
|
|
|
{
|
|
|
|
|
|
public int GuideCount = 3;
|
|
|
|
|
|
public bool EnableGuide = true;
|
|
|
|
|
|
|
|
|
|
|
|
public int CurGuideIndex => mCurGuideIndex;
|
|
|
|
|
|
|
|
|
|
|
|
private Dictionary<int, Action> mStepDoneDic = new Dictionary<int, Action>();
|
|
|
|
|
|
|
|
|
|
|
|
private int mCurGuideIndex = -1;
|
|
|
|
|
|
private Vector3 mStartPos;
|
|
|
|
|
|
|
|
|
|
|
|
private PanelGuide mUIGuide;
|
|
|
|
|
|
|
|
|
|
|
|
public void StartGuide(int pGuideIndex, Dictionary<int, Action> pStepDoneDic = null, Vector3 pStartPos = default)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!EnableGuide)
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
if (mCurGuideIndex < 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (pGuideIndex < GuideCount && !PlayerData.Instance.CheckGuide(pGuideIndex))
|
|
|
|
|
|
{
|
|
|
|
|
|
if (pStepDoneDic != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
mStepDoneDic = pStepDoneDic;
|
|
|
|
|
|
}
|
|
|
|
|
|
mCurGuideIndex = pGuideIndex;
|
|
|
|
|
|
mStartPos = pStartPos;
|
|
|
|
|
|
|
|
|
|
|
|
mUIGuide = UIManager.Instance.OpenUI<PanelGuide>();
|
|
|
|
|
|
mUIGuide.InitGuide(pGuideIndex);
|
|
|
|
|
|
mUIGuide.DelStepDone = OnGuideStepDone;
|
|
|
|
|
|
mUIGuide.DelGuideFinish = OnGuideFinished;
|
|
|
|
|
|
mUIGuide.NextStep(mStartPos);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void DoStep(Vector3 pScreenPos = default)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (mCurGuideIndex < 0)
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
mUIGuide.NextStep(pScreenPos);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void FinishGuide(int pGuideIndex)
|
|
|
|
|
|
{
|
|
|
|
|
|
//Debug.Log("Finish guide!!!!!!");
|
|
|
|
|
|
PlayerData.Instance.FinishGuide(pGuideIndex);
|
|
|
|
|
|
|
|
|
|
|
|
mUIGuide.Close();
|
|
|
|
|
|
mUIGuide = null;
|
|
|
|
|
|
|
|
|
|
|
|
mCurGuideIndex = -1;
|
|
|
|
|
|
mStepDoneDic.Clear();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void FinishCurrentStep()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (mUIGuide != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
mUIGuide.FinishCurrentStep();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void OnGuideStepDone(int pIndex)
|
|
|
|
|
|
{
|
|
|
|
|
|
//Debug.Log(string.Format("step {0} done!!!", pIndex));
|
|
|
|
|
|
|
|
|
|
|
|
if (mStepDoneDic.ContainsKey(pIndex))
|
|
|
|
|
|
{
|
|
|
|
|
|
mStepDoneDic[pIndex]?.Invoke();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-08-30 02:21:29 +00:00
|
|
|
|
|
2022-05-23 13:39:59 +00:00
|
|
|
|
TKGSDKManager.Instance.LogEvent(Const.AdsEvent.Guide, Const.AdsKey.GuideStep, string.Format("{0}_{1}", mCurGuideIndex, pIndex));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void OnGuideFinished()
|
|
|
|
|
|
{
|
|
|
|
|
|
FinishGuide(mCurGuideIndex);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|