/*************************************************************************************************************************Función "Start"***************************************************************************************************************************/ /// <summary> /// Primero instancio el constructor de la clase "_ClassController" para utilizar su /// variable "ReadOnly". Luego, dependiendo de las variables llamadas "randomComponent" y /// "numberOfCubes" se crearán cubos y se les asignara un script al azar, la creacion esta /// dentro de un bucle "for". Por último, con los bucles foreach se cuenta la cantidad de /// zombies y de ciudadanos para poderlos imprimir el la UI. /// </summary> void Start() { _ClassController cl = new _ClassController(); numberOfCubes = Random.Range(cl.minCubes, MAXCUBES); randomComponent = 0; for (int i = 0; i <= numberOfCubes; i++) { GameObject go = GameObject.CreatePrimitive(PrimitiveType.Cube); go.transform.position = new Vector3(Random.Range(-30, 30), 0, Random.Range(-30, 30)); if (randomComponent == 0) { go.AddComponent <Hero>(); go.AddComponent <Rigidbody>(); citizenList.Add(go); } else if (randomComponent == 1) { go.AddComponent <Zombie>(); go.AddComponent <Rigidbody>().constraints = RigidbodyConstraints.FreezeRotation; zombieList.Add(go); randomZombie = Random.Range(0, 2); if (randomZombie == 1) { go.transform.localScale = new Vector3(1, 2, 1); } } else if (randomComponent == 2) { go.AddComponent <Citizen>(); go.AddComponent <Rigidbody>().constraints = RigidbodyConstraints.FreezeRotation; citizenList.Add(go); } randomComponent = Random.Range(1, 3); } foreach (GameObject z in zombieList) { if (z.GetComponent <Zombie>()) { zo.text = "Number of zombies: " + (numberZombies += 1); } } foreach (GameObject c in citizenList) { if (c.GetComponent <Citizen>()) { ci.text = "Number of citizens: " + (numberCitizens += 1); } } }
public Text ci; //Creo una variable a la cual añadir el texto del ciudadano. /************************************************************************************************************************Funcion "Start"************************************************************************************************************************/ void Start() { _ClassController cl = new _ClassController(); //Llamo la clase que contiene el contructor necesario para cambiar la variable "ReadOnly". numberOfCubes = Random.Range(cl.minCubes, MAXCUBES); //Inicializo "numberOfCubes" a un valor aleatorio entre 10 y 21, esto definirá la cantidad de cubos que se creen, lo mínimo será 10 y el máximo 20. randomComponent = 0; //La variable "randomComponent" se inicializa a cero. for (int i = 0; i <= numberOfCubes; i++) //Se hace el bucle con la siguiente condición: "i" = 0, hasta que sea menor a "numberOfCubes" vaya aumentando en uno. { GameObject go = GameObject.CreatePrimitive(PrimitiveType.Cube); //Creo una variable de tipo "GameObject" llamada "go" para almacenar el cubo que se crea después del "=". go.transform.position = new Vector3(Random.Range(-30, 30), 0, Random.Range(-30, 30)); //Luego decimos que la posición de "go" será igual a una nueva posición con el "Vector3" y entre paréntesis le damos un valor a X, Y, Z. De los cuales y será cero, y los demás serán valores aleatorios entre -20 y 20. if (randomComponent == 0) //En un principio "randomComponent" es igual a 0, así que en la primera vuelta de bucle entrará a este condicional. { go.AddComponent <Hero>(); //Al cubo "go" que se acabó de crear se le agrega el componente llamado "Hero" que es una clase. go.AddComponent <Rigidbody>(); //Al cubo "go" que se acabó de crear se le agrega el componente llamado "RigidBody". citizenList.Add(go); } else if (randomComponent == 1) //Cuando el valor almacenado en "randomComponent" sea igual a 1, entrará en este condicional. { go.AddComponent <Zombie>(); //Al cubo "go" que se acabó de crear se le agrega el componente llamado "Zombie" que es una clase dentro de la directiva "NPC.Enemy". go.AddComponent <Rigidbody>().constraints = RigidbodyConstraints.FreezeRotation; //Al cubo "go" que se acabó de crear se le agrega el componente llamado "RigidBody" y le doy verdadero a la rotación para que no se de la vuelta. zombieList.Add(go); } else if (randomComponent == 2) //Cuando el valor almacenado en "randomComponent" sea igual a 2, entrará en este condicional. { go.AddComponent <Citizen>(); //Al cubo "go" que se acabó de crear se le agrega el componente llamado "Citizen" que es una clase dentro de la directiva "NPC.Ally". go.AddComponent <Rigidbody>().constraints = RigidbodyConstraints.FreezeRotation; //Al cubo "go" que se acabó de crear se le agrega el componente llamado "RigidBody" y le doy verdadero a la rotación para que no se de la vuelta. citizenList.Add(go); } randomComponent = Random.Range(1, 3); //Por último, después de verificar todos los condicionales "if" anteriores, se cambia el valor de "randomComponent" para la próxima vuelta del bucle. } ////// foreach (GameObject z in zombieList) //Creo un "foreach" y entre paréntesis digo: para cada objeto "gos" (Nombre que le dí a dichos objetos) en la lista hacer: { zo.text = "Number of zombies: " + (numberZombies += 1); //El texto de "zo" cambia por lo que esta después del igual. } foreach (GameObject c in citizenList) { ci.text = "Number of citizens: " + (numberCitizens += 1); } }