Repaso: FindNearest
Parte de la sección Arquitectura de juegos en Unity del Journey de Unity de Coddy. Lección 36 de 50.
Desafío
IntermedioUn robot de limpieza recoge gemas y después va a cargar. Gem y ChargePad son scripts marcadores vacíos (listos), y el robot tiene MoveTo(point), que lo desplaza hacia un punto a speed y devuelve true cuando llega.
- En
Helpers.cs, escribe una clase estáticaHelperscon un método genéricoFindNearest<T>(IEnumerable<T> items, Vector3 from)para cualquier tipo de componente. Devuelve el elemento cuya posición está más cerca defrom, o null cuando no hay elementos. - En
Robot.cs, en cada fotograma el robot se dirige a la gema más cercana de la escena desde donde se encuentra y destruye la gema cuando llega. - Cuando ya no quedan gemas, el robot se dirige al
ChargePadmás cercano. Al llegar, registraCharginguna vez y se queda allí.
Usa FindNearest tanto para las gemas como para las plataformas. Pulsa Play, observa al robot y después pulsa Check.
Pruébalo tú mismo
using System.Collections.Generic;
using UnityEngine;
// Helpers.FindNearest<T>: el elemento más cercano a un punto, o null
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 objetos8Código reutilizable
Métodos de extensiónUn singleton genéricoFunciones auxiliares genéricasRepaso: FindNearest