public void CreateMonster(MapInfo.Monster data) { Monster.Info info = Game.Database.GetMonsterInfo(data.id); GameObject go = Game.Database.LoadResource("Roles/" + info.model); go.name = info.name.ToString(); go.transform.SetParent(m_npcRoot); CharacterController cc = go.AddComponent <CharacterController>(); cc.center = new Vector3(0, 1, 0); float scale = info.scaling; go.transform.localScale = new Vector3(scale, scale, scale); data.pos.CopyTo(go.transform); Role role = go.AddComponent <Role>(); role.team = Role.Team.Red; role.m_MoveSpeed = 0.5f; role.hp = info.hp; role.atk = info.atk; role.def = info.def; role.exp = info.exp; go.AddComponent <ZakoAI>(); Monster monster = go.AddComponent <Monster>(); monster.m_id = data.id; m_roles.Add(role); }
public void SaveMapInfo() { MapInfo mapInfo = new MapInfo(); mapInfo.born.CopyFrom(m_bornPosition); MapInfo.Npc mapNpc = new MapInfo.Npc(); int count = m_npcRoot.childCount; for (int i = 0; i < count; i++) { Transform t = m_npcRoot.GetChild(i); Npc npc = t.GetComponent <Npc>(); if (npc != null) { mapNpc.id = npc.id; mapNpc.pos.CopyFrom(t); mapInfo.npc.Add(mapNpc); } } MapInfo.Monster mapMonster = new MapInfo.Monster(); count = m_monsterRoot.childCount; for (int i = 0; i < count; i++) { Transform t = m_monsterRoot.GetChild(i); Monster monster = t.GetComponent <Monster>(); if (monster != null) { mapMonster.id = monster.id; mapMonster.pos.CopyFrom(t); mapInfo.monster.Add(mapMonster); } } MapInfo.Position savePoint = new MapInfo.Position(); count = m_savePointRoot.childCount; for (int i = 0; i < count; i++) { Transform t = m_savePointRoot.GetChild(i); savePoint.CopyFrom(t); mapInfo.savepoint.Add(savePoint); } MapInfo.Teleporter mapTel = new MapInfo.Teleporter(); count = m_teleporterRoot.childCount; for (int i = 0; i < count; i++) { Transform t = m_teleporterRoot.GetChild(i); Teleporter tel = t.GetComponent <Teleporter>(); if (tel != null) { mapTel.pos.CopyFrom(t); mapTel.scaling = tel.transform.localScale; mapTel.toMap = tel.m_toMap; mapInfo.teleporter.Add(mapTel); } } Game.Database.SaveMapInfo(mapInfo, m_name); }