{"id":218,"date":"2026-10-03T11:01:43","date_gmt":"2026-10-03T09:01:43","guid":{"rendered":"https:\/\/www.noocturnalgamesstudio.com\/blog\/2026\/10\/03\/npcs-que-evolucionan-como-crear-ias-que-recogen-objetos-y-mejoran-sus-estadisticas-en-unity\/"},"modified":"2026-10-03T11:01:43","modified_gmt":"2026-10-03T09:01:43","slug":"npcs-que-evolucionan-como-crear-ias-que-recogen-objetos-y-mejoran-sus-estadisticas-en-unity","status":"publish","type":"post","link":"https:\/\/www.noocturnalgamesstudio.com\/blog\/2026\/10\/03\/npcs-que-evolucionan-como-crear-ias-que-recogen-objetos-y-mejoran-sus-estadisticas-en-unity\/","title":{"rendered":"NPCs que Evolucionan: C\u00f3mo crear IAs que recogen objetos y mejoran sus estad\u00edsticas en Unity"},"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;'> \u00bfAlguna vez has sentido que los enemigos de tu juego son simples sacos de boxeo esperando a ser golpeados? En el desarrollo indie, la diferencia entre un juego mediocre y uno memorable reside en la reactividad del mundo. Si un NPC ve una espada mejor en el suelo, \u00bfpor qu\u00e9 ignorarla? <\/p>\n<p style='margin-bottom: 15px;'> Hoy vamos a profundizar en c\u00f3mo utilizar el <strong>Modular AI Behaviour Kit<\/strong> para crear un sistema de saqueo din\u00e1mico donde tus IAs no solo patrullan, sino que evolucionan recolectando objetos y mejorando sus estad\u00edsticas en tiempo real. <\/p>\n<hr style='border: 0; border-top: 1px solid #4a5568; margin: 30px 0;'>\n<h3 style='color: #39FF14; margin-top: 30px; font-weight: 700; letter-spacing: 0.5px;'> 1. La Filosof\u00eda de la Composici\u00f3n Modular <\/h3>\n<p style='margin-bottom: 15px;'> La mayor\u00eda de los desarrolladores intentan programar una IA monol\u00edtica con miles de l\u00edneas de c\u00f3digo. Con nuestro Kit, cambiamos ese enfoque por uno de <strong>Personalidad por Composici\u00f3n<\/strong>. Para que un NPC recoja objetos, solo necesitamos combinar tres sentidos b\u00e1sicos: <\/p>\n<ul style='color: #cbd5e0; margin-bottom: 15px;'>\n<li><strong>PlayerDetector (reconfigurado):<\/strong> Para detectar objetos en una capa espec\u00edfica (&#8216;Loot&#8217;).<\/li>\n<li><strong>SimpleChase:<\/strong> Para dirigir al NPC hacia el objeto detectado.<\/li>\n<li><strong>AIController:<\/strong> Para gestionar la transici\u00f3n entre &#8216;Patrulla&#8217; y &#8216;Saqueo&#8217;.<\/li>\n<\/ul>\n<h3 style='color: #39FF14; margin-top: 30px; font-weight: 700; letter-spacing: 0.5px;'> 2. Configurando la Percepci\u00f3n de Objetos <\/h3>\n<p style='margin-bottom: 15px;'> El componente <code>PlayerDetector<\/code> es extremadamente vers\u00e1til. Aunque su nombre sugiera que solo detecta jugadores, funciona con cualquier <code>LayerMask<\/code>. Para crear un NPC saqueador, configuramos un segundo detector en el mismo GameObject: <\/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;'> <strong>Configuraci\u00f3n Pro:<\/strong> Crea una capa llamada &#8216;Loot&#8217;. En el inspector del NPC, asigna esta capa al campo &#8216;Target Layer&#8217; de un nuevo PlayerDetector. Ahora tu IA tiene &#8216;ojos&#8217; para el bot\u00edn. <\/div>\n<h3 style='color: #39FF14; margin-top: 30px; font-weight: 700; letter-spacing: 0.5px;'> 3. El Cerebro: Gestionando el Estado de Saqueo <\/h3>\n<p style='margin-bottom: 15px;'> El <code>AIController<\/code> act\u00faa como el director de orquesta. Cuando el detector de bot\u00edn emite el evento <code>OnTargetDetected<\/code>, el controlador debe pausar la patrulla y activar la persecuci\u00f3n hacia el objeto. <\/p>\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;'> \/\/ Ejemplo de l\u00f3gica en el AIController <br \/> _lootDetector.OnTargetDetected.AddListener((lootItem) => { <br \/> &nbsp;&nbsp;ChangeState(AIState.Chasing); <br \/> &nbsp;&nbsp;_chase.ManualStartChase(lootItem); <br \/> }); <\/code> <\/p>\n<h4 style='color: #fff; margin-top: 30px; font-weight: 600;'> 4. Evoluci\u00f3n de Estad\u00edsticas (Integraci\u00f3n con MAS) <\/h4>\n<p style='margin-bottom: 15px;'> Recoger el objeto es solo la mitad del camino. La verdadera magia ocurre cuando el NPC mejora. Aqu\u00ed es donde el <strong>Modular Attributes &#038; Stats (MAS)<\/strong> entra en juego. Al llegar al objeto, disparamos un evento que aplica un <code>AttributeModifier<\/code> al NPC. <\/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;'> Si el NPC recoge una &#8216;Poci\u00f3n de Fuerza&#8217;, el sistema MAS a\u00f1ade autom\u00e1ticamente un modificador de +5 al atributo &#8216;Strength&#8217;. Esto recalcula instant\u00e1neamente su da\u00f1o de ataque sin scripts adicionales. <\/div>\n<h3 style='color: #39FF14; margin-top: 30px; font-weight: 700; letter-spacing: 0.5px;'> Conclusi\u00f3n <\/h3>\n<p style='margin-bottom: 15px;'> Crear IAs cre\u00edbles no tiene por qu\u00e9 ser una pesadilla t\u00e9cnica. Al utilizar un enfoque modular basado en eventos, permites que tus NPCs interact\u00faen con el entorno de forma org\u00e1nica. El <strong>Modular AI Behaviour Kit<\/strong> te da los m\u00fasculos y los sentidos; t\u00fa solo tienes que definir la ambici\u00f3n de tus criaturas. <\/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<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfAlguna vez has sentido que los enemigos de tu juego son simples sacos de boxeo esperando a ser golpeados? En el desarrollo indie, la diferencia entre un juego mediocre y uno memorable reside en la reactividad del mundo. Si un NPC ve una espada mejor en el suelo, \u00bfpor qu\u00e9 ignorarla? Hoy vamos a profundizar [&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-218","post","type-post","status-publish","format-standard","hentry","category-sin-categoria"],"_links":{"self":[{"href":"https:\/\/www.noocturnalgamesstudio.com\/blog\/wp-json\/wp\/v2\/posts\/218","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=218"}],"version-history":[{"count":0,"href":"https:\/\/www.noocturnalgamesstudio.com\/blog\/wp-json\/wp\/v2\/posts\/218\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.noocturnalgamesstudio.com\/blog\/wp-json\/wp\/v2\/media?parent=218"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.noocturnalgamesstudio.com\/blog\/wp-json\/wp\/v2\/categories?post=218"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.noocturnalgamesstudio.com\/blog\/wp-json\/wp\/v2\/tags?post=218"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}