Repaso: ventana emergente de logro
Parte de la sección Arquitectura de juegos en Unity del Journey de Unity de Coddy. Lección 14 de 50.
Desafío
FácilHay monedas por el patio, y las flechas mueven al jugador (Player.cs, listo). Dale al juego logros que aparezcan en pantalla. Escribe tres scripts; la escena ya enlaza sus campos y conecta la lista On Unlocked (String) de Achievements con AchievementPopup.Show en el HUD.
Collector(en el Player) recoge todos los objetos etiquetados comoCoinque toca, los elimina y anuncia el nuevo total mediante un evento público de C#OnCoinsChangedque pasa un int. No sabe nada sobre los logros.Achievementsescucha a sucollectormientras está activo, y solo entonces. Con 1 moneda desbloqueaFirst Coin, con 3Pocket Moneyy con 6Coin Hoarder. Cada desbloqueo invoca su campo UnityEventonUnlocked, que pasa el título (una cadena).AchievementPopup.Show(string title)muestrapanel, contitleTextmostrandoUnlocked: First Coin, y lo ocultashowTime(2) segundos después. Si se llama a Show mientras el panel está visible, muestra el título nuevo y los 2 segundos empiezan de nuevo.
Pulsa Play, recoge las seis monedas y luego pulsa Check.
Pruébalo tú mismo
using UnityEngine;
public class Achievements : MonoBehaviour
{
public Collector collector;
}
Todas las lecciones de Arquitectura de juegos en Unity
1Componentes, no jerarquías
Componentes pequeñosUn script base para enemigosComponentes abstractosComponentes que trabajan juntosRepaso: torreta modular4Datos serializados
Clases serializablesListas en el InspectorEnumeraciones en el InspectorRepaso: tabla de botín7Máquinas de estados
Estados como clasesUna máquina de estadosTransicionesCerebros de enemigosRepaso: estados de puertas10Proyecto: Superviviente de la arena
El héroeTipos de enemigos2Interfaces en Unity
IDamageableInterfaces y TryGetComponentGetComponentsRepaso: tecla de interacción5ScriptableObjects
Recursos de datosEstadísticas de armasConfiguración compartidaOleadas como datosRepaso: base de datos de objetos3Eventos
Eventos de C# en UnitySuscribirse en OnEnableCampos de UnityEventLos eventos controlan la interfazRepaso: ventana emergente de logro