using UnityEngine; using GFGGame; using ET; using System.Threading; using GFGGame.Launcher; public class GameLauncher : MonoBehaviour { private void Awake() { //ET System.AppDomain.CurrentDomain.UnhandledException += (sender, e) => { Log.Error(e.ExceptionObject.ToString()); }; SynchronizationContext.SetSynchronizationContext(ThreadSynchronizationContext.Instance); DontDestroyOnLoad(gameObject); ETTask.ExceptionHandler += Log.Error; Log.ILog = new UnityLogger(); Options.Instance = new Options(); TimeInfo.Instance.TimeZone = 8; } // Start is called before the first frame update void Start() { Screen.sleepTimeout = SleepTimeout.NeverSleep; Application.runInBackground = true; LauncherConfig.InitScriptCompilation(); FGUILauncher.Init(); LauncherView.Instance.Open(); InitLauncherCfg(); } /// /// 初始化启动器配置 /// public void InitLauncherCfg() { LauncherView.Instance.SetDesc("正在初始化.."); var url = LauncherConfig.cfgUrl.Replace("{cfgName}", LauncherConfig.cfgName); HttpTool.Instance.Get(url, (string json) => { LauncherConfig.InitPlatform(json); LauncherView.Instance.SetDesc("正在初始化..."); //第一个节点必须放在平台配置加载之后 LogServerHelperHttp.SendNodeLog((int)LogNode.OnStart); 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(); }); } }