Descripción del vídeo
En este video vamos a ver cómo acceder desde un Script a una variable y a una función que está definida en otro Script en Unity.
Resumen del procedimiento para leer una variable que está en otro Script:
1. Partimos de 2 scripts PRIMERO y SEGUNDO. En el SEGUNDO está la variable que queremos leer. En el PRIMERO vamos a leer la variable que está en SEGUNDO.
2. En SEGUNDO nos aseguramos que la variable está declarada como pública, sino no podremos acceder a ella desde un contexto externo a SEGUNDO (por ejemplo PRIMERO).
3. En PRIMERO declaramos un objeto de tipo SEGUNDO y debemos asegurarnos de inicializar ese objeto con la referencia apropiada. Esto va a depender de dónde estamos programando, en este caso vamos a hacerlo arrastrando el objeto que tiene asignado el script SEGUNDO en el capo del inspector del script PRIMERO.
4. Para leer la variable de SEGUNDO desde PRIMERO, usamos la referencia que definimos de SEGUNDO y con el operador punto podemos acceder a ella y utilizarla dentro de PRIMERO.
Índice de contenidos y tiempos de interés del video
0:49 – ¿Qué vamos a hacer?
1:32 – Ejemplo: Comunicación entre Sistema de Salud e Interfaz Gráfica
2:03 – No es una buena idea programar todo en un único Script
2:42 – Dividir responsabilidades es una mejor alternativa
3:47 – Pasamos a Unity a la parte de implementación de la comunicación entre Scripts
3:51 – Breve explicación sobre el ejemplo del artículo sobre comunicación entre Scripts
4:33 – Comenzamos a implementar el ejemplo propuesto en el video
4:48 – Cómo va a ser la interfaz gráfica
5:02 – Creación de la interfaz gráfica
6:53 – Objeto jugador y creación de Scripts «HealthSystem» y «UserInterface»
7:48 – Programación del Script de la interfaz gráfica. Definición de campos
8:30 – Programación del Script del sistema de salud. Definición de campos y métodos
9:19 – Métodos de daño y regeneración para decrementar o incrementar la salud
9:52 – Hard Coding no!
10:25 – Método Getter para leer la salud actual del jugador
10:50 – ¿Cómo vamos a encarar el problema?
11:28 – Pros y Contras de las dos alternativas propuestas
12:15 – Programación de la primera alternativa: La interfaz gráfica pregunta al sistema de salud cuánta vida tiene el jugador
12:17 – Distinción entre clase y objeto cuando en un Script
12:56 – Encontrar la referencia de un objeto
14:03 – Método Update de la interfaz de usuario, comunicación entre scripts interfaz de usuario y sistema de salud
14:33 – Operador punto para acceder a campos y métodos públicos en otros Scripts
15:29 – Asignación de Scripts y ajustes en el inspector para la prueba de funcionamiento
16:11 – Asignación de las funciones a los botones en Unity
17:03 – Prueba de funcionamiento de la primera alternativa
17:36 – Implementación de la segunda alternativa: El sistema de salud, cuando se produce una modificación en la vida del jugador, le avisa a la interfaz gráfica para que modifique su valor
18:19 – Definir y obtener la referencia del objeto Interfaz Gráfica desde el Script Sistema de Salud
19:16 – Métodos de la interfaz de usuario
19:48 – Comunicación entre Scripts sistema de salud e interfaz gráfica
20:21 – Ajustes en el inspector para la segunda alternativa
20:56 – Prueba de funcionamiento. Bug a causa de interfaz gráfica no inicializada
21:48 – Conclusión