Controlando cualquier Componente de un Objeto en Unity 3D via Script

Veamos como lograr obtener e incluso cambiar cualquier valor de cualquier componente (AudioSource, Camera, Text, Image, etc.) de un Objeto X que se encuentra en la escena de nuestro juego.
Para comenzar es necesario que primero tengamos localizado el objeto al cual deseamos acceder para cambiar u obtener el valor de algún componente (Script) que contenga dicho objeto (GameObject), y para lograrlo podemos hacerlo de dos maneras:
Una es creando un objeto publico en nuestro script para posteriormente asignar el GameObject mediante el editor Unity, o buscar dicho objeto por el mismo script


public GameObject miObjeto; //Si se quiere Obtener con el mismo Script entonces se ejecuta lo siguiente miObjeto = GameObject.Find("NombreDeMiObjecto_EnElEscenario"); //Si lo queremos buscar gracias a que contienen un TAG unico entonces... miObjeto = GameObject.FindWithTag("TAGDeMiObjecto_EnElEscenario");

Una vez localizado nuestro GameObject podemos continuar utilizando el script para lograr localizar el componente a manipular, y para ello veamos el ejemplo a continuación:

//Nota Extra: Solo porque estamos editando un componente de tipo UI hay que agregar lo siguiente al inicio del Codigo, SOLO si estamos trabajando con un componente de este tipo. using UnityEngine.UI; //Codigo para Obtener el Componente y el valor del dicho Componente miObjeto.GetComponent<ComponenteDeseado>().valorDeseadoDelComponente; //Ejemplo, queremos obtener el componente TEXT de un objeto en la pantalla para finalmente obtener el texto que muestra: string textoDeseado = miObjeto.GetComponent<Text>().text; //Si se quiere cambiar el valor simplemente se agrega lo siguiente miObjeto.GetComponent<Text>().text = "Nuevo Texto";

Solo para agregar, existen valores de ciertos componentes que solo sirven para obtener pero no para editar, sin embargo son limitados y solo es posible que descubras cuales son esos pocos gracias a la practica.

No hay comentarios:

Con la tecnología de Blogger.