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

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: