{"id":93,"date":"2026-04-09T22:30:21","date_gmt":"2026-04-09T20:30:21","guid":{"rendered":"https:\/\/www.noocturnalgamesstudio.com\/blog\/2026\/04\/09\/mecanicas-de-sigilo-en-unity-como-crear-ias-que-oyen-y-se-alertan-entre-si-sin-codigo-espagueti\/"},"modified":"2026-04-09T22:30:21","modified_gmt":"2026-04-09T20:30:21","slug":"mecanicas-de-sigilo-en-unity-como-crear-ias-que-oyen-y-se-alertan-entre-si-sin-codigo-espagueti","status":"publish","type":"post","link":"https:\/\/www.noocturnalgamesstudio.com\/blog\/2026\/04\/09\/mecanicas-de-sigilo-en-unity-como-crear-ias-que-oyen-y-se-alertan-entre-si-sin-codigo-espagueti\/","title":{"rendered":"Mec\u00e1nicas de Sigilo en Unity: C\u00f3mo crear IAs que oyen y se alertan entre s\u00ed sin c\u00f3digo espagueti"},"content":{"rendered":"<div style='font-family: system-ui, -apple-system, sans-serif; line-height: 1.8; color: #e2e8f0; font-size: 16px;'>\n<p style='margin-bottom: 15px;'>Implementar un sistema de sigilo cre\u00edble es uno de los mayores desaf\u00edos para cualquier desarrollador indie. No se trata solo de que el enemigo te vea; se trata de c\u00f3mo reacciona el entorno cuando cometes un error. El problema surge cuando intentamos que los NPCs se comuniquen entre s\u00ed. Si el Guardia A detecta al jugador y tiene que llamar manualmente al Guardia B, C y D, terminas con un c\u00f3digo espagueti lleno de referencias directas que rompen tu proyecto al eliminar un solo objeto de la escena.<\/p>\n<h3 style='color: #39FF14; margin-top: 30px; font-weight: 700; letter-spacing: 0.5px;'>El Problema de la IA Monol\u00edtica<\/h3>\n<p style='margin-bottom: 15px;'>Tradicionalmente, la l\u00f3gica de la IA se escribe en scripts gigantescos que intentan manejarlo todo: patrulla, visi\u00f3n, audici\u00f3n y combate. Esto es poco escalable. En Noocturnal Games Studio, creemos que la soluci\u00f3n profesional es el desacoplamiento total mediante una arquitectura basada en eventos.<\/p>\n<div style='background-color: rgba(255, 255, 255, 0.05); border-left: 3px solid #f687b3; padding: 15px; margin-bottom: 20px; border-radius: 0 8px 8px 0;'>La clave no es que los NPCs se conozcan entre s\u00ed, sino que emitan se\u00f1ales al entorno que otros puedan escuchar de forma aut\u00f3noma.<\/div>\n<h3 style='color: #39FF14; margin-top: 30px; font-weight: 700; letter-spacing: 0.5px;'>Mec\u00e1nicas de Audici\u00f3n: SoundEmitter y SoundReceiver<\/h3>\n<p style='margin-bottom: 15px;'>Para que un enemigo oiga tus pasos o una distracci\u00f3n, necesitamos un sistema de propagaci\u00f3n. En lugar de que el jugador busque a todos los enemigos cercanos, el jugador emite un sonido y los interesados reaccionan.<\/p>\n<h4 style='color: #fff; margin-top: 30px; font-weight: 600;'>Implementaci\u00f3n con Modular AI Behaviour Kit:<\/h4>\n<p><code style='display:block; background: #1a202c; color: #68d391; padding: 10px; border-radius: 5px; margin: 5px 0; font-family: monospace; border: 1px solid #2d3748;'>\/\/ El jugador emite un sonido al caer<br \/>\nSoundEmitter.EmitSound(radius: 15f);<\/p>\n<p>\/\/ El NPC tiene un SoundReceiver que escucha el evento<br \/>\npublic void OnSoundHeard(Vector3 position) {<br \/>\n    aiController.ChangeState(AIState.Searching);<br \/>\n    searchBehavior.StartSearch(position);<br \/>\n}<\/code><\/p>\n<p style='margin-bottom: 15px;'>Este enfoque permite que cualquier objeto (una piedra, una granada, el propio jugador) genere sonidos sin conocer la existencia de la IA. Es modularidad pura.<\/p>\n<h3 style='color: #39FF14; margin-top: 30px; font-weight: 700; letter-spacing: 0.5px;'>Coordinaci\u00f3n Social: El Sistema de Alertas<\/h3>\n<p style='margin-bottom: 15px;'>\u00bfQu\u00e9 ocurre cuando un guardia ve al jugador? En un juego profesional, ese guardia debe gritar. Pero no queremos que llame a funciones espec\u00edficas de otros guardias. Usamos el componente Alerter.<\/p>\n<ul style='color: #cbd5e0; margin-bottom: 15px;'>\n<li><strong>Alerter:<\/strong> Cuando el PlayerDetector confirma la visi\u00f3n, el Alerter realiza un OverlapSphere para encontrar otros NPCs con el componente AlertReceiver.<\/li>\n<li><strong>AlertReceiver:<\/strong> Recibe la posici\u00f3n de la amenaza y la procesa seg\u00fan su propia l\u00f3gica.<\/li>\n<\/ul>\n<h3 style='color: #39FF14; margin-top: 30px; font-weight: 700; letter-spacing: 0.5px;'>El Cerebro: AIController como Director de Orquesta<\/h3>\n<p style='margin-bottom: 15px;'>Para evitar que un NPC intente patrullar y perseguir al mismo tiempo, el AIController gestiona las transiciones. Al recibir una alerta social o un sonido, el AIController apaga el m\u00f3dulo de patrulla y activa el de b\u00fasqueda o persecuci\u00f3n.<\/p>\n<div style='background-color: rgba(255, 255, 255, 0.05); border-left: 3px solid #f687b3; padding: 15px; margin-bottom: 20px; border-radius: 0 8px 8px 0;'>Con el Modular AI Behaviour Kit, creas personalidades por composici\u00f3n. Quieres un guardia que no oiga pero que grite mucho? Solo a\u00f1ade PlayerDetector y Alerter, pero omite el SoundReceiver.<\/div>\n<hr style='border: 0; border-top: 1px solid #4a5568; margin: 30px 0;'>\n<p style='margin-bottom: 15px;'>Dominar la IA de sigilo no requiere miles de l\u00edneas de c\u00f3digo, sino una arquitectura inteligente. Al usar componentes desacoplados, tu juego se vuelve robusto, f\u00e1cil de depurar y, sobre todo, divertido para el jugador.<\/p>\n<div style='background: linear-gradient(145deg, #1a202c, #2d3748); border: 1px solid #4a5568; padding: 25px; border-radius: 12px; margin-top: 40px; text-align: center; box-shadow: 0 4px 6px rgba(0,0,0,0.3);'>\n<p style='margin-bottom: 10px; font-weight: bold; color: #fff; font-size: 1.1em;'>Mejora tu juego hoy<\/p>\n<p style='margin-bottom: 0; color: #cbd5e0;'>Consigue este asset en la <a href='#' style='color: #39FF14; text-decoration: underline; font-weight: bold;'>Unity Asset Store<\/a>.<\/p>\n<\/p><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Implementar un sistema de sigilo cre\u00edble es uno de los mayores desaf\u00edos para cualquier desarrollador indie. No se trata solo de que el enemigo te vea; se trata de c\u00f3mo reacciona el entorno cuando cometes un error. El problema surge cuando intentamos que los NPCs se comuniquen entre s\u00ed. Si el Guardia A detecta al [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-93","post","type-post","status-publish","format-standard","hentry","category-sin-categoria"],"_links":{"self":[{"href":"https:\/\/www.noocturnalgamesstudio.com\/blog\/wp-json\/wp\/v2\/posts\/93","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.noocturnalgamesstudio.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.noocturnalgamesstudio.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.noocturnalgamesstudio.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.noocturnalgamesstudio.com\/blog\/wp-json\/wp\/v2\/comments?post=93"}],"version-history":[{"count":0,"href":"https:\/\/www.noocturnalgamesstudio.com\/blog\/wp-json\/wp\/v2\/posts\/93\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.noocturnalgamesstudio.com\/blog\/wp-json\/wp\/v2\/media?parent=93"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.noocturnalgamesstudio.com\/blog\/wp-json\/wp\/v2\/categories?post=93"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.noocturnalgamesstudio.com\/blog\/wp-json\/wp\/v2\/tags?post=93"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}