# Unity Inventario Profesional
**Source:** https://fr.cursos.frogamesformacion.com/pages/blog/unity-inventario-profesional
**Language:** French

---

![Le añadí esto a mi juego en Unity y cambió por completo: cómo crear un sistema de inventario profesional](https://dropinblog.net/cdn-cgi/image/fit=scale-down,format=auto,width=700/34249715/files/portada-post/le-anadi-esto-a-mi-juego-en-unity-y-cambio-por-completo-como-crear-un-sistema-de-inventario-profesional.png)

# Le añadí esto a mi juego en Unity y cambió por completo: cómo crear un sistema de inventario profesional

*![Juan Gabriel Gomila](https://dropinblog.net/cdn-cgi/image/fit=scale-down,width=100/34249715/authors/jb.JPG)*

Juan Gabriel Gomila 

Videojuegos

  

17/06/2026 12:00pm

10 minutos

Leer el artículo

Audio generated by DropInBlog's Blog Voice AI™ may have slight pronunciation nuances. Learn more

## Contenidos

- La base visual: un inventario que explote al crecer
- El slot: la unidad mínima del inventario
- El controlador del inventario: generar slots y poblarlos dinámicamente
- Drag and Drop: cuando el inventario deja de parecer una hoja de Excel
- Persistencia en JSON: que los tesoros sigan ahí cuando vuelvas
- Race conditions en Unity: el bug que a veces se ve, hasta que te explota en la cara
- Recoger objetos del mundo: cuando la mochila se conecta por fin con el gameplay
- Pop-ups de recogida: el pequeño detalle que dispara la sensación de calidad
- Un inventario profesional es un extra, es parte del corazón del juego
- Preguntas Frecuentes

Hay un momento en el desarrollo de un videojuego, ya sea en Unity o en cualquier otro motor,  en el que todo cambia. Hasta ese instante, tu personaje se mueve, explora, entra en la ciudad, sale al bosque y parece que el proyecto ya tiene forma. Pero si puede recoger nada, si puede guardar una poción, si puede llevarse una espada o un tesoro, entonces sigue siendo un fantasma bonito con patas.

Y eso, en un RPG, en una aventura top down o en cualquier juego con sensación de progreso, es un problema serio.

La progresión es solo subir de nivel. La progresión también es abrir la mochila y ver cómo se va llenando. Es ordenar tus objetos. Es recordar dónde dejaste esa poción de vida. Es sentir que lo que has encontrado en el mundo realmente te pertenece.

Por eso, ude los saltos más grandes que puedes darle a tu proyecto en Unity es construir un **sistema de inventario de verdad**. No uimprovisado. No uque se rompa al cambiar el tamaño de la interfaz. No uque falle al arrastrar objetos. Siurobusto, escalable y con ese tacto profesional que hace que el juego se sienta vivo.

## La base visual: un inventario que explote al crecer

Ude los errores más comunes al montar un inventario en Unity es colocar las casillas a mano, una por una, ajustando coordenadas de UI como si estuviéramos en el paleolítico del desarrollo de interfaces.

Eso funciona durante cinco minutos. En cuanto decides cambiar el tamaño de los slots, meter una fila adicional o reajustar márgenes, se convierte en un infierno.

La solución elegante pasa por usar **Grid Layout Group**. Con esta componente, el inventario deja de ser una colección rígida de imágenes colocadas a martillazos y pasa a ser una estructura automática de filas y columnas.

La idea es sencilla:

- Crear un contenedor para el inventario.
- Añadirle un **Grid Layout Group**.
- Definir tamaño de celda, espaciado y padding.
- Usar un **prefab de slot** en lugar de duplicar elementos manualmente.

Ese último punto es clave. Si tu slot base está prefabado, puedes reutilizarlo, modificarlo y poblar el inventario dinámicamente sin rehacer toda la interfaz. Eso es lo que separa una UI de prueba de una UI pensada para escalar.

## El slot: la unidad mínima del inventario

Cada casilla del inventario necesita saber una sola cosa importante: **qué objeto contiene ahora mismo**.

Por eso basta con un script sencillo para el slot que mantenga una referencia al objeto actual. Nada más. Sin lógica innecesaria. Sin Update. Sin ruido.

Además, conviene preparar el slot para lo que vendrá después:

- Que sea interactuable.
- Que pueda recibir clics.
- Que sirva como destipara arrastrar y soltar objetos.

Aquí entra otra componente de Unity muy útil: **Canvas Group**. Permite controlar interactividad, transparencia y comportamiento visual durante el drag and drop.

## El controlador del inventario: generar slots y poblarlos dinámicamente

Una vez que tienes el panel del inventario y un prefab de slot, lo correcto es que el sistema genere automáticamente tantas casillas como necesite.

Por ejemplo, si has calculado que caben 24 objetos, tiene sentido duplicar 24 veces el mismo slot a mano. El controlador del inventario puede instanciarlos al arrancar y dejarlos listos en el Grid Layout.

Esto, además, te deja la puerta abierta a algo muy jugoso: **expansiones de mochila**.

Si más adelante quieres que un comerciante venda bolsas nuevas, o que el jugador desbloquee más espacio, solo tienes que aumentar el número de slots. Tu sistema ya está preparado para crecer sin romperse.

## Drag and Drop: cuando el inventario deja de parecer una hoja de Excel

Un inventario donde puedes mover objetos se siente muerto. El jugador quiere organizar sus pociones arriba, los materiales abajo y las cosas valiosas en el sitio que le dé la gana. Si le quitas esa libertad, le quitas control.

Y cuando el jugador pierde control, se desconecta.

Para construir un sistema de **Drag & Drop en Unity**, la mejor opción es apoyarse en las interfaces del sistema de eventos:

- **IBeginDragHandler**
- **IDragHandler**
- **IEndDragHandler**

La lógica general es esta:

1. Al comenzar el arrastre, guardas el slot original.
2. El objeto deja de bloquear raycasts y se vuelve semitransparente.
3. Durante el arrastre, sigue al ratón.
4. Al soltar, detectas si cae sobre un slot vacío o sobre otro objeto.
5. Si hay otro objeto, haces **swap**.
6. Si hay slot válido, devuelves el ítem a su posición original.

El detalle bonito está en centrar siempre el objeto dentro del slot al terminar el movimiento. Parece una tontería, pero ese tipo de ajustes son los que hacen que la interfaz se sienta fina en lugar de torpe.

## Persistencia en JSON: que los tesoros sigan ahí cuando vuelvas

No hay nada más doloroso que guardar la partida, cerrar el juego y descubrir después que el inventario ha desaparecido o que los objetos han cambiado de sitio.

Eso rompe la confianza del jugador al instante.

Si ya tienes un sistema de guardado en JSON para cosas como la posición del personaje o el mapa actual, el siguiente paso lógico es serializar también el contenido del inventario.

¿Qué necesitas guardar de cada objeto?

- **El identificador del ítem**
- **La posición del slot donde está**

Con eso es suficiente para reconstruir el inventario al cargar la partida.

La estrategia buena consiste en definir:

- Una clase **Item** con un ID único.
- Un **diccionario de ítems** que relacione ID con prefab.
- Una clase serializable tipo **InventorySaveData** con itemID y slotIndex.
- Métodos para leer y escribir esta información dentro del guardado general.

Y aquí hay un truco muy elegante: usar **GetSiblingIndex()** para saber qué posición ocupa cada slot respecto a sus hermanos dentro del panel. Así puedes guardar la ubicación exacta sin hacer cálculos raros.

## Race conditions en Unity: el bug que a veces se ve, hasta que te explota en la cara

Cuando tienes varias piezas del sistema dependiendo unas de otras, Unity puede cargarlas en un orden que te convenga. Y eso genera las famosas **race conditions**.

Por ejemplo:

- El diccionario de ítems debe existir antes que el inventario.
- El inventario debe estar listo antes de cargar los datos guardados.
- El sistema de guardado puede reconstruir nada si las dependencias aún están inicializadas.

La solución es simple y profesional: definir el **Script Execution Order** en los ajustes del proyecto.

Primero cargas el diccionario, después el controlador del inventario y finalmente el sistema de guardado. Parece un detalle técnico menor, pero este tipo de decisiones es lo que convierte un proyecto frágil en usólido.

## Recoger objetos del mundo: cuando la mochila se conecta por fin con el gameplay

Un inventario vacío y precioso sigue sin servir de nada si hay objetos en el escenario que puedan recogerse.

Aquí es donde entra **OnTriggerEnter2D**.

La lógica básica es:

- El jugador tiene un script recolector.
- Cuando entra en colisión con un objeto etiquetado como ítem, lo detecta.
- El controlador del inventario intenta añadirlo al primer slot libre.
- Si hay espacio, el objeto se destruye en la escena.
- Si lo hay, se puede mostrar un mensaje de inventario lleno.

Para que esto funcione bien, los objetos del mundo deben estar preparados:

- Con **tag** de ítem.
- Con un **Sprite Renderer** para verse en el escenario.
- Con un **Collider2D** marcado como trigger.

Y, por supuesto, con su información de ítem asociada para que el inventario sepa qué prefab instanciar.

## Pop-ups de recogida: el pequeño detalle que dispara la sensación de calidad

Recoger un objeto y recibir feedback claro es malísimo. El jugador pasa por encima, el ítem desaparece y durante un segundo piensa: “Vale… ¿lo he cogido o no?”

Ahí es donde un sistema de notificaciones cambia por completo la experiencia.

La idea es montar un pequeño contenedor de pop-ups en la interfaz, normalmente en una esquina de la pantalla, y cada vez que se recoge un objeto:

- Se instancia un popup.
- Se muestra el icodel objeto.
- Se muestra su nombre.
- Permanece visible unos segundos.
- Después hace fade out y desaparece.

Para apilar varios mensajes sin caos visual, lo mejor es usar:

- Un **Vertical Layout Group** en el contenedor.
- Una **cola** para gestionar los pop-ups activos.
- Una **corrutina** para esperar, difuminar y destruir.

Esto tiene una consecuencia fantástica: si recoges cinco objetos seguidos, se montan unos sobre otros como un desastre. Se ordenan, se apilan y desaparecen de forma elegante. Y eso hace que recoger loot se sienta bien. Muy bien.

## Un inventario profesional es un extra, es parte del corazón del juego

Cuando unes todas estas piezas, pasa algo importante.

Tu juego deja de ser un mapa por el que caminar y se convierte en un sistema con memoria, con progresión y con interacción real. El jugador puede:

- Recoger objetos en el mundo
- Ver inmediatamente qué ha conseguido
- Ordenar su mochila como quiera
- Guardar la partida sin perder nada
- Volver más tarde y encontrarlo todo exactamente donde lo dejó

Eso ya es terreserio. Eso ya empieza a oler a RPG de verdad.

Y lo mejor es que este sistema te deja preparado para lo siguiente: cofres, consumibles, equipamiento, crafting, vendedores, enemigos con loot y NPCs que interactúan con tu inventario.

Si quieres seguir profundizando en desarrollo de videojuegos, Unity y creación de sistemas profesionales, puedes echar un vistazo a la ruta completa de desarrollo de videojuegos, donde todo este tipo de mecánicas se trabajan con mucho más detalle y con proyectos completos.

Porque al final de eso va esto. De dejar de hacer demos vacías y empezar a construir videojuegos que se sienten vivos.

---

Este artículo forma parte de una serie sobre desarrollo de videojuegos en Unity. Si quieres aprender a crear un juego Top-Down 2D completo, con movimiento, inventario, NPCs, diálogos y una arquitectura escalable, echa un vistazo al curso completo.

## Preguntas Frecuentes

¿Por qué es importante un sistema de inventario en un RPG?

Porque conecta al jugador con la progresión del juego. Permite recoger, guardar y organizar objetos, haciendo que el mundo se sienta persistente y vivo.

¿Qué componente de Unity facilita crear inventarios escalables?

`Grid Layout Group` es la mejor opción para organizar automáticamente slots en filas y columnas sin colocar elementos manualmente.

¿Cómo se implementa el Drag & Drop en Unity?

Usando interfaces del sistema de eventos como `IBeginDragHandler`, `IDragHandler` y `IEndDragHandler`.

¿Qué datos mínimos hay que guardar en un inventario?

Normalmente basta con guardar el ID del objeto y el índice del slot donde está colocado para reconstruir el inventario al cargar la partida.

¿Cómo se recogen objetos del escenario en Unity?

Lo habitual es detectar colisiones con `OnTriggerEnter2D` y añadir el ítem al primer slot libre del inventario.

Please enable JavaScript to view the comments powered by Disqus.

« Volver al Blog

## Artículos relacionados

![Sistemas de UI Pro en Unity: Hotbar, Drag & Drop y minimapas que hacen que tu juego se sienta profesional](https://dropinblog.net/cdn-cgi/image/fit=scale-down,format=auto,width=700/34249715/files/portada-post/sistemas-de-ui-pro-en-unity-hotbar-drag-drop-y-minimapas-que-hacen-que-tu-juego-se-sienta-profesional.png)

## Sistemas de UI Pro en Unity: Hotbar, Drag & Drop y minimapas que hacen que tu juego se sienta profesional

13 minutos

05/07/2026 12:00pm

![Cofres, persistencia y animaciones en Unity: cómo pulir la jugabilidad de un top down 2D](https://dropinblog.net/cdn-cgi/image/fit=scale-down,format=auto,width=700/34249715/files/portada-post/cofres-persistencia-y-animaciones-en-unity-como-pulir-la-jugabilidad-de-un-top-down-2d.png)

## Cofres, persistencia y animaciones en Unity: cómo pulir la jugabilidad de un top down 2D

11 minutos

06/07/2026 12:00pm

![Crea cualquier juego 2D Top Down en Unity: plantilla modular, capas, animaciones y cámara profesional](https://dropinblog.net/cdn-cgi/image/fit=scale-down,format=auto,width=700/34249715/files/portada-post/crea-cualquier-juego-2d-top-down-en-unity-plantilla-modular-capas-animaciones-y-camara-profesional.png)

## Crea cualquier juego 2D Top Down en Unity: plantilla modular, capas, animaciones y cámara profesional

12 minutos

15/04/2026 12:30pm

CURSO DE REGALO

## Un Curso Gratis Para Ti

Nuestro curso de Unity te sale **Gratuit** .

Aprende a crear tu primer videojuego con el motor de Unity en un curso de
más de 15h de vídeo.

Obtener el curso ahora