GameLauncher.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using UnityEngine;
  2. using GFGGame;
  3. using ET;
  4. using System.Threading;
  5. using GFGGame.Launcher;
  6. public class GameLauncher : MonoBehaviour
  7. {
  8. private void Awake()
  9. {
  10. //ET
  11. System.AppDomain.CurrentDomain.UnhandledException += (sender, e) =>
  12. {
  13. Log.Error(e.ExceptionObject.ToString());
  14. };
  15. SynchronizationContext.SetSynchronizationContext(ThreadSynchronizationContext.Instance);
  16. DontDestroyOnLoad(gameObject);
  17. ETTask.ExceptionHandler += Log.Error;
  18. Log.ILog = new UnityLogger();
  19. Options.Instance = new Options();
  20. TimeInfo.Instance.TimeZone = 8;
  21. }
  22. // Start is called before the first frame update
  23. void Start()
  24. {
  25. Screen.sleepTimeout = SleepTimeout.NeverSleep;
  26. Application.runInBackground = true;
  27. LauncherConfig.InitScriptCompilation();
  28. FGUILauncher.Init();
  29. LauncherView.Instance.Open();
  30. InitLauncherCfg();
  31. }
  32. /// <summary>
  33. /// 初始化启动器配置
  34. /// </summary>
  35. public void InitLauncherCfg()
  36. {
  37. LauncherView.Instance.SetDesc("正在初始化..");
  38. var url = LauncherConfig.cfgUrl.Replace("{cfgName}", LauncherConfig.cfgName);
  39. HttpTool.Instance.Get(url, (string json) =>
  40. {
  41. LauncherConfig.InitPlatform(json);
  42. LauncherView.Instance.SetDesc("正在初始化...");
  43. //第一个节点必须放在平台配置加载之后
  44. LogServerHelperHttp.SendNodeLog((int)LogNode.OnStart);
  45. CheckApkVersion();
  46. });
  47. }
  48. private void CheckApkVersion()
  49. {
  50. LauncherView.Instance.SetDesc("正在校验应用版本...");
  51. var versionTarget = LauncherConfig.apkVersion;
  52. var version = Application.version;
  53. if (VersionUtil.compare(version, versionTarget))
  54. {
  55. DownloadApk();
  56. }
  57. else
  58. {
  59. VersionController.Instance.Init();
  60. }
  61. }
  62. private void DownloadApk()
  63. {
  64. Alert.Show("需要安装新的安装包,请联系研发获取。")
  65. .SetLeftButton(true, "知道了", (data) => {
  66. Application.Quit();
  67. });
  68. }
  69. }