| | |
| | | public class DungeonStage : Stage
|
| | | {
|
| | | public static Dictionary<MapArea.E_Type, List<MapArea>> s_MapAreaDict;
|
| | | private static List<TransferGroup> m_TransferGroupList = new List<TransferGroup>();
|
| | | public static MapType CurrentMapType;
|
| | | private H2Engine.MapData mapData;
|
| | |
|
| | | public override void Initialize()
|
| | | {
|
| | |
| | | SoundPlayer.Instance.PlayBackGroundMusic(mapResConfig.Music);
|
| | | SceneResourcesReplace();
|
| | |
|
| | | foreach (var _t in m_TransferGroupList)
|
| | | {
|
| | | _t.UnInit();
|
| | | }
|
| | | m_TransferGroupList.Clear();
|
| | | // 做一些前期战斗的预加载
|
| | | // if (!PreFightMission.Instance.IsFinished())
|
| | | // {
|
| | |
| | | _hero.SkillMgr.ResetAllCD();
|
| | | }
|
| | |
|
| | | HandleMapData();
|
| | | ClientSceneManager.Instance.Init();
|
| | |
|
| | | GA_Hero.s_MapSwitching = false;
|
| | | }
|
| | |
| | | base.UnInitialize();
|
| | |
|
| | | StopAllCoroutines();
|
| | | mapData = null;
|
| | |
|
| | | if (s_MapAreaDict != null)
|
| | | {
|
| | |
| | | CameraController.Instance.StopZoom();
|
| | | CameraController.Instance.StopShake();
|
| | | }
|
| | |
|
| | | ClientSceneManager.Instance.UnInit();
|
| | | GAMgr.Instance.UnInit();
|
| | | DropItemManager.ReleaseAll();
|
| | | SFXPlayUtility.Instance.Unitialize();
|
| | |
| | |
|
| | | DropItemManager.Update();
|
| | |
|
| | | foreach (var _trasfer in m_TransferGroupList)
|
| | | {
|
| | | _trasfer.Update();
|
| | | }
|
| | | ClientSceneManager.Instance.Update();
|
| | |
|
| | | // if (PreFightMission.Instance.IsFinished() == false)
|
| | | // {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | private void HandleMapData()
|
| | | {
|
| | | mapData = H2Engine.MapData.LoadFormFile(PlayerDatas.Instance.baseData.MapID);
|
| | | if (mapData == null)
|
| | | {
|
| | | return;
|
| | | }
|
| | | // 目前版本只处理刷场景物件
|
| | | // foreach (var _trigger in mapData.triggers)
|
| | | // {
|
| | | // if (_trigger.triggerType != H2Engine.MapTrigger.E_TriggerType.EnterStage)
|
| | | // {
|
| | | // continue;
|
| | | // }
|
| | |
|
| | | // foreach (var _id in _trigger.evevntIDs)
|
| | | // {
|
| | | // var _event = mapData.eventDict[_id];
|
| | | // if (_event.type == H2Engine.Evt.E_EventType.SceneObject)
|
| | | // {
|
| | | // var _refreshSceneObject = _event as H2Engine.Evt_RefreshSceneObject;
|
| | | // if (_refreshSceneObject != null)
|
| | | // {
|
| | | // foreach (var _sceneObjData in _refreshSceneObject.sceneObjects)
|
| | | // {
|
| | | // var _prefab = InstanceResourcesLoader.LoadModelPrefab(InstanceResourcesLoader.raceSuffix, _sceneObjData.resName, false);
|
| | | // if (_prefab)
|
| | | // {
|
| | | // var _go = GameObject.Instantiate(_prefab);
|
| | | // _go.transform.position = _sceneObjData.position;
|
| | | // _go.transform.eulerAngles = _sceneObjData.eulerAngles;
|
| | | // }
|
| | | // }
|
| | | // }
|
| | | // }
|
| | | // }
|
| | | // }
|
| | | foreach (var _trasfer in mapData.transfers)
|
| | | {
|
| | | m_TransferGroupList.Add(new TransferGroup(_trasfer));
|
| | | }
|
| | | }
|
| | |
|
| | | private void HandleAutoFight()
|
| | | {
|
| | |
| | | default:
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | | public Vector3 GetCloseTransPoint(Vector3 pos)
|
| | | {
|
| | | // 遍历找到离给定点最近并且可寻路至的传送点 P
|
| | | // 找到 P点的 另一端 P1
|
| | | // 判断当前传入的点是否可以寻路至 P1
|
| | | // 不行的话重新寻找 可以的话返回 P1 的坐标
|
| | | float _compareDis;
|
| | | float _dis;
|
| | |
|
| | | foreach (var _p in m_TransferGroupList)
|
| | | {
|
| | |
|
| | | }
|
| | |
|
| | | return Vector3.zero;
|
| | | }
|
| | |
|
| | | private void SceneResourceReplace10010()
|