NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Game/GameStateMainScene.cs

56 lines
1.4 KiB
C#

using Cysharp.Threading.Tasks;
using Framework;
using Gameplay;
using Gameplay.Guide;
using Gameplay.SubSystems;
using System;
using System.Runtime.CompilerServices;
#if SDK_TAPTAP
using PhxhSDK;
#endif
public class GameStateMainScene : IState
{
private readonly Func<UniTask> callbackFunc;
/// <summary>
/// 是否打开主界面
/// </summary>
private bool isOpenMain;
public bool IsLogin { get; }
public GameStateMainScene(bool isLogin = false, bool isOpenMain = true, Func<UniTask> callback = null)
{
callbackFunc = callback;
this.isOpenMain = isOpenMain;
IsLogin = isLogin;
}
public void OnEnter()
{
E_LoadingType loadingType = IsLogin ? E_LoadingType.Login : E_LoadingType.CommonLoading;
LoadingManager.Instance.ExecuteLoading(new MainSceneLoadingExecutor(loadingType, OnLoadingComplete)).Forget();
#if SDK_TAPTAP
var antiAddictionService = SDKManager.Instance.GetSdkHelper(SDKManager.SdkName.TapTap) as IAntiAddictionService;
antiAddictionService?.AntiAddictionEnterGame();
#endif
}
public void OnUpdate(float deltaTime)
{
}
public void OnExit()
{
}
private async UniTask OnLoadingComplete()
{
if(isOpenMain)
await UI_MainPanelController.Open();
if (null != callbackFunc)
await callbackFunc.Invoke();
}
}