Files
taptap2024_GJ_chidouren/Assets/Scripts/System/StateSystem/State/StateInit.cs
2024-10-21 22:29:53 +08:00

157 lines
5.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.AudioHandler;
using System.Collections;
using System.IO;
using System.Loader;
using System.OfflineSystem;
using System.StateSystem;
using System.Threading.Tasks;
using FJson;
using Framework.Asset;
using Framework.Audio;
using Framework.common;
using Framework.FSMLite;
using Framework.GamePool.manager;
using Framework.Save;
using Framework.Timer;
using Framework.UI;
using Framework.Utils;
using Framework.Utils.Extend;
using Game;
using Runtime.ADAggregator;
using StateSystem.Loader;
using TMPro;
using ToffeeHttp.Runtime;
using ToffeeHttp.Runtime.Core;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.Rendering;
using UnityEngine.SceneManagement;
using Views;
using Object = UnityEngine.Object;
namespace StateSystem.State
{
public class StateInit : StateMachine<GameGlobalState>
{
public static bool HasTempGame;
private SceneLoader _sceneLoader;
protected override void OnEnter (params object[] args)
{
CameraEffectUtils.Instance.SetGameCamBlur(0, 0, null);
SceneInit ();
}
private void SceneInit ()
{
Debug.Log ("SceneInit");
// return;
//初始化资源管理器并挂载AlwaysRes下的所有资源
AssetManager.Instance.Rouse ();
// #if UNITY_EDITOR
// ManagerInit ();
// return;
// #endif
if (SceneManager.GetActiveScene ().name == "SetupScene")
{
this._sceneLoader = new SceneLoader (SceneName.InitScene, true);
this._sceneLoader.BeginLoad (null, ManagerInit);
HasTempGame = false;
}
else
{
ManagerInit ();
HasTempGame = true;
}
}
protected override void OnExit ()
{
// this._sceneLoader.Kill();
}
protected void ManagerInit ()
{
BeginStaticPanel.OnMessage ("系统初始化...");
Input.multiTouchEnabled = false;
GameQualitySettings.SetFPS (90);
FontLoad ();
Debug.Log ("初始化系统模块");
//初始化配置文件系统
RofManagerConfig.Instance.Rouse ();
//ui 层数据初始化
var viewConfig = new IC_AddressabelConfig (); //使用AssetBundle资源管理
// var viewConfig = Resources.Load<IC_Resource_ViewConfig>("Config/ViewConfig"); //使用Resource资源管理
UIManager.Instance.AddConfig (viewConfig);
//存储系统初始化 针对Game类型存档特殊处理
var saveConfig = SaveConfig.CreateConfig (SaveManager.Instance.BaseConfig.RootPath);
// var saveConfig = SaveConfig.CreateConfig();
saveConfig.SetDataHandler (new SaveHandlerFileStream ());
// saveConfig.SetDataHandler (new SaveHandlerQuickFileStream ());
#if UNITY_EDITOR
saveConfig.SetSerializer (new SaveSerializerJson ());
#else
saveConfig.SetSerializer(new SaveSerializerCommonJson());
#endif
SaveManager.Instance.SetConfig (SaveData.Game , saveConfig);
//对象池初始化
GamePoolManager.Instance.Rouse ();
//存档系统初始化
Account.Instance.Rouse ();
//提前唤醒缓动系统驱动
MintAnimation.Core.MintDriveComponentSinge.Instance.ToString ();
//音频管理器初始化
AudioManager.Instance.Init (new AudioSourceHandler (AudioManager._AUDIO_Path)); //使用AssetBundle资源管理
GameManager.Instance.ScriptRegist ();
GameManager.Instance.Inited ();
//激活离线奖励系统
OfflineMgr.Instance.Rouse ();
//初始化系统时间
GameManager.Instance.InitSystemTime (ThirdPartyMgrInit);
Debug.Log ("系统初始化完毕");
}
private void ThirdPartyMgrInit ()
{
UIManager.Instance.OpenView (UIPanel.ScreenEffectPanel);
AnalysisEventMgr.Instance.Rouse ();
// var adConfig = AssetManager.Instance.LoadAsset<ADConfig>("Config/ToponAdConfig.asset");
// var toponAdController = new ToponAdController();
// toponAdController.SetListener(GameManager.Instance.OnAdMask , null);
// ADManager.Instance.Init(null , Account.Instance.UserID , adConfig , toponAdController , GameGlobalConfig.Instance.Channel.ToString());
ADManager.Instance.Init(null , Account.Instance.UserID , null , null , GameGlobalConfig.Instance.Channel.ToString());
#if GM
ADManager.Instance.SetTestModel();
#endif
Debug.Log ("三方系统初始化完毕");
ADManager.Instance.GLOBAL_ShowAwardVideoComplete += GameManager.Instance.OnGlobalVideoAdComplete;
OnInited ();
}
private void FontLoad()
{
TMP_Settings.instance = AssetManager.Instance.LoadAlwaysAsset<TMP_Settings>("/FontResource/TMP Settings.asset");
}
private void OnInited ()
{
GameUpdateMgr.Instance.CreateTimer (1f , () =>
{
BeginStaticPanel.ReleasePanel ();
if (HasTempGame)
{
this.stateMachineRunner.OpenState (GameGlobalState.GameRoom);
}
else
{
this.stateMachineRunner.OpenState (GameGlobalState.GameHome);
}
});
}
}
}