/// <summary> /// Método SpawnVillagers, que instancia al ladrón y a los aldeanos en la partida /// </summary> public void SpawnVillagers() { List <Transform> updatedVillagerPoints = new List <Transform>(villagerPoints); /// Generar Ladrón // Obtener datos aleatorios int randomNumber = Random.Range(0, updatedVillagerPoints.Count); Transform randomPoint = updatedVillagerPoints[randomNumber]; Quaternion randomRotation = Quaternion.Euler(0, Random.Range(0, 360), 0); // Instanciar objeto GameObject thiefGameObject = Instantiate(thiefPrefab, randomPoint.position, randomRotation, villagersParent.transform); // Obtener componente Villager Thief newThief = thiefGameObject.GetComponent <Thief>(); // Se aleatoriza newThief.RandomizeNPC(); // Instanciamos sus objetos newThief.PutItems(); // Asignar a la referencia thief = newThief; // Borrar posición de la lista updatedVillagerPoints.Remove(randomPoint); /// Generar aldeanos for (int i = 0; i < (difficulty.villagers - 1); i++) { // Obtener datos aleatorios randomNumber = Random.Range(0, updatedVillagerPoints.Count); randomPoint = updatedVillagerPoints[randomNumber]; randomRotation = Quaternion.Euler(0, Random.Range(0, 360), 0); // Instanciar objeto GameObject villagerGameObject = Instantiate(villagerPrefab, randomPoint.position, randomRotation, villagersParent.transform); // Obtener componente Villager Villager newVillager = villagerGameObject.GetComponent <Villager>(); // Aleatorizamos el aldeano y comprobamos si ya existe uno igual do { newVillager.RandomizeNPC(); } while (CheckDuplicateVillager(newVillager)); // Instanciamos sus objetos newVillager.PutItems(); // Añadimos al aldeano a la lista villagers.Add(newVillager); // Borrar posición de la lista updatedVillagerPoints.Remove(randomPoint); } }