using System; using GFGGame.Launcher; using UnityEngine; namespace GFGGame { public class LauncherController { /// /// 初始化启动器配置 /// public static void InitLauncherCfg() { LauncherView.Instance.SetDesc("正在检查更新..."); var url = LauncherConfig.cfgUrl.Replace("{cfgName}", LauncherConfig.cfgName); url = url + "?t=" + DateTime.Now.Ticks; HttpTool.Instance.Get(url, (string json) => { LauncherConfig.InitPlatform(json); CheckShowAgreeView(CheckGameStatus); }); } private static void CheckShowAgreeView(Action onSuccess) { if (LocalCache.GetBool(LauncherConfig.LAST_LOGIN_IS_AGREE_KEY, false)) { onSuccess?.Invoke(); } else { LauncherAgreeView.Instance.Open(() => { onSuccess?.Invoke(); }); } } public static void CheckGameStatus() { InitReporter(); InitBugly(); if (LauncherConfig.serverStatus == 1) { Alert.Show("游戏正在维护中,请稍后再试。") .SetLeftButton(true, "知道了", (data) => { Application.Quit(); }); } else { #if UNITY_EDITOR InitResVersion(); #else CheckApkVersion(); #endif } } private static void CheckApkVersion() { var versionTarget = LauncherConfig.apkVersion; var version = Application.version; if (VersionUtil.compare(version, versionTarget)) { DownloadApk(); } else { InitResVersion(); } } private static void DownloadApk() { Alert.Show("需要安装新的安装包,请联系研发获取。") .SetLeftButton(true, "知道了", (data) => { Application.Quit(); }); } private static void InitResVersion() { VersionController.Instance.Init(); } public static void OnVersionCompleted() { StartGame(); } private static void StartGame() { LauncherView.Instance.SetDesc($"正在初始化..."); HotUpdateCodeLoader.Instance.StartLoad(); } private static void InitReporter() { Reporter reporter = GameObject.Find("Reporter").GetComponent(); reporter.numOfCircleToShow = 10; reporter.isOpen = LauncherConfig.onDebug > 0; } private static void InitBugly() { BuglyAgent.ConfigDebugMode(true); // 注册日志回调,替换使用 'Application.RegisterLogCallback(Application.LogCallback)'注册日志回调的方式 // BuglyAgent.RegisterLogCallback (CallbackDelegate.Instance.OnApplicationLogCallbackHandler); #if UNITY_IPHONE || UNITY_IOS BuglyAgent.InitWithAppId ("f8cf2b57f3"); #elif UNITY_ANDROID if (LauncherConfig.netType == LauncherConfig.EnumNetType.LOCAL) { BuglyAgent.InitWithAppId("766c5bdb0f"); } else if (LauncherConfig.netType == LauncherConfig.EnumNetType.PUBLIC) { BuglyAgent.InitWithAppId("b6d0b1b8c5"); } #endif // 如果你确认已在对应的iOS工程或Android工程中初始化SDK,那么在脚本中只需启动C#异常捕获上报功能即可 BuglyAgent.EnableExceptionHandler(); } } }