Repaso: FindNearest
Parte de la sección Arquitectura de juegos en Unity del Journey de Unity de Coddy. Lección 45 de 64.
En este capítulo se escribió código que funciona con cualquier tipo: métodos de extensión, una clase base genérica y funciones auxiliares genéricas. Aquí, una búsqueda genérica encuentra tanto las gemas como las plataformas de carga.
Desafío
IntermedioEnvía el robot a recoger las gemas, empezando por la más cercana, y después a cargar.
- En
Helpers.cs, escribe la clase estáticaHelpersconFindNearest<T>(IEnumerable<T> items, Vector3 from)público para componentes: el elemento más cercano onull. - En
Robot, en cada fotograma, usaMoveTopara ir a laGemmás cercana y destrúyela al llegar. - Cuando no queden gemas, ve a la
ChargePadmás cercana, registraCharginguna vez y quédate allí.
Pulsa «Jugar»: el robot recoge todas las gemas. Después, pulsa «Comprobar».
Pruébalo tú mismo
using System.Collections.Generic;
using UnityEngine;
// Helpers.FindNearest<T>: el elemento más cercano a un punto, o null
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
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 modularRepaso: cañón doble4Datos serializados
Clases serializablesListas en el InspectorEnumeraciones en el InspectorRepaso: tabla de botínRepaso: sortear el botín2Interfaces en Unity
IDamageableInterfaces y TryGetComponentGetComponentsRepaso: Tecla de interacciónRepaso: El más cercano al alcance5ScriptableObjects
Activos de datosEstadísticas de armasConfiguración compartidaGuardar el vientoOleadas como datosRepaso: base de datos de objetosRepaso: comprar en la tienda8Código reutilizable
Métodos de extensiónUn singleton genéricoFunciones auxiliares genéricasRepaso: FindNearest3Eventos
Eventos de C# en UnitySuscribirse en OnEnableCampos UnityEventLos eventos controlan la interfazRepaso: ventana emergente de logrosRepaso: temporizador de la ventana emergentePractica por tu cuenta: Playground de Unity