public void Fill() { for (int i = 0; i < monsterPrefabs.Length; i++) { GameObject prefab = monsterPrefabs[i]; UnitPrefabs.AddPrefab(prefab, i, UnitPrefabCategory.Monster); } for (int i = 0; i < producePrefabs.Length; i++) { GameObject prefab = producePrefabs[i]; UnitPrefabs.AddPrefab(prefab, i, UnitPrefabCategory.Produce); } for (int i = 0; i < plantPrefabs.Length; i++) { GameObject prefab = plantPrefabs[i]; UnitPrefabs.AddPrefab(prefab, i, UnitPrefabCategory.Plant); } for (int i = 0; i < seedPrefabs.Length; i++) { GameObject prefab = seedPrefabs[i]; UnitPrefabs.AddPrefab(prefab, i, UnitPrefabCategory.Seed); } }
public void CreateUnitType(int count, UnitTeams team, string type) { GameObject prefab = null; GameObject go; BaseUnit unitScript; UnitSettings settings; UnitPrefabs unitPrefabs = prefabs.Find(t => t.team == team); if (unitPrefabs.prefabs != null) { prefab = unitPrefabs.prefabs.Find(t => t.name.ToLower().Contains(type.ToLower())); } if (prefab != null) { for (int i = 0; i < count; i++) { go = Instantiate(prefab, GetRandomUnitPosition(unitPrefabs), Quaternion.identity); go.transform.rotation = Quaternion.LookRotation(new Vector3(-go.transform.position.x, 0, 0)); unitScript = go.GetComponent <BaseUnit>(); settings = unitSettings.Find(t => t.team.ToLower() == team.ToString().ToLower() && t.unitType.ToLower() == type.ToLower()); unitScript.Init(settings); } } }
private Vector3 GetRandomUnitPosition(UnitPrefabs unitPrefabs) { int x = Random.Range(unitPrefabs.instantiateAreaStartGridPos.x, unitPrefabs.instantiateAreaEndGridPos.x); int y = Random.Range(unitPrefabs.instantiateAreaStartGridPos.y, unitPrefabs.instantiateAreaEndGridPos.y); return(LvlManager.instance.GridPosToWorld(x, y)); }
/// <summary> /// Reads Unit Types From XML File /// </summary> /// <param name="path">The Location of the XML File</param> /// <returns>A Dictionary of Unit Names and Unit Types</returns> public Dictionary <string, Unit> LoadUnits(string path) { Dictionary <string, Unit> types = new Dictionary <string, Unit>(); XmlDocument doc = new XmlDocument(); string xml = Resources.Load(path).ToString(); doc.LoadXml(xml); foreach (XmlNode node in doc.DocumentElement["Units"]) { string name = node["Name"].InnerText; int Movement = int.Parse(node["Movement"].InnerText); int Vision = int.Parse(node["Vision"].InnerText); bool CanSettle = bool.Parse(node["CanSettle"].InnerText); int ProductionCost = int.Parse(node["ProductionCost"].InnerText); int HitPoints = int.Parse(node["HitPoints"].InnerText); bool Attackable = bool.Parse(node["Attackable"].InnerText); Unit u = new Unit(name, Movement, Vision, CanSettle, ProductionCost, HitPoints, Attackable, GetHexAt(0, 0)); //CHANGEME UnitPrefabs.Add(name, UnitPrefab); types.Add(name, u); } return(types); }