/// <summary> /// 获取建筑数据 /// </summary> /// <param name="id">唯一标识</param> /// <param name="typeId">类型id</param> /// <param name="team">队伍id</param> /// <returns></returns> public DtoBuild GetDtoBuild(int id, int typeId, int team) { // 获取建筑模型 BuildModel model = BuildData.GetBuildData(typeId); DtoBuild build = new DtoBuild(id, typeId, team, model.Hp, model.Attack, model.Defense, model.AttackDistance, model.AttackInterval, model.Name, model.Agressire, model.Rebirth, model.RebirthTime); return(build); }
/// <summary> /// 根据标识id获取建筑 /// </summary> /// <param name="id"></param> /// <returns></returns> public DtoBuild GetDtoBuild(int id) { DtoBuild build = null; if (TeamOneBuilds.TryGetValue(id, out build)) { return(build); } if (TeamTwoBuilds.TryGetValue(id, out build)) { return(build); } return(null); }
/// <summary> /// 初始化游戏对象 /// </summary> /// <param name="heros"></param> /// <param name="builds"></param> public void InitData(DtoHero[] heros, DtoBuild[] builds, SkillModel[] skills) { int myTeam = GetMyTeamId(heros, GameData.Player.Id); // 初始化技能数据 SkillManager.Instance.Init(heros, skills); #region 英雄 // 创建英雄 GameObject go = null; foreach (DtoHero item in heros) { if (item.Team == 1) { go = Instantiate(Resources.Load <GameObject>(Paths.RES_MODEL_HERO + item.Name), Team1HeroPoint[0].position, Quaternion.AngleAxis(180, Vector3.up)); go.transform.SetParent(Team1Parent); } else { go = Instantiate(Resources.Load <GameObject>(Paths.RES_MODEL_HERO + item.Name), Team2HeroPoint[0].position, Quaternion.AngleAxis(180, Vector3.up)); go.transform.SetParent(Team2Parent); } // 初始化控制器 AIBaseCtrl ctrl = go.GetComponent <AIBaseCtrl>(); ctrl.Init(item, item.Team == myTeam); CtrlDict.Add(item.Id, ctrl); // 判断这个英雄是不是自己 if (item.Id == GameData.Player.Id) { // 保存自己英雄的控制器 GameData.HeroCtrl = ctrl; // 保存自己英雄的数据 GameData.HeroData = ctrl.Model as DtoHero; } } #endregion #region 建筑 // 创建建筑 for (int i = 0; i < builds.Length; i++) { DtoBuild build = builds[i]; if (build.Team == 1) { go = Team1Builds[build.TypeId - 1]; go.SetActive(true); } else if (build.Team == 2) { go = Team2Builds[build.TypeId - 1]; go.SetActive(true); } // 初始化控制器 AIBaseCtrl ctrl = go.GetComponent <AIBaseCtrl>(); ctrl.Init(build, build.Team == myTeam); if (build.Team == myTeam) { ctrl.Init(build, true); ctrl.MiniMapHead.color = Color.blue; } else { ctrl.Init(build, false); ctrl.MiniMapHead.color = Color.red; } CtrlDict.Add(build.Id, ctrl); } #endregion // 发送初始化完成的消息 MOBAClient.BattleManager.Instance.InitComplete(); }