using FairyGUI; using UnityEngine; using UI.Main; namespace GFGGame { public class StoryFightTargetView : BaseView { private UI_StoryFightTargetUI _ui; private GameObject _sceneObject; private GameObject _scenePrefab; private GameObject _sceneTargetObject; private GameObject _sceneTargetPrefab; public override void Dispose() { if (_sceneObject != null) { GameObject.Destroy(_scenePrefab); _sceneObject = null; } if (_sceneTargetObject != null) { GameObject.Destroy(_sceneTargetObject); _sceneTargetObject = null; } if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void Init() { base.Init(); _ui = UI_StoryFightTargetUI.Create(); viewCom = _ui.target; isfullScreen = true; _scenePrefab = GFGAsset.Load(ResPathUtil.GetPrefabPath("SceneFightTarget")); _sceneTargetPrefab = GFGAsset.Load(ResPathUtil.GetPrefabPath("SceneFightTargetRole")); } protected override void OnInit() { base.OnInit(); } protected override void OnShown() { base.OnShown(); if (_sceneObject == null) { _sceneObject = GameObject.Instantiate(_scenePrefab); } MyDressUpHelper.dressUpObj.setSceneObj(_sceneObject, true); MyDressUpHelper.dressUpObj.UpdateRoleView(); FightRoleData roleData = FightDataManager.Instance.GetMyFightRoleData(); object targetData; int fightType; if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena) { ArenaTargetData arenaTarget = ArenaDataManager.Instance.Targets[ArenaDataManager.Instance.SelectTargetIndex]; if (arenaTarget.Type == ArenaFightTargetType.ROBOT) { fightType = ArenaFightTargetType.ROBOT; targetData = FightDataManager.Instance.GetArenaRobotData(0, arenaTarget); } else { fightType = ArenaFightTargetType.PLAYER; targetData = FightDataManager.Instance.GetArenaRoleData(0, arenaTarget); DressUpObj dressUpObj = new DressUpObj(); if (_sceneTargetObject == null) { _sceneTargetObject = GameObject.Instantiate(_sceneTargetPrefab); } dressUpObj.setSceneObj(_sceneTargetPrefab, true); dressUpObj.UpdateRoleView(); _sceneTargetObject.transform.SetParent(_sceneObject.transform); _sceneTargetObject.transform.SetSiblingIndex(2); } string musicName = "fight"; if (!string.IsNullOrEmpty(musicName)) { MusicManager.Instance.Play(ResPathUtil.GetMusicPath(musicName, "mp3")); } } else { fightType = ArenaFightTargetType.ROBOT; targetData = FightDataManager.Instance.GetFightRobotData(); StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId); StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID); if (!string.IsNullOrEmpty(fightCfg.music)) { MusicManager.Instance.Play(ResPathUtil.GetMusicPath(fightCfg.music, "mp3")); } } _ui.m_roleName.m_txtName.text = RoleDataManager.roleName; _ui.m_targetName.m_txtName.text = targetData.GetType().GetField("name").GetValue(targetData).ToString(); if (fightType == ArenaFightTargetType.ROBOT) { string res = targetData.GetType().GetField("res").GetValue(targetData).ToString(); SceneController.UpdateFightTarget(res, _sceneObject); } else { } Timers.inst.Add(1.1f, 1, (object param) => { this.Hide(); ViewManager.Show(new object[] { fightType, roleData, targetData }); }); } protected override void OnHide() { base.OnHide(); if (_sceneObject != null) { GameObject.Destroy(_sceneObject); _sceneObject = null; } if (_sceneTargetPrefab != null) { GameObject.Destroy(_sceneTargetPrefab); _sceneTargetPrefab = null; } } } }