StoryFightSingleView.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. using cfg.GfgCfg;
  2. using ET;
  3. using FairyGUI;
  4. using UnityEngine;
  5. using UI.Main;
  6. namespace GFGGame
  7. {
  8. public class StoryFightSingleView : BaseView
  9. {
  10. private UI_StoryFightSingleUI _ui;
  11. private GameObject _sceneObject;
  12. public override void Dispose()
  13. {
  14. if (_sceneObject != null)
  15. {
  16. PrefabManager.Instance.Restore(_sceneObject);
  17. _sceneObject = null;
  18. }
  19. if (_ui != null)
  20. {
  21. _ui.Dispose();
  22. _ui = null;
  23. }
  24. base.Dispose();
  25. }
  26. protected override void Init()
  27. {
  28. base.Init();
  29. _ui = UI_StoryFightSingleUI.Create();
  30. viewCom = _ui.target;
  31. isfullScreen = true;
  32. //isReturnView = true;
  33. }
  34. protected override void OnInit()
  35. {
  36. base.OnInit();
  37. }
  38. protected override void OnShown()
  39. {
  40. base.OnShown();
  41. // 异步加载场景对象
  42. PrefabManager.Instance.InstantiateAsync(
  43. ResPathUtil.GetPrefabPath("SceneFightSingle"),
  44. (gameObj) =>
  45. {
  46. if (gameObj != null)
  47. {
  48. _sceneObject = gameObj;
  49. MyDressUpHelper.dressUpObj.setSceneObj(_sceneObject);
  50. StoryLevelCfg levelCfg = null;
  51. StoryFightCfg fightCfg = null;
  52. FightData roleFightData = null;
  53. if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
  54. {
  55. roleFightData =
  56. FieldWorkDataManager.Instance.DressupList[FieldWorkDataManager.Instance.CurFightIndex];
  57. MyDressUpHelper.dressUpObj.PutOnItemList(FieldWorkDataManager.Instance
  58. .DressupList[FieldWorkDataManager.Instance.CurFightIndex].itemList);
  59. }
  60. else
  61. {
  62. levelCfg = CommonDataManager.Tables.TblStoryLevelCfg.GetOrDefault(InstanceZonesDataManager
  63. .currentLevelCfgId);
  64. fightCfg =
  65. CommonDataManager.Tables.TblStoryFightCfg.GetOrDefault(int.Parse(levelCfg.FightID));
  66. }
  67. _ui.m_roleName.m_txtName.text = RoleDataManager.roleName;
  68. Timers.inst.Add(0.9f, 1, (object param) =>
  69. {
  70. if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
  71. {
  72. MusicManager.Instance.PlayCroutine(ResPathUtil.GetMusicPath("fight", "mp3"));
  73. ViewManager.Show<StoryFightSingleScoreView>(roleFightData);
  74. ViewManager.Show<FieldWorkRoundTipsView>();
  75. }
  76. else
  77. {
  78. if (!string.IsNullOrEmpty(fightCfg.Music))
  79. {
  80. MusicManager.Instance.PlayCroutine(ResPathUtil.GetMusicPath(fightCfg.Music, "mp3"));
  81. }
  82. ViewManager.Show<StoryFightSingleScoreView>();
  83. }
  84. this.Hide();
  85. });
  86. }
  87. else
  88. {
  89. Debug.LogError("Failed to instantiate scene object: SceneFightSingle");
  90. }
  91. });
  92. }
  93. protected override void OnHide()
  94. {
  95. base.OnHide();
  96. if (_sceneObject != null)
  97. {
  98. PrefabManager.Instance.Restore(_sceneObject);
  99. _sceneObject = null;
  100. }
  101. }
  102. }
  103. }