//加载怪物 public void LoadMonster(int wave) { List <MonsterSpawnData> monsterLst = this.mapCfg.monsterLst; for (int i = 0; i < monsterLst.Count; i++) { if (monsterLst[i].mWave == wave) { MonsterSpawnData msd = monsterLst[i]; GameObject go = resSvc.LoadPrefab(msd.mCfg.resPath); go.transform.localPosition = msd.mBornpos; go.transform.localEulerAngles = msd.mBornRote; go.transform.name = string.Format("{0}_{1}_{2}", msd.mCfg.id, msd.mWave, msd.mIndex); MonsterController monsterCtrl = go.GetComponent <MonsterController>(); EntityMonster entityMonster = new EntityMonster(); entityMonster.SetMonsterCfg(msd); entityMonster.Name = go.transform.name; entityMonster.SetBattleMgr(this); entityMonster.SetSkillMgr(this.skillMgr); entityMonster.SetStateMgr(this.stateMgr); entityMonster.SetBattleProps(msd.mCfg.bps); entityMonster.SetController(monsterCtrl); monsterDic.Add(go.name, entityMonster); entityMonster.SetActive(false); GameRoot.instance.dynamicWind.AddHpItemInfo(entityMonster.Name, entityMonster.HP, monsterCtrl.itemRoot); } } }
public void SetMonsterCfg(MonsterSpawnData monsterSpawnData) { this.msd = monsterSpawnData; }
void Start() { //SceneManager = this.scene; //test if (GameObject.FindGameObjectWithTag("GameManager") == null) { players = GameObject.FindGameObjectsWithTag("Player"); } //Instantiate 스폰포인트 생성조건 - > mapNumber != 2; // if (scenmanager.name == ("ProtoTypeCoPy3")) { mapNumber = 3; // } if (mapNumber == 2) { normalMode = false; } if (mapNumber != 2) { normalMode = true; } DungeonConstruct(); if (GameObject.FindGameObjectWithTag("GameManager") == null) { InitializeMonsterSpawnPoint(); // if(mapNumber==3){ MonsterSpawnData[] monsterSpawnData = new MonsterSpawnData[4]; monsterSpawnData[0] = new MonsterSpawnData((int)MonsterId.Frog, 3); monsterSpawnData[1] = new MonsterSpawnData((int)MonsterId.Duck, 4); monsterSpawnData[2] = new MonsterSpawnData((int)MonsterId.Rabbit, 1); monsterSpawnData[3] = new MonsterSpawnData((int)MonsterId.BlackBear, 1); monsterSpawnList = new MonsterSpawnList(4, monsterSpawnData); MonsterBaseData[] monsterBaseData = new MonsterBaseData[4]; monsterBaseData[0] = new MonsterBaseData((int)MonsterId.Frog, "Frog"); monsterBaseData[0].AddLevelData(new MonsterLevelData(1, 2, 0, 30, 5)); monsterBaseData[1] = new MonsterBaseData((int)MonsterId.Duck, "Duck"); monsterBaseData[1].AddLevelData(new MonsterLevelData(1, 3, 0, 35, 4)); monsterBaseData[2] = new MonsterBaseData((int)MonsterId.Rabbit, "Rabbit"); monsterBaseData[2].AddLevelData(new MonsterLevelData(1, 5, 0, 1000, 4)); monsterBaseData[3] = new MonsterBaseData((int)MonsterId.BlackBear, "BlackBear"); monsterBaseData[3].AddLevelData(new MonsterLevelData(1, 5, 0, 1000, 1)); dungeonData = new MonsterStatusData(4, monsterBaseData); // } // if (mapNumber == 1) { // MonsterSpawnData[] monsterSpawnData = new MonsterSpawnData[3]; // monsterSpawnData[0] = new MonsterSpawnData((int)MonsterId.Frog, 3); // monsterSpawnData[1] = new MonsterSpawnData((int)MonsterId.Duck, 3); // monsterSpawnData[2] = new MonsterSpawnData((int)MonsterId.Rabbit, 2); // monsterSpawnList = new MonsterSpawnList(3, monsterSpawnData); // // MonsterBaseData[] monsterBaseData = new MonsterBaseData[3]; // monsterBaseData[0] = new MonsterBaseData((int)MonsterId.Frog, "Frog"); // monsterBaseData[0].AddLevelData(new MonsterLevelData(1, 2, 0, 30, 5)); // monsterBaseData[1] = new MonsterBaseData((int)MonsterId.Duck, "Duck"); // monsterBaseData[1].AddLevelData(new MonsterLevelData(1, 3, 0, 35, 4)); // monsterBaseData[2] = new MonsterBaseData((int)MonsterId.Rabbit, "Rabbit"); // monsterBaseData[2].AddLevelData(new MonsterLevelData(1, 5, 0, 100, 4)); // // dungeonData = new MonsterStatusData(3, monsterBaseData); // } // MonsterSpawnData[] monsterSpawnData = new MonsterSpawnData[4]; // monsterSpawnData[0] = new MonsterSpawnData((int)MonsterId.Frog, 3); // monsterSpawnData[1] = new MonsterSpawnData((int)MonsterId.Duck, 4); // monsterSpawnData[2] = new MonsterSpawnData((int)MonsterId.Rabbit, 1); // monsterSpawnData[3] = new MonsterSpawnData((int)MonsterId.BlackBear, 1); // monsterSpawnList = new MonsterSpawnList(4, monsterSpawnData); // // MonsterBaseData[] monsterBaseData = new MonsterBaseData[4]; // monsterBaseData[0] = new MonsterBaseData((int)MonsterId.Frog, "Frog"); // monsterBaseData[0].AddLevelData(new MonsterLevelData(1, 2, 0, 30, 5)); // monsterBaseData[1] = new MonsterBaseData((int)MonsterId.Duck, "Duck"); // monsterBaseData[1].AddLevelData(new MonsterLevelData(1, 3, 0, 35, 4)); // monsterBaseData[2] = new MonsterBaseData((int)MonsterId.Rabbit, "Rabbit"); // monsterBaseData[2].AddLevelData(new MonsterLevelData(1, 5, 0, 100, 4)); // monsterBaseData[3] = new MonsterBaseData((int)MonsterId.BlackBear, "BlackBear"); // monsterBaseData[3].AddLevelData(new MonsterLevelData(1, 5, 0, 1000, 4)); // dungeonData = new MonsterStatusData(4, monsterBaseData); SetMonsterSpawnList(monsterSpawnList); SpawnMonster(); SetMonsterStatus(); } // if (GameObject.FindGameObjectWithTag("GameManager") == null) // { // //스폰 포인트 찾기 // InitializeMonsterSpawnPoint(); // // //서버에서 온 데이터 : monsterSpawnData // //여기서는 직접 데이터를 설정 // MonsterSpawnData[] monsterSpawnData = new MonsterSpawnData[1]; // monsterSpawnData[0] = new MonsterSpawnData((int)MonsterId.Bear, 1); // //monsterSpawnData[1] = new MonsterSpawnData((int)MonsterId.BlackBear, 1); // // //던전 데이터에서 몬스터 스폰 리스트를 monsterSpawnData로 설정 // //그러면 몬스터 생성 숫자가 설정됨(종류, 개수) // monsterSpawnList = new MonsterSpawnList(1, monsterSpawnData); // // //서버에서 온 데이터 : monsterBaseData // MonsterBaseData[] monsterBaseData = new MonsterBaseData[1]; // monsterBaseData[0] = new MonsterBaseData((int)MonsterId.Bear, "Bear"); // monsterBaseData[0].AddLevelData(new MonsterLevelData(1, 2, 0, 30,1)); // // //던전 데이터에서 몬스터 스탯테이블을 monsterBaseData로 설정 // //그러면 위의 몬스터 생성할때 스탯이 이렇게 설정됨 // dungeonData = new MonsterStatusData(1, monsterBaseData); // // SpawnMonster(); // SetMonsterStatus(); // } }
GameObject Spawn(MonsterSpawnData data) { return(objectPool.PopFromPool(data.name.ToString(), data.spawnPoint)); }
void Start() { //test if (GameObject.FindGameObjectWithTag("GameManager") == null) { players = GameObject.FindGameObjectsWithTag("Player"); } //Instantiate 스폰포인트 생성조건 - > mapNumber != 2; mapNumber = 2; normalMode = false; DungeonConstruct(); if (GameObject.FindGameObjectWithTag("GameManager") == null) { InitializeMonsterSpawnPoint(); MonsterSpawnData[] monsterSpawnData = new MonsterSpawnData[3]; monsterSpawnData[0] = new MonsterSpawnData((int)MonsterId.Frog, 9); monsterSpawnData[1] = new MonsterSpawnData((int)MonsterId.Duck, 12); monsterSpawnData[2] = new MonsterSpawnData((int)MonsterId.Rabbit, 6); monsterSpawnList = new MonsterSpawnList(3, monsterSpawnData); MonsterBaseData[] monsterBaseData = new MonsterBaseData[3]; monsterBaseData[0] = new MonsterBaseData((int)MonsterId.Frog, "Frog"); monsterBaseData[0].AddLevelData(new MonsterLevelData(1, 2, 0, 30, 5)); monsterBaseData[1] = new MonsterBaseData((int)MonsterId.Duck, "Duck"); monsterBaseData[1].AddLevelData(new MonsterLevelData(1, 3, 0, 35, 4)); monsterBaseData[2] = new MonsterBaseData((int)MonsterId.Rabbit, "Rabbit"); monsterBaseData[2].AddLevelData(new MonsterLevelData(1, 5, 0, 75, 4)); dungeonData = new MonsterStatusData(3, monsterBaseData); SetMonsterSpawnList(monsterSpawnList); SpawnMonster(); SetMonsterStatus(); } // if (GameObject.FindGameObjectWithTag("GameManager") == null) // { // //스폰 포인트 찾기 // InitializeMonsterSpawnPoint(); // // //서버에서 온 데이터 : monsterSpawnData // //여기서는 직접 데이터를 설정 // MonsterSpawnData[] monsterSpawnData = new MonsterSpawnData[1]; // monsterSpawnData[0] = new MonsterSpawnData((int)MonsterId.Bear, 1); // //monsterSpawnData[1] = new MonsterSpawnData((int)MonsterId.BlackBear, 1); // // //던전 데이터에서 몬스터 스폰 리스트를 monsterSpawnData로 설정 // //그러면 몬스터 생성 숫자가 설정됨(종류, 개수) // monsterSpawnList = new MonsterSpawnList(1, monsterSpawnData); // // //서버에서 온 데이터 : monsterBaseData // MonsterBaseData[] monsterBaseData = new MonsterBaseData[1]; // monsterBaseData[0] = new MonsterBaseData((int)MonsterId.Bear, "Bear"); // monsterBaseData[0].AddLevelData(new MonsterLevelData(1, 2, 0, 30,1)); // // //던전 데이터에서 몬스터 스탯테이블을 monsterBaseData로 설정 // //그러면 위의 몬스터 생성할때 스탯이 이렇게 설정됨 // dungeonData = new MonsterStatusData(1, monsterBaseData); // // SpawnMonster(); // SetMonsterStatus(); // } }
private void InitMapCfg(string path) { TextAsset xml = Resources.Load <TextAsset>(path); if (!xml) { Debug.LogError("xml file " + path + "not exist"); } else { XmlDocument doc = new XmlDocument(); doc.LoadXml(xml.text); XmlNodeList nodLst = doc.SelectSingleNode("root").ChildNodes; for (int i = 0; i < nodLst.Count; i++) { XmlElement ele = nodLst[i] as XmlElement; if (ele.GetAttributeNode("ID") == null) { continue; } int ID = Convert.ToInt32(ele.GetAttributeNode("ID").InnerText); MapCfg mc = new MapCfg() { id = ID, monsterLst = new List <MonsterSpawnData>(), }; foreach (XmlElement e in nodLst[i].ChildNodes) { switch (e.Name) { case "mapName": mc.mapName = e.InnerText; break; case "sceneName": mc.sceneName = e.InnerText; break; case "power": mc.power = int.Parse(e.InnerText); break; case "mainCamPos": { string[] valArr = e.InnerText.Split(','); mc.mainCamPos = new Vector3(float.Parse(valArr[0]), float.Parse(valArr[1]), float.Parse(valArr[2])); } break; case "mainCamRote": { string[] valArr = e.InnerText.Split(','); mc.mainCamRote = new Vector3(float.Parse(valArr[0]), float.Parse(valArr[1]), float.Parse(valArr[2])); } break; case "playerBornPos": { string[] valArr = e.InnerText.Split(','); mc.playerBornPos = new Vector3(float.Parse(valArr[0]), float.Parse(valArr[1]), float.Parse(valArr[2])); } break; case "playerBornRote": { string[] valArr = e.InnerText.Split(','); mc.playerBornRote = new Vector3(float.Parse(valArr[0]), float.Parse(valArr[1]), float.Parse(valArr[2])); } break; case "monsterLst": { string[] monsteArr = e.InnerText.Split('#'); for (int waveIdx = 0; waveIdx < monsteArr.Length; waveIdx++) { if (string.IsNullOrEmpty(monsteArr[waveIdx])) { continue; } string[] numberArr = monsteArr[waveIdx].Split('|'); for (int numIdx = 0; numIdx < numberArr.Length; numIdx++) { if (string.IsNullOrEmpty(numberArr[numIdx])) { continue; } string[] strArr = numberArr[numIdx].Split(','); MonsterSpawnData msd = new MonsterSpawnData(); msd.mWave = waveIdx; msd.mIndex = numIdx; msd.id = int.Parse(strArr[0]); msd.mBornpos = new Vector3(float.Parse(strArr[1]), float.Parse(strArr[2]), float.Parse(strArr[3])); msd.mBornRote = new Vector3(0, float.Parse(strArr[4]), 0); msd.mLevel = int.Parse(strArr[5]); msd.mCfg = GetMonsterCfg(msd.id); mc.monsterLst.Add(msd); } } } break; } } mapDic.Add(ID, mc); } } }