123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- using UnityEngine;
- using GFGGame;
- using GFGGame.Launcher;
- using FairyGUI;
- using System;
- public class GameLauncher : MonoBehaviour
- {
- private void Awake()
- {
- DontDestroyOnLoad(gameObject);
- }
- // Start is called before the first frame update
- void Start()
- {
- Screen.sleepTimeout = SleepTimeout.NeverSleep;
- Application.runInBackground = true;
- LauncherConfig.InitScriptCompilation();
- FGUILauncher.Init();
- HealthAdviceView.Instance.Open();
- InitBugly();
- int time = LauncherConfig.netType == LauncherConfig.EnumNetType.LOCAL ? 1 : 10;
- Timers.inst.Add(time, 1, (object param) =>
- {
- HealthAdviceView.Instance.Close();
- LauncherView.Instance.Open();
- InitLauncherCfg();
- });
- }
- /// <summary>
- /// 初始化启动器配置
- /// </summary>
- public 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);
- LauncherView.Instance.SetDesc("正在初始化...");
- //第一个节点必须放在平台配置加载之后
- LogServerHelperHttp.SendNodeLog((int)LogNode.OnStart);
- CheckGameStatus();
- });
- }
- public void CheckGameStatus()
- {
- if (LauncherConfig.serverStatus == 1)
- {
- Alert.Show("游戏正在维护中,请稍后再试。")
- .SetLeftButton(true, "知道了", (data) =>
- {
- Application.Quit();
- });
- }
- else
- {
- CheckApkVersion();
- }
- }
- private void CheckApkVersion()
- {
- LauncherView.Instance.SetDesc("正在校验应用版本...");
- var versionTarget = LauncherConfig.apkVersion;
- var version = Application.version;
- if (VersionUtil.compare(version, versionTarget))
- {
- DownloadApk();
- }
- else
- {
- VersionController.Instance.Init();
- }
- }
- private void DownloadApk()
- {
- Alert.Show("需要安装新的安装包,请联系研发获取。")
- .SetLeftButton(true, "知道了", (data) =>
- {
- Application.Quit();
- });
- }
- private void InitBugly()
- {
- BuglyAgent.ConfigDebugMode(true);
- // 注册日志回调,替换使用 'Application.RegisterLogCallback(Application.LogCallback)'注册日志回调的方式
- // BuglyAgent.RegisterLogCallback (CallbackDelegate.Instance.OnApplicationLogCallbackHandler);
- #if UNITY_IPHONE || UNITY_IOS
- BuglyAgent.InitWithAppId (BuglyAppIDForiOS);
- #elif UNITY_ANDROID
- if (LauncherConfig.netType == LauncherConfig.EnumNetType.LOCAL)
- {
- BuglyAgent.InitWithAppId("766c5bdb0f");
- }
- else if (LauncherConfig.netType == LauncherConfig.EnumNetType.DEV)
- {
- BuglyAgent.InitWithAppId("b6d0b1b8c5");
- }
- #endif
- // 如果你确认已在对应的iOS工程或Android工程中初始化SDK,那么在脚本中只需启动C#异常捕获上报功能即可
- BuglyAgent.EnableExceptionHandler();
- }
- }
|