public override void OnEnter() { base.OnEnter(); //加载所有神兽的模型 Singleton <BeastManager> .singleton.LoadAllBeastModel(); //加载场景 CSceneMgr.singleton.LoadScene(); if (!Singleton <RoomManager> .singleton.IsObserver) { DlgBase <DlgMain, DlgMainBehaviour> .singleton.SetVisible(true); } DlgBase <DlgHeadInfo, DlgHeadInfoBehaviour> .singleton.SetVisible(true); Singleton <RoomManager> .singleton.GameOver = false; DataMaplist mapData = GameData <DataMaplist> .dataMap[(int)Singleton <RoomManager> .singleton.MapId]; if (mapData != null) { string audioPath = mapData.BgSoundFile; if (!string.IsNullOrEmpty(audioPath)) { Singleton <AudioManager> .singleton.PlayMusic("Audio/BMG/Map/" + audioPath); } } Singleton <GameMainResPreLoad> .singleton.PreLoad(); }
/// <summary> /// 初始化场景地图信息,从配置文件中读取加载信息 /// </summary> /// <param name="dwMapID"></param> /// <returns></returns> public bool Init(uint dwMapID) { //根据地图id取得地图信息数据 DataMaplist dataById = GameData <DataMaplist> .dataMap[(int)dwMapID]; bool result; if (null == dataById) { result = false; } else { base.Init(dwMapID, dataById.MapFilePath); if (dataById != null) { this.m_nEmpireBaseDeadEft = dataById.EmpireBaseDeadEft; this.m_nLeagueBaseDeadEft = dataById.LeagueBaseDeadEft; this.m_nMyBaseDeadEft = dataById.MineBaseDeadEft; this.m_nTheirBaseDeadEft = dataById.TheirBaseDeadEft; this.m_nEmpireHighHpEffect = dataById.EmpireHighHpEffect; this.m_nLeagueHighHpEffect = dataById.LeagueHighHpEffect; this.m_nEmpireLowHpEffect = dataById.EmpireLowHpEffect; this.m_nLeagueLowHpEffect = dataById.LeagueLowHpEffect; this.m_nLeagueEffectWhenBeastDead = dataById.LeagueEffectWhenHeroDead; this.m_nEmpireEffectWhenBeastDead = dataById.EmpireEffectWhenHeroDead; this.m_nLeagueAttackedEffect = dataById.LeagueAttackedEffect; this.m_nEmpireAttackedEffect = dataById.EmpireAttackedEffect; } result = true; } return(result); }
/// <summary> /// 根据基地不同的血量,播放不同的背景音乐 /// </summary> public void PlayMusicByBaseHp() { DataMaplist dataMap = GameData <DataMaplist> .dataMap[(int)this.m_unMapId]; if (dataMap != null) { uint emHp = this.m_CampDatas[0].Hp; uint leHp = this.m_CampDatas[1].Hp; if (emHp <= 3u || leHp <= 3u) { string audioPath = dataMap.WarnSoundFile; if (!string.IsNullOrEmpty(audioPath)) { Singleton <AudioManager> .singleton.PlayMusic(string.Format("Audio/BGM/Map/{0}", audioPath)); } } else if (emHp + leHp <= 10u) { string audioPath = dataMap.ToughSoundFile; if (!string.IsNullOrEmpty(audioPath)) { Singleton <AudioManager> .singleton.PlayMusic(string.Format("Audio/BGM/Map/{0}", audioPath)); } } else if (emHp + leHp <= 16u) { string audioPath = dataMap.NormalSoundFile; if (!string.IsNullOrEmpty(audioPath)) { Singleton <AudioManager> .singleton.PlayMusic(string.Format("Audio/BGM/Map/{0}", audioPath)); } } } }
/// <summary> /// 初始化摄像机的位置 /// </summary> public void ResetCamera() { if (Camera.main != null) { //初始化摄像机的根节点 CameraManager.Instance.InitGameNode(); DataMaplist mapData = GameData <DataMaplist> .dataMap[(int)Singleton <RoomManager> .singleton.MapId]; if (Singleton <PlayerRole> .singleton.CampType == ECampType.CAMP_LEAGUE) { if (mapData != null) { CameraManager.Instance.GameNode.localPosition = UnityTools.String2Vector3(mapData.LCameraPos); CameraManager.Instance.GameNode.localEulerAngles = UnityTools.String2Vector3(mapData.LCameraAngle); } else { //默认的摄像机初始位置 } } else { if (mapData != null) { CameraManager.Instance.GameNode.localPosition = UnityTools.String2Vector3(mapData.ECameraPos); CameraManager.Instance.GameNode.localEulerAngles = UnityTools.String2Vector3(mapData.ECameraAngle); } else { //默认的摄像机初始位置 } } CameraManager.Instance.MaxMapX = mapData.MapCenterX + mapData.MaxX; CameraManager.Instance.MinMapX = mapData.MapCenterX - mapData.MaxX; CameraManager.Instance.MaxMapZ = mapData.MapCenterY + mapData.MaxY; CameraManager.Instance.MinMapZ = mapData.MapCenterY - mapData.MaxY; CameraManager.Instance.MaxScale = mapData.MaxCameraScale; CameraManager.Instance.MinScale = mapData.MinCameraScale; CameraManager.Instance.MouseWheelSensitivity = mapData.MouseWheelSensitivity; CameraManager.Instance.Init(); } }
/// <summary> /// 加载战斗游戏场景 /// </summary> public void LoadScene() { if (null == this.m_sceneCurrent) { this.m_log.Error("null == m_sceneCurrent"); } else { DataMaplist dataByID = GameData <DataMaplist> .dataMap[((int)Singleton <RoomManager> .singleton.MapId)]; if (null == dataByID) { this.m_log.Error("null == dataMap:" + Singleton <RoomManager> .singleton.MapId); } else { Singleton <HexagonManager> .singleton.Init(this.m_sceneCurrent.InitPos, this.m_sceneCurrent.InitRotation); this.CreateTerrainBuildings(this.m_sceneCurrent); this.SetMapNodeBuildingVisible(EMapNodeType.MAP_NODE_LEAGUE_BASE, true); this.SetMapNodeBuildingVisible(EMapNodeType.MAP_NODE_EMPIRE_BASE, true); this.EnterScene(dataByID.MapFile); } } }