Variables autocomputadas en Unity GUI Manager
Clase 23 de 31 • Curso de Desarrollo de Videojuegos para Móviles con Unity
Contenido del curso
Sprite Atlas y Generación de Caramelos
- 5

Sprite Editor y cámaras en Unity para móviles
11:53 min - 6

Sprites múltiples en Unity con slice automático
12:06 min - 7

Script base de Candy en Unity C#
10:57 min - 8

Configuración y Gestión del Tablero en Unity con C#
10:08 min - 9

Inicializar tablero 2D con bucles anidados
10:27 min - 10

Configuración de slice por tamaño en Unity
05:22 min - 11

Creación y Configuración de Tablero en Unity para Videojuegos
08:22 min - 12

Sprites aleatorios de prefabs en Unity
07:18 min
Diseño de Game Play
- 13

Arreglar bug de tripletes en tablero Candy Crush
12:33 min - 14

OnMouseDown para seleccionar caramelos
12:14 min - 15

Swap de caramelos sin mover GameObject
10:17 min - 16

Configuración de Física en Unity para Movimiento de Caramelos
13:30 min - 17

Detección y Eliminación de Coincidencias en Candy Crush
12:06 min - 18

Anular sprites en lugar de destruir objetos
15:26 min - 19

Caída en cascada para match-3 con corrutinas
13:23 min - 20

Generar caramelos sin crear matches accidentales
09:09 min - 21

Último bug visual: rebotes y recálculos
10:55 min
Retos finales
- 22

Diseño de Interfaz Gráfica en Unity para Videojuegos
11:20 min - 23

Variables autocomputadas en Unity GUI Manager
Viendo ahora - 24

Implementación de Singleton en Gestor de Interfaz de Usuario
08:13 min - 25

Corrutinas para pantalla Game Over sin interrupciones
06:55 min - 26

Multiplica puntuación con combos inteligentes
04:46 min - 27

Integra tres audios en tu videojuego de caramelos
01:47 min - 28

Animación y Destrucción de Caramelos en Videojuegos
02:00 min - 29

Menú principal para tu videojuego móvil
03:28 min
Cierre del curso
Aprende a controlar la interfaz de Unity con seguridad: inicializa el contador de movimientos, actualiza la puntuación con propiedades en C# y garantiza un único GUI manager con el patrón singleton. Con este enfoque, la UI refleja cambios automáticamente y evitas errores comunes en Visual Studio.
¿Cómo inicializar el contador de movimientos en la interfaz UI?
Para mostrar los movimientos restantes, se define una variable privada y se enlaza con un componente Text del Canvas. Así, el valor aparece en pantalla desde el Start y queda listo para actualizarse más adelante.
- Importa la librería: using UnityEngine.UI.
- Declara public Text movesText para arrastrar el texto desde el editor.
- Inicializa el contador privado con 30 en Start.
- Refleja el valor en pantalla con movesText.text.
using UnityEngine;
using UnityEngine.UI;
public class GUIManager : MonoBehaviour
{
public Text movesText; // Texto de movimientos en el Canvas.
private int moveCounter; // Contador privado.
void Start()
{
moveCounter = 30;
movesText.text = "Moves: " + moveCounter;
}
}
- Arrastra el componente del texto de movimientos al campo movesText en el inspector.
- Pulsa Play y verás 30 movimientos al iniciar.
¿Qué hacer si Visual Studio muestra errores rojos?
A veces el plugin que conecta Visual Studio con Unity falla y colorea todo en rojo sin razón. La solución práctica es simple.
- Cierra Visual Studio por completo.
- Reábrelo desde Unity para regenerar el vínculo.
- Comprueba que desaparecen los errores falsos.
¿Cómo sincronizar la puntuación con el texto usando propiedades?
La puntuación se gestiona con una propiedad que encapsula el valor y actualiza la UI automáticamente. Al cambiar la puntuación, el setter refresca el Text sin llamadas extra.
- Declara private int score y public Text scoreText.
- Configura score = 0 en Start y muestra el valor inicial.
- Crea la propiedad pública SCORE con getter y setter.
- Actualiza el texto dentro del setter para reflejar el cambio.
using UnityEngine;
using UnityEngine.UI;
public class GUIManager : MonoBehaviour
{
public Text scoreText; // Texto de puntuación en el Canvas.
private int score; // Puntuación privada.
void Start()
{
score = 0;
scoreText.text = "Score: " + score;
}
public int SCORE
{
get { return score; }
set
{
score = value;
scoreText.text = "Score: " + score; // Refresco automático.
}
}
}
Este mismo patrón se aplica al contador de movimientos. Así, otras clases pueden modificarlo y la UI se actualiza sola.
public int MOVE_COUNTER
{
get { return moveCounter; }
set
{
moveCounter = value;
movesText.text = "Moves: " + moveCounter;
}
}
Beneficios clave: - Encapsulación del estado y la presentación en una sola propiedad. - Actualización automática del Text al cambiar el valor. - Consistencia: mismo formato en Start y en los setters.
¿Por qué usar un singleton para el manager de la GUI?
El rol del manager es centralizar la lógica de la interfaz. Debe haber un único manager por funcionalidad en todo el proyecto. Con la técnica del singleton, garantizas una sola instancia accesible desde cualquier clase y evitas duplicidades.
- Asegura una fuente única de verdad para puntuación y movimientos.
- Simplifica la comunicación entre sistemas que actualizan la UI.
- Previene errores por múltiples instancias compitiendo.
Ponlo en práctica: convierte tu clase actual de GUI manager en singleton y verifica que otras clases acceden a sus propiedades públicas para modificar puntuación y movimientos.
¿Tienes dudas sobre la propiedad, el setter o el enlace del Text en el Canvas? Pregunta y comparte tu progreso.