
Este Unity tutorial utiliza JEV como una capa de decisión táctica limitada, mientras que Unity sigue siendo responsable del estado de la escena, la física, la navegación, la animación y la autoridad del juego. Es un patrón de adaptador, no una afirmación de que una llamada SDK pueda reemplazar un controlador NPC.
La arquitectura Unity
Separa cinco componentes: un proyector de estado lee la escena, un generador de acciones crea Legal Actions, un cliente JEV envía la solicitud, un ejecutor asigna una acción validada a los sistemas Unity y un La política fallback mantiene el NPC en movimiento cuando la respuesta llega tarde o no es válida.
NpcController -> StateProjector -> LegalActionBuilder -> JevClient -> Validator -> Executor or Fallback1. Proyecte la escena en Game State
Proyecto solo hechos relevantes para la decisión: rol, salud, enemigos visibles, estado del objetivo, cobertura cercana, municiones, tiempos de reutilización, intención actual y una versión del estado. Utilice la capa de percepción de NPC para que la información oculta no se filtre en la decisión.
state = { agentId, role, healthRatio, visibleThreatIds, objectiveUnderThreat, ammo, stateVersion }2. Compilación Legal Actions
El generador de acciones crea comandos como ponerse a cubierto, atacar a un objetivo visible, ayudar a un aliado o mantener la posición. Cada acción lleva el identificador de destino o ubicación que necesita el ejecutor. La navegación sigue siendo una preocupación Unity: JEV elige candidatos de intención o destino mientras NavMesh calcula la ruta.
3. Llamada fuera del bucle de renderizado
Activa una decisión cuando se completa la intención actual, una amenaza entra en la percepción, el objetivo cambia o expira un temporizador táctico. Utilice una rutina, una tarea asíncrona o un servicio de juego con una solicitud en curso por NPC. Nunca bloquee el hilo principal de Unity esperando la respuesta de la red.
if (!requestInFlight) { requestInFlight = true; result = await client.Decide(snapshot, actions); ApplyIfStillValid(result); }4. Validar y ejecutar
Compare la versión del estado de la respuesta con el mundo actual, reconstruya el conjunto de acciones legales y verifique los parámetros. Es posible que un objetivo haya muerto o que un punto de cobertura sea inalcanzable mientras la solicitud estaba en vuelo. Si la validación tiene éxito, asigne la intención a un comando, árbol de comportamiento, NavMesh destino o sistema de habilidades existente.
5. Establecer cadencia, tiempo de espera y fallback
Separe el bucle de renderizado del bucle táctico. Establezca una fecha límite que le dé tiempo al NPC para actuar. En el tiempo de espera, mantenga la intención de seguridad actual o utilice una política local como ponerse a cubierto cuando esté herido, mantener el objetivo o retirarse cuando no quede ningún ataque legal.
6. Hacer visibles las decisiones
En las compilaciones de desarrollo, exponga el estado proyectado, Legal Actions, la acción seleccionada, la versión del estado, la latencia de la solicitud, el resultado de la validación y el motivo fallback en una ventana o dispositivo de depuración. Los diseñadores deben comprender una decisión sin leer un seguimiento de la red.
Unity lista de verificación
- La percepción es propietaria de la proyección estatal.
- No bloquear el principal hilo.
- Revalidar antes de la ejecución.
- Mantener el movimiento, la física, la animación y la autoridad en Unity.
- Determinista del barco fallback y telemetría desde el primero prototipo.
Una configuración de escena mínima Unity
Comience con un NPC, un objetivo, dos amenazas, algunos puntos de cobertura y un controlador fallback local. Agregue un componente de percepción, un proyector de estado, un generador de acciones, un cliente de decisión y un ejecutor como MonoBehaviours o servicios separados. Mantenga el adaptador JEV independiente de NavMeshAgente y Animator detalles para que pueda probarse sin una escena completa.
El límite del adaptador
El adaptador traduce Unity tipos en una solicitud neutral del proveedor y traduce una intención validada nuevamente en un comando existente. No debe llamar a SetDestination, reproducir una animación ni aplicar daño antes de la validación. Esos efectos pertenecen a los sistemas ejecutor y de juego.
Escenarios de prueba antes de las indicaciones de ajuste
- Salud baja con cobertura disponible.
- Sin municiones pero con una retirada accesible ruta.
- Un objetivo destruido mientras la solicitud está en vuelo.
- Dos puntos de cobertura igualmente válidos con diferentes distancias.
- JEV tiempo de espera durante un estado de combate activo.
- Escena descargar o NPC desaparecer antes de la respuesta.
Para cada escenario, afirma que la acción seleccionada es legal, se llama al ejecutor como máximo una vez, se ignora la respuesta obsoleta y fallback deja NPC en un estado válido.
Qué medir en el Unity Profiler
Tiempo de proyección del estado de la pista, tiempo de serialización, espera de red, tiempo de validación, inicio del ejecutor, finalización de la acción y recuento de fallback. Un modelo puede ser rápido mientras que el adaptador es lento porque serializa demasiado estado o programa trabajo en el hilo principal. Mida el impacto del marco por separado de la latencia de decisión de un extremo a otro.
Un plan de envío por etapas
- Prototipo con un cliente de decisión falso local.
- Estado de grabación y reproducción instantáneas.
- Agregue el cliente remoto detrás de un indicador de función.
- Envío fallback-primer comportamiento y telemetría.
- Ejecute una cohorte limitada NPC antes de tomar la capa de decisión universal.
Para el contrato de proveedor neutral, lea JEV API uso. Para el diseño del espacio de acción, consulte JEV Legal Actions. El tutorial general está en JEV tutorial.


