/************************************************************************************************************************Funcion "Start"************************************************************************************************************************/ void Start() { S_Hero speedHero = new S_Hero(); //Instancio la clase "S_Hero". heroStruct_H.positionHero = gameObject.transform.position; //Accedo a la estructura "heroStruct" y luego a la variable "positionHero" y digo que será igual a la posicion del "gameObject" que contiene este script. heroStruct_H.dialogue = GameObject.FindGameObjectWithTag("Dialogue").GetComponent <Text>(); //A la variable de tipo texto "dialogue" que está dentro de la estructura le asigno el componente "text" del "GameObject" que tenga el tag "Dialogue". gameObject.name = "Hero"; //Al objeto que contiene este script le doy el nombre de "Hero" para que aparezca en la jerarquía con ese nombre. gameObject.tag = "Player"; //Al objeto que contiene este script le doy el tag de "Hero". heroStruct_H.rb = GetComponent <Rigidbody>(); //A la variable "rb" de la estructura le doy el componente "RigidBoy". gameObject.GetComponent <Renderer>().material.color = Color.black; //Le doy un color al personaje, un simple cambio visual. heroStruct_H.rb.constraints = RigidbodyConstraints.FreezeRotation; //A la variable "rb" de la estructura le digo que acceda a los "Constraints" y ponga verdadero todo el "FreezeRotation" en el inspector. heroStruct_H.cam = GameObject.FindGameObjectWithTag("MainCamera"); //A la variable "cam" de la estructura almaceno el "gameObject" que tenga el tag de "MainCamera", es decir que se guardará la cámara principal de la escena. heroStruct_H.cam.transform.position = new Vector3(heroStruct_H.positionHero.x, heroStruct_H.positionHero.y + 1, heroStruct_H.positionHero.z - 2); //Ahora a la variable "cam" le doy una posición en la escena, la cual va a ser igual que a la del personaje o "Hero" pero se le suma 1 a "y" para que este un poco más alta y simule la cabeza. heroStruct_H.cam.transform.SetParent(gameObject.transform); //Ahora a la variable "cam" la emparento al objeto que tenga este script, es decir al "Hero", para que a donde se mueva el objeto, también se mueva la cámara. gameObject.AddComponent <FPSMove>().speed = speedHero.speed_Hero; //Al personaje le agrego el componente "FPSMove" y le digo que la variable "speed" de dicha clase será igual a "speed_Hero" que esta en la clase "S_Hero". heroStruct_H.cam.AddComponent <FPSAim>(); //A la cámara le añado el componente "FPSAim". }
/************************************************************************************************************************Funcion "Start"***************************************************************************************************************************/ /// <summary> /// En esta función se hacen varias cosas, primero instancio una clase con constructor, luego /// lleno una variable con la posición del héroe, le asigno un valor a la variable que maneja el /// "Slider" de UI, le doy un Tag y un nombre al héroe, se le da color también, guardo el componente /// "Rigidbody" para congelar las rotaciones, entre otras cosas más. /// </summary> void Start() { S_Hero speedHero = new S_Hero(); heroStruct_H.positionHero = gameObject.transform.position; heroStruct_H.health.value = 100; gameObject.name = "Hero"; gameObject.tag = "Player"; gameObject.GetComponent <Renderer>().material.color = Color.black; heroStruct_H.rb = GetComponent <Rigidbody>(); heroStruct_H.rb.constraints = RigidbodyConstraints.FreezeRotation; heroStruct_H.cam.transform.position = new Vector3(heroStruct_H.positionHero.x, heroStruct_H.positionHero.y + 1.5f, heroStruct_H.positionHero.z - 2); heroStruct_H.cam.transform.SetParent(gameObject.transform); gameObject.AddComponent <FPSMove>().speed = speedHero.speed_Hero; heroStruct_H.cam.AddComponent <FPSAim>(); GunInstance(); AmmunitionAndHealth(); }