Está en la página 1de 25

Crear un inventario de Unity: Parte 1:

Modelo de datos básicos


Yone Moreno Jiménez Seguir
14 de septiembre de 2018 · 6 min de lectura

Escribo este artículo para enseñarle cómo hacer un sistema de inventario en


Unity, como se muestra en la siguiente imagen:

Primero creamos un nuevo proyecto en Unity:


Utilizaremos el lienzo de Unity, por lo que sería interesante ver las pestañas
Escena y Juego al mismo tiempo:
Crearemos dos carpetas principales: Scripts y Recursos. Es importante
nombrar el segundo como Recursos, ya que tendrá una relación especial
con nuestros scripts y con la propia Unidad. Recursos internos que creamos:
Sprites> Artículos:

Utilizaremos algunas imágenes gratuitas para los artículos. Puse el proyecto


de Unity y las imágenes dentro de este zip: https://drive.google.com/open?
id=1-o_8kWwfnXYPddgNPFmC8fCLx88h5myD

Nuestras imágenes se verán así:


Ahora necesitamos importar las imágenes, y las colocaremos dentro de la
carpeta Elementos:
Es importante estar seguro acerca de la propiedad de tipo de textura de esas
imágenes, ya que debe ser "Sprite (2D y UI)", porque las usaremos con un
Canvas:
No queremos estirar las imágenes de los botones, queremos tenerlos en
mosaico para que repitan sus patrones y no pierdan calidad al acercar y
modificar píxeles. Entonces seleccionamos el sprite llamado:
buttonLong_blue y vamos al Sprite Editor:
Y vemos una versión ampliada de la imagen con 4 anclas verdes con los
lados. Crearemos un borde para indicar que queremos que las partes
superior e inferior estén en mosaico horizontal, y las partes izquierda y
derecha en mosaico vertical. Escribimos 7 para L, R, B y 7 para T:

Luego presionamos el botón Aplicar con la esquina superior derecha, y


haremos el mismo proceso para el panel_blue:
Luego vamos a crear la clase Item para escribir lo
que consideramos un objeto Item de inventario.
Creemos el script de C #:
Por defecto, el script se verá así:

Y vamos a eliminar los métodos integrados y la palabra clave


MonoBehaviour:
Queremos tener una forma de identificar el artículo para tener una
identificación. Entonces nos gustaría tener un título y una descripción del
texto. Y es necesario tener un icono, por lo que será nuestro Sprite:
Otro dato interesante es una forma de indicar una estadística y obtener su
valor. Por ejemplo, digamos que escribimos "espada", sería interesante
obtener el elemento espada asociado con él:
En nuestro caso tendremos estadísticas, así que digamos que tenemos
Poder, entonces nos gustaría obtener su valor:

Queremos usar una estructura llamada Diccionario donde podemos escribir


una cadena y obtener un valor, por lo que almacenamos pares clave, valor.
El Diccionario tendrá las estadísticas de nombre y mantendrá cadenas,
pares int de la siguiente manera:
De hecho, deseamos tener la capacidad de crear nuestros propios elementos
nuevos, de modo que utilicemos un constructor. Los constructores son
métodos con el mismo nombre que la clase a la que pertenecen:
Entonces, pasamos todas las propiedades del artículo al constructor y ahora
tenemos que asignarlas:

Para asignar el ícono, usamos la carpeta Recursos que creamos


previamente, y tenemos una clase integrada en Unity para eso, donde
escribimos la carpeta para acceder a los íconos de la siguiente manera:
Y vemos la línea en rojo debido a que actualmente estamos diciendo: Tome
un GameObject que se encuentra en "Sprites / Items /" pero sabemos que el
icono es un Sprite, así que escribimos esto:
Entonces, debido a que estamos agarrando los íconos que corresponden al
título del artículo, nos gustaría cambiar el nombre de los sprites que
importamos a la unidad, por ejemplo sword_diamond a Diamond Sword:

Y finalmente queremos tomar las estadísticas:


Además, luego usaremos un constructor para copiar un artículo y crear otro
artículo, por lo que escribimos el siguiente constructor donde tomamos un
artículo y lo copiamos todo:
Y lo segundo que haremos en este artículo es crear
nuestra base de datos. Será un script de C # llamado
ItemDatabase. En el interior deseamos tener una
Lista para almacenar todos nuestros artículos y
hacer un seguimiento de ellos. Además, crearemos
un método para BuildDatabase ():
Aquí llenamos nuestra lista de artículos. Tenga en cuenta que he dejado en
nuestra secuencia de comandos de elementos "icono de Sprite" que no
estamos utilizando en absoluto y que debe eliminarse:

Como sigue:
Entonces, de vuelta en nuestra base de datos de artículos, comenzamos a
llenar nuestro primer artículo:
Y ahora tenemos que crear nuestro diccionario para almacenar las
estadísticas de la espada. Primero creamos un diccionario vacío y dentro
creamos cada fila con llaves y dentro de ellas una cadena para el nombre de
la estadística y un int para el valor de la estadística:
Y podemos crear tantos elementos como queramos, separados por comas:

Y lo último que vamos a escribir en este artículo es una forma de encontrar


elementos. Antes de eso, necesitamos crear el inicio del juego de bases de
datos, así que cuando el juego comienza, se llama al método Awake (), y
luego llamamos a BuildDatabase ():
Entonces encontraremos el elemento por su id, y para eso recorreremos la
lista de elementos usando un método llamado Buscar:
Y también nos gustaría acceder a esos elementos utilizando su título, de la
siguiente manera:

Así que hemos definido nuestro Item y hemos completado nuestra


ItemDatabase. En el siguiente artículo crearemos nuestro Inventario y
podremos actualizar y eliminar elementos con él para que el jugador pueda
conservar todo su equipo.
Gracias por leer.

Programación Tecnología Tecnología Juegos Desarrollo de juegos

Descubre Medium Haz que Medium sea tuyo Hazte miembro


Bienvenido a un lugar donde las palabras Siga todos los temas que le interesan y le Obtenga acceso ilimitado a las mejores
importan. En Medium , las voces enviaremos las mejores historias para historias en Medium , y apoye a los
inteligentes y las ideas originales ocupan usted a su página de inicio y bandeja de escritores mientras lo hace. Solo $ 5 / mes.
un lugar central, sin anuncios a la vista. entrada. Explorar Mejorar
Reloj

Sobre Ayuda Legal

También podría gustarte