void Start() { if (heightIsFixed) { dronePrefab.heightFixed = true; Leader[] leaders = FindObjectsOfType <Leader>(); foreach (Leader leader in leaders) { leader.transform.position = new Vector3(leader.transform.position.x, 0, leader.transform.position.z); } } else { dronePrefab.heightFixed = false; } drones = new List <Follower>(); leaders = new List <Leader>(); if (COLUMS != 0) { colums = COLUMS; } else { COLUMS = colums; } if (ROWS != 0) { rows = ROWS; } else { ROWS = rows; } startPos = new Vector3(-colums / 2 * offset, 0, rows / 2 * offset); int idCount = 0; GameObject droneHolder = new GameObject(); droneHolder.name = "DroneHolder"; GameObject targetHolder = new GameObject(); targetHolder.name = "TargetHolder"; for (int c = 0; c < colums; c++) { for (int r = 0; r < rows; r++) { Follower f = Instantiate(dronePrefab, startPos + nextPos, Quaternion.identity); f.transform.parent = droneHolder.transform; Leader l = Instantiate(leaderPrefab, startPos + nextPos, Quaternion.identity); l.transform.parent = targetHolder.transform; l.ID = idCount; l.name = "Leader " + l.ID.ToString(); leaders.Add(l); if (!heightIsFixed) { l.transform.Translate(0, 10, 0); } drones.Add(f); nextPos.z -= offset; f.ID = idCount++; f.name = "Drone " + f.ID.ToString(); f.AssignLeader(l); //f.HardcodedCustomLeaderAssignment(); } nextPos.z = 0; nextPos.x += offset; } }