HomeMgr.cs 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. using JCUnityLib;
  2. using LightGlue.Unity.Custom;
  3. using LightGlue.Unity.UI;
  4. using System.Collections;
  5. using System.Collections.Generic;
  6. using UnityEngine;
  7. using UnityEngine.SceneManagement;
  8. /* Home场景管理者 */
  9. public class HomeMgr : MonoBehaviour
  10. {
  11. public static HomeMgr ins;
  12. void Awake()
  13. {
  14. ins = this;
  15. PersistenHandler.Init();
  16. //ViewMgr.Instance.ShowView<TopBarView>();
  17. ViewMgr.Instance.ShowView<HomeView>();
  18. //ViewMgr.Instance.ShowView<HomeFrameView>();
  19. Instantiate(SceneResourceManager.Instance.GetPrefab("DeviceBatteryView"));
  20. Instantiate(SceneResourceManager.Instance.GetPrefab("AuthLoginMask"));
  21. //Instantiate(SceneResourceManager.Instance.GetPrefab("RenderBowCamera"));
  22. Instantiate(SceneResourceManager.Instance.GetPrefab("NewUserGuiderManager"));
  23. //标记某些界面不需要销毁
  24. // ViewMgr.Instance.SetViewDontDestroy<GameStartView>();
  25. //ViewMgr.Instance.SetViewDontDestroy<ChallengeOptionView>();
  26. ViewMgr.Instance.SetViewDontDestroy<RoleSelectView>();
  27. //ViewMgr.Instance.SetViewDontDestroy<PKGameOptionView>();
  28. ViewMgr.Instance.SetViewDontDestroy<PKMatchView>();
  29. //显示缓存的隐藏页面
  30. //ViewMgr.Instance.ResumeView<GameStartView>();
  31. //ViewMgr.Instance.ResumeView<ChallengeOptionView>();
  32. ViewMgr.Instance.ResumeView<RoleSelectView>();
  33. //ViewMgr.Instance.ResumeView<PKGameOptionView>();
  34. ViewMgr.Instance.ResumeView<PKMatchView>();
  35. //创建节点1
  36. Transform node1 = ViewMgr.Instance.transform.Find("1");
  37. if (node1 == null)
  38. {
  39. // 获取模板对象(假设名称为 "0")
  40. Transform template = ViewMgr.Instance.transform.Find("0");
  41. // 创建一个新的 GameObject,使用模板的 Transform 属性但不复制子物体
  42. GameObject newObj = new GameObject("1");
  43. newObj.transform.SetParent(ViewMgr.Instance.transform);
  44. newObj.transform.localPosition = template.localPosition;
  45. newObj.transform.localRotation = template.localRotation;
  46. newObj.transform.localScale = template.localScale;
  47. // 如果需要 RectTransform 组件,添加并设置它
  48. RectTransform rectTransform = newObj.AddComponent<RectTransform>();
  49. RectTransform templateRect = template.GetComponent<RectTransform>();
  50. if (templateRect != null)
  51. {
  52. rectTransform.anchorMin = templateRect.anchorMin;
  53. rectTransform.anchorMax = templateRect.anchorMax;
  54. rectTransform.offsetMin = templateRect.offsetMin;
  55. rectTransform.offsetMax = templateRect.offsetMax;
  56. }
  57. node1 = newObj.transform;
  58. // newObj.transform.SetParent(ViewMgr.Instance.transform);
  59. }
  60. if (CommonConfig.UseRomaSdk)
  61. {
  62. //roma界面
  63. LightGlueUIManager.Create(LightGlueUIManager.UIType.Plugin, node1.gameObject);
  64. //显示调试按钮在home界面
  65. LightGlueUIManager.Instance.showUiInScenes.Add("Home");
  66. //roma监听
  67. LightGlueGameManager.Create();
  68. }
  69. else {
  70. //红外界面
  71. InfraredDemo.Create();
  72. }
  73. //b端单机版创建一个DevicesHolder
  74. if (CommonConfig.StandaloneModeOrPlatformB) {
  75. DevicesHolder.Init();
  76. }
  77. }
  78. void Start()
  79. {
  80. Time.timeScale = 1; //保证时间缩放为1
  81. //单机版本
  82. if (CommonConfig.StandaloneMode)
  83. {
  84. DoTweenUtil.CallDelay(0.1f, () => new UserPlayer());
  85. //带投币功能-b端
  86. if (CommonConfig.StandaloneModeOrPlatformB) StandaloneAPI.InitTimeCounter();
  87. }
  88. else UserPlayer.ConnectServer();
  89. }
  90. void OnDestroy()
  91. {
  92. if (ins == this) ins = null;
  93. ViewMgr.Instance.DestroyAllViewsExcludeDontDestroy();
  94. //隐藏可缓存的页面
  95. //ViewMgr.Instance.HideView<GameStartView>();
  96. //ViewMgr.Instance.HideView<ChallengeOptionView>();
  97. ViewMgr.Instance.HideView<RoleSelectView>();
  98. //ViewMgr.Instance.HideView<PKGameOptionView>();
  99. ViewMgr.Instance.HideView<PKMatchView>();
  100. }
  101. }