ViewMgr.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.SceneManagement;
  5. using JCUnityLib;
  6. using UnityEngine.UI;
  7. public class ViewMgr : ViewManager<ViewMgr>
  8. {
  9. protected override void OnInited()
  10. {
  11. CanvasScaler viewMgrCanvasScaler = gameObject.GetComponent<CanvasScaler>();
  12. viewMgrCanvasScaler.referenceResolution = new Vector2(2532, 1170);
  13. viewMgrCanvasScaler.screenMatchMode = CanvasScaler.ScreenMatchMode.MatchWidthOrHeight;
  14. viewMgrCanvasScaler.matchWidthOrHeight = 0f;
  15. Canvas viewCanvas = gameObject.GetComponent<Canvas>();
  16. viewCanvas.sortingOrder = 1;
  17. //设置视图组
  18. //SetViewGroup<HomeFrameView>(1);
  19. Debug.Log("初始化绑定ViewManager2.HideAllView");
  20. SceneManager.sceneUnloaded += OnSceneUnloaded;
  21. //SceneManager.sceneLoaded += OnSceneLoaded;
  22. }
  23. //以下名称的预制体通过SceneResourceManager获取
  24. HashSet<string> scenePrefabs = new HashSet<string>(new string[] {
  25. //Home
  26. "HomeView", "PKMatchView", "RoleSelectView"
  27. });
  28. protected override GameObject LoadViewPrefab(string viewName)
  29. {
  30. if (scenePrefabs.Contains(viewName)) return SceneResourceManager.Instance.GetPrefab(viewName);
  31. return base.LoadViewPrefab("Home/" + viewName);
  32. }
  33. void OnSceneUnloaded(Scene scene)
  34. {
  35. ViewManager2.HideAllView();
  36. if (scene.name == "InfraredGameDouble" || scene.name == "WildAttackDouble")
  37. {
  38. InfraredDemo._ins?.SetSinglePoint(true);
  39. Debug.Log("OnSceneUnloaded 取消设置单点模式");
  40. }
  41. }
  42. void OnSceneLoaded(Scene scene, LoadSceneMode loadSceneMode) {
  43. if (scene.name == "InfraredGameDouble" || scene.name == "WildAttackDouble") {
  44. //判断蓝牙连接状态,如果连接了两个,直接判断是否开启双点
  45. InfraredDemo._ins?.SetSinglePoint(false);
  46. Debug.Log("OnSceneLoaded 设置双点模式");
  47. //if (BluetoothAim.ins && BluetoothAim.ins.status == BluetoothStatusEnum.ConnectSuccess && BluetoothAim.ins.getSmartBowHelper2P().GetBluetoothStatus() == SmartBowSDK.BluetoothStatusEnum.Connected)
  48. //{
  49. // //如果存在两个蓝牙,则双点。
  50. // InfraredDemo._ins?.SetSinglePoint(true);
  51. // Debug.Log("OnSceneLoaded 设置双点模式");
  52. //}
  53. //else {
  54. // InfraredDemo._ins?.SetSinglePoint(false);
  55. // Debug.Log("OnSceneLoaded 设置单点模式");
  56. //}
  57. }
  58. }
  59. }