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 _sceneTargetObj; private GameObject _sceneNpcObj; private DressUpObj _targetDressUpObj; public override void Dispose() { if (_sceneObject != null) { GameObject.Destroy(_scenePrefab); _sceneObject = null; } if (_sceneTargetObject != null) { _sceneTargetObject = null; } if (_targetDressUpObj != null) { _targetDressUpObj.Dispose(); _targetDressUpObj = 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")); } protected override void OnInit() { base.OnInit(); } protected override void OnShown() { base.OnShown(); if (_sceneObject == null) { _sceneObject = GameObject.Instantiate(_scenePrefab); _sceneTargetObj = _sceneObject.transform.Find("targetRole").gameObject; _sceneNpcObj = _sceneObject.transform.Find("Npc").gameObject; _targetDressUpObj = new DressUpObj(); } _sceneTargetObj.SetActive(false); _sceneNpcObj.SetActive(true); MyDressUpHelper.dressUpObj.setSceneObj(_sceneObject, true); FightRoleData roleData = FightDataManager.Instance.roleData; FightRoleData targetRoleData = null; FightRobotData targetRobotData = null; int fightType; if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena) { roleData = ArenaDataManager.Instance.DressupList[ArenaDataManager.Instance.CurFightIndex]; MyDressUpHelper.dressUpObj.PutOnItemList(ArenaDataManager.Instance.DressupList[ArenaDataManager.Instance.CurFightIndex].itemList); ArenaTargetData arenaTarget = ArenaDataManager.Instance.Targets[ArenaDataManager.Instance.SelectTargetIndex]; if (arenaTarget.Type == ArenaFightTargetType.ROBOT) { _sceneTargetObj.SetActive(false); _sceneNpcObj.SetActive(true); fightType = ArenaFightTargetType.ROBOT; targetRobotData = ArenaDataManager.Instance.GetArenaRobotData(0, arenaTarget); _ui.m_targetName.m_txtName.text = targetRobotData.name; SceneController.UpdateFightTarget(targetRobotData.res, _sceneObject); } else { _sceneTargetObj.SetActive(true); _sceneNpcObj.SetActive(false); fightType = ArenaFightTargetType.PLAYER; targetRoleData = ArenaDataManager.Instance.GetArenaRoleData(0, arenaTarget); _targetDressUpObj.setSceneObj(_sceneTargetObj, true, false); _targetDressUpObj.PutOnItemList(arenaTarget.RoleDressupList[ArenaDataManager.Instance.CurFightIndex].itemList); _ui.m_targetName.m_txtName.text = targetRoleData.name; } string musicName = "fight"; if (!string.IsNullOrEmpty(musicName)) { MusicManager.Instance.Play(ResPathUtil.GetMusicPath(musicName, "mp3")); } } else { MyDressUpHelper.dressUpObj.UpdateRoleView(); _sceneTargetObj.SetActive(false); _sceneNpcObj.SetActive(true); fightType = ArenaFightTargetType.ROBOT; targetRobotData = 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")); } SceneController.UpdateFightTarget(targetRobotData.res, _sceneObject); _ui.m_targetName.m_txtName.text = targetRobotData.name; } _ui.m_roleName.m_txtName.text = RoleDataManager.roleName; Timers.inst.Add(1.1f, 1, (object param) => { this.Hide(); ViewManager.Show(new object[] { fightType, roleData, targetRoleData, targetRobotData }); }); } protected override void OnHide() { base.OnHide(); if (_sceneObject != null) { GameObject.Destroy(_sceneObject); _sceneObject = null; } if (_sceneTargetObject != null) { GameObject.Destroy(_sceneTargetObject); _sceneTargetObject = null; } } } }