private void Start() { Monitor.SetActive(true); if (!training) { teams = new List <List <GameObject> >(); while (teams.Count < numTeams) { teams.Add(new List <GameObject>()); } Agent[] agents = FindObjectsOfType(typeof(Agent)) as Agent[]; for (int i = 0; i < agents.Length; i++) { UnitAgent unit = agents[i].GetComponent <UnitAgent>(); teams[unit.team].Add(agents[i].gameObject); } castles = new List <GameObject>(); for (int i = 0; i < teams.Count; i++) { Castle castle = Instantiate(CastlePrefab).GetComponent <Castle>(); castle.SetTeam(teams[i], i); MeshRenderer mesh = castle.GetComponentInChildren <MeshRenderer>(); Material[] mat = mesh.materials; mat[0] = Colors[i]; mesh.materials = mat; castles.Add(castle.gameObject); } gameState = FindObjectOfType(typeof(GameState)) as GameState; controller = FindObjectOfType(typeof(GameController)) as GameController; maxRange = 25; resetButton = Instantiate(resetButton); resetButton.GetComponentInChildren <Button>().onClick.AddListener(ResetAcademy); ResetAcademy(); } }
public override void InitializeAcademy() { if (training) { teams = new List <List <GameObject> >(); Agent[] agents = FindObjectsOfType(typeof(Agent)) as Agent[]; for (int i = 0; i < agents.Length; i++) { UnitAgent unit = agents[i].GetComponent <UnitAgent>(); while (teams.Count <= unit.team) { teams.Add(new List <GameObject>()); } teams[unit.team].Add(agents[i].gameObject); } gameState = FindObjectOfType(typeof(GameState)) as GameState; controller = FindObjectOfType(typeof(GameController)) as GameController; maxRange = 20; castles = new List <GameObject>(); for (int i = 0; i < teams.Count; i++) { Castle castle = Instantiate(CastlePrefab).GetComponent <Castle>(); castle.SetTeam(teams[i], i); MeshRenderer mesh = castle.GetComponentInChildren <MeshRenderer>(); Material[] mat = mesh.materials; mat[0] = Colors[i]; mesh.materials = mat; castles.Add(castle.gameObject); } } }