Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

FAQ TOP 10: ¿Cómo llamo a un Script desde otro?

Iniciado por pioj, Septiembre 16, 2016, 07:17:33 PM

Tema anterior - Siguiente tema
Septiembre 16, 2016, 07:17:33 PM Ultima modificación: Septiembre 17, 2016, 12:34:01 AM por pioj
FAQ TOP 10: ¿Cómo llamo a un Script desde otro Script?
 
Parece mentira que esta pregunta se repita tanto en los Foros. Vamos a responderla de una vez por todas:
 
1. Tenemos en nuestra Escena dos GameObjects  (A y B), cada uno con su propio Componente (Script) asignado.
 

 
2. El Script de A tiene una función PúBLICA, para que sea accesible desde fuera de dicho Componente.
 

 
3. El Script de B tiene un parámetro del tipo <Script_A> con el que tiene acceso al Componente_A del GameObject A, y llama a su función.
 

 
4. Por último, sólo nos queda asignar el Componente_A del GameObject A de esa Escena, arrastrándolo al campo del Componente_B, del GameObject B, en el Inspector.
 

 
Ahora ya tenemos acceso al Componente_A (y sus funciones) desde el Componente_B.
 
 
 
Fácil, ¿verdad? Esta es sólo una de las muchas maneras de hacerlo. Por ejemplo, si quisiéramos asignar el Componente desde código, podríamos usar estas líneas:
 

public Script_A Componente_de_A;
void Awake() {
  Componente_de_A = GameObject.Find("GameObject_A").GetComponent<Script_A>();
}

 
 
 
Y con esto, hemos resuelto de una vez por todas una de las preguntas más po***res del Foro. 

Etiquetas: