void SpawnCitizens(int amount, Transform spawnPointsRoot, GameObject prefab) { for (int i = 0; i < amount; i++) { StartCoroutine(waitThenCallback(Random.Range(minSpawnDelay, maxSpawnDelay), () => { Transform spawnPoint = spawnPointsRoot.GetChild(Random.Range(0, spawnPointsRoot.childCount - 1)); Citizen citizen = GameObject.Instantiate(prefab, spawnPoint.position, Quaternion.identity).GetComponent <Citizen>(); citizen.OnDeath += OnCitizenDied; OnSpook += citizen.OnSpooked; })); } }
void Start() { GUIScript = gui.GetComponent <GameUI>(); GameObject[] citizenObjects = GameObject.FindGameObjectsWithTag("CitizenP"); for (int i = 0; i < citizenObjects.Length; i++) { Citizen citizen = citizenObjects[i].transform.root.gameObject.GetComponent <Citizen>(); if (citizen == null) { continue; } citizen.OnDeath += OnCitizenDied; if (citizen.Type != Citizen.CitizenType.Attacker) { OnSpook += citizen.OnSpooked; } } }