Transcripciones
1. 1.01 Introducción: En este curso, vamos
a aprender a desarrollar un sistema de
inventario RPG multijugador utilizando planos en el archivo
Unreal Engine, comenzaremos desde
cero y cubriremos tanto el diseño de la interfaz de usuario como la
programación del inventario. Este curso cubrirá cómo
diseñar la interfaz de usuario para el inventario. Cómo crear categorías de
inventario, cómo crear espacios de inventario, cómo
saquear artículos al inventario, cómo mostrar el artículo
aludido en tu inventario con
icono y texto. Cómo soltar artículos
del inventario para arrastrar artículos en el inventario para cambiar
los espacios de inventario, dos artículos y cómo agregar
efectos de sonido al inventario. Al final de este curso, podrás crear
con confianza tu propio sistema de inventario de
RPG multijugador para implementar en tus proyectos de juego actuales
o futuros. Diseñé este curso para
cualquiera que esté interesado en crear un sistema de inventario para su juego y
Unreal Engine five, utilizando las mejores
prácticas de codificación y código optimizado. Espero que
me acompañes en este curso. Y recuerda que
siempre estoy aquí todo el camino a lo largo del
curso para ayudarte. Y espero verte pronto.
2. 1.02 Descarga del proyecto: Ahora sigamos adelante y
descarguemos los materiales del curso. Puedes encontrar
los materiales de costo en el sitio web o en el correo electrónico
cuando compras el curso. Así que revisa ya sea el
sitio web o el correo electrónico. Vamos a abrir los materiales del
curso. Y dentro de aquí tenemos este proyecto llamado inventario
RPG. Ahora, por lo general si has
tomado mis cursos anteriores, me gusta comenzar con un proyecto en blanco de
Unreal Engine
porque quiero enseñarte todo
desde cero y darte confianza
con el desarrollo de juegos. No obstante, como estamos
haciendo un inventario, necesitamos un juego que ya funcione. Esto es sólo un juego
muy, muy básico. No he hecho mucho. Sigamos adelante y arrastremos esta carpeta de inventario de RPG
al escritorio porque
necesitamos extraerla. Esta es una carpeta zip, por lo que necesitamos
extraer el contenido. Esto va a llevar algún tiempo. Voy a esperar a
que termine aquí. Bien, ahora que ya está hecho, puedo hacer doble clic sobre él. Y dentro de esta carpeta
puedes ver este es el proyecto Unreal Engine con el que
estaremos trabajando. Ahora vamos a seguir adelante
y cerrarlo y vamos a Documentos. Y en lugar de documentos, tenemos algo que se llama
una carpeta de proyectos irreales. Y aquí es donde están todos
tus proyectos anteriores de Unreal
Engine. Si no has hecho ningún proyecto antes,
este estará vacío. Así que dentro de Documents, Unreal
Engine o Unreal Projects, hagamos clic y arrastremos nuestra
carpeta de inventario RPG dentro de aquí. Y cuando lo haces, cuando abres el lanzador de
Epic Games ahora y entras a la biblioteca, dentro de aquí
ya puedes ver que aparece el proyecto de inventario RPG que
acabamos de extraer en la carpeta
Unreal Projects. Ahora estoy usando Unreal
Engine 5.1, 0.1. Pero si tienes 5.1, 0.2 o tres, o 5.2, y así sucesivamente. Las versiones más nuevas, en realidad no
importa. También se puede seguir a lo largo. Hagamos doble clic en este proyecto de
inventario de RPG y lo abramos. Este es el proyecto con el que
estaremos trabajando. Y antes de comenzar
en la siguiente lección, echemos un vistazo a una descripción rápida de
Unreal Engine five.
3. 1.03 Motor unreal 5: Antes de comenzar a
desarrollar el inventario, tomemos una visión general rápida
de Unreal Engine five. Si has tomado mis cursos
anteriores y ya conoces
Unreal Engine five, simplemente
puedes saltarte esta lección
y saltar a la siguiente. Pero si eres nuevo aquí, echemos un vistazo
rápido a cómo se construye
Unreal Engine five. Aquí en el medio es lo
más importante. En mi opinión, esta
es la ventana gráfica. Y en la ventana gráfica se puede
ver cómo se ve el juego. Entonces, dentro de aquí, puedes mantener presionado el botón
derecho del mouse y puedes echar un vistazo alrededor dentro de la ventana gráfica
y ver cómo se ve. Entonces este es el nivel de nivel simple de construido para
esto, para esta lección aquí, también
puedes
moverte manteniendo pulsado el botón derecho del ratón y
haciendo clic en W para avanzar, haciendo clic en S para moverte hacia atrás, haciendo clic en D para moverte
a la derecha y haciendo clic en una para
moverte a la izquierda. Ahora otra vez, recuerda mantener pulsado el botón derecho del ratón
mientras haces clic en W, D, S y a para moverte. Y así es como
navego principalmente por el interior
de la ventana gráfica. Simplemente sostengo el botón derecho
del ratón y presiono estas teclas
aquí para moverme. También puedes mantener presionado el botón derecho
del ratón y hacer clic en e para subir o hacer clic
en la señal para bajar. Pero también se puede hacer es mantener pulsado
el botón izquierdo del ratón. Y cuando haces esto, puedes moverte así. Normalmente no
uso esto y tal vez a veces en mi laptop,
pero generalmente no. También puede mantener pulsado el botón
izquierdo del ratón y el
botón derecho del ratón al mismo tiempo. Y también puedes moverte
así. Lo último es que
puedes acercar y alejar usando la
rueda de desplazamiento del mouse. Así que acercar y alejar el zoom. También puedes otra vez, simplemente
mantén presionado el botón derecho del mouse, haz clic en W para moverte a ese ítem, o hacer clic en S para
alejarte del ítem. Entonces nuevamente, así es principalmente como navego por
dentro de la ventana gráfica, pero puedes simplemente, solo echar un vistazo alrededor del
lado de esos niveles. Aproveche la idea de
moverse por dentro de aquí y vea qué es lo que mejor
se siente para usted. En lugar de la ventana gráfica, tenemos diferentes botones. Entonces aquí arriba, en realidad no demasiado
importante para este curso. Por ejemplo, tenemos la vista en
perspectiva ahora mismo estamos en
la vista de perspectiva. Puedes ver el juego
desde la vista superior. Entonces, si alejas, acercas y alejas usando el botón de la rueda del
mouse, puedes ver así
es como
se ve el juego desde arriba. De nuevo, puedes simplemente dar
click aquí arriba, volver al modo perspectiva. Realmente demasiado importante
para este curso, pero es bueno saber que
tenemos estos botones para
poder ver el juego en diferentes modos de
visualización, por ejemplo, si no
iluminara este mapa, estaría muy oscuro. Y es por ello que
a veces hago clic
aquí arriba y voy al modo apagado. Ahora puedo ver mi nivel
aunque no tenga iluminación. Y cuando enciendo mi juego, hago clic aquí arriba y
vuelvo al modo en vivo. Muy, muy importante. Tenemos
diferentes herramientas aquí arriba. Entonces la primera es
la herramienta de selección. Al hacer clic en él, puede seleccionar diferentes elementos dentro
del puerto de visualización. Aquí al lado tenemos la Herramienta
Mover dando click sobre ella. Ahora cuando haces clic en un elemento, puedes ver estos puntos de pivote. El rojo es el eje x. Y si haces clic en él, puedes mover este
ítem en el eje x. El verde es el eje
y, y el azul es el eje z. Estos son los puntos de pivote. Puedes mover los elementos cuando tengas seleccionada la Herramienta Mover. También puedes moverlos
en dos direcciones
sosteniéndolo aquí
cerca del centro. Y esto, y esta caja aquí, moviéndola a eje a la vez, si solo hago clic en Control
Z para deshacer mi movimiento aquí, y solo para poder volver aquí, también
tenemos la
herramienta de rotación haciendo click sobre ella. Puedes rotar un artículo en tres
grados diferentes así. También puede escalarlos haciendo
clic en la herramienta de escala. Y puedes escalarlo. Voy a dar click, dar
clic en Control Z para simplemente tenerlo aquí arriba
otra vez, así que queda claro. Se puede escalar en estos
tres ejes diferentes. Ahora bien, si quieres
escalarlo de manera uniforme, puedes dar click sobre esta caja
blanca en el medio. Y cuando escales, esto
escalará de manera uniforme. Ok, vuelve a hacer clic en Control Z. Ahora muy importante saber es
que tenemos atajos para estas herramientas ya que
tardaría mucho tiempo si
tienes que hacer click aquí arriba, mover este ítem, dar click aquí de nuevo para
rotarlo y así sucesivamente. Entonces, si haces clic en
Q en tu teclado, tienes la herramienta Seleccionar. Das click en W,
tienes la Herramienta Mover. Si haces clic en E,
tienes la herramienta de rotación. Y si haces clic en son, tienes la herramienta de escala, por ejemplo para este registro por aquí, puedo hacer click en W para moverlo. Puedo dar click en E para rotarlo. Y tal vez lo quiera de
esta manera, como aquí. Y puedo hacer clic en W para
moverlo hacia arriba, como en R2, tal vez escalarlo así, moverlo hacia arriba, y así sucesivamente. Entonces puedes ver que es mucho
más rápido trabajar de esta manera, en lugar de simplemente hacer clic
aquí todo el tiempo trabajando en Control Z. Para volver a poner esto de nuevo, también
tenemos herramientas de ajuste. Entonces por aquí se puede ver
cuando muevo mi artículo, si acabo de mover este bolígrafo, e.g Se
puede ver que se
ajusta a una cuadrícula. Y esto es porque
tienes esto habilitado aquí arriba. Entonces, si haces clic en él
y lo mueves, puedes ver que se mueve sin problemas. Y si vuelvo a hacer clic en él, ya
puedes ver
que es snaps otra vez. También puede hacer clic
en este número y aumentar el ajuste. Entonces ahora puedes ver
cuando lo arrastre,
se ajusta a una cuadrícula mucho más grande y puedes disminuirla de
nuevo si así lo deseas. Entonces estas son las
herramientas de ajuste o el movimiento, o el escalado o la rotación y para
el escalado también. Para que puedas ver si voy a mi herramienta de rotación haciendo clic
en E en el teclado. Puedo girarlo y se
chasquea cada diez grados. Puedo hacer click en él
aquí para deshabilitarlo. Y ahora puedo, puedo
girarlo suavemente así así. Y haciendo clic de nuevo en Control Z. Entonces, estas son las
herramientas de ajuste para la herramienta de movimiento, la herramienta de rotación
y la herramienta de escala. Lo último que tenemos
es la velocidad de la cámara, y esta es la velocidad de
esta cámara en este momento, dentro de esta ventana gráfica, puedes hacer click sobre ella y
disminuir la velocidad. Y ahora se puede ver
que es muy lento. Esto generalmente se usa cuando se
quiere enfocar en objetos
muy pequeños dentro
del nivel para que la cámara
no se mueva demasiado rápido. Si tienes un nivel grande, quieres viajar, puedes aumentar
la velocidad de la cámara. Y ahora puedes ver que me muevo
mucho más rápido en mi nivel. Voy a ponerlo de nuevo a
la velocidad de cámara de cuatro. Aquí arriba tenemos la barra de herramientas. En este momento no
es muy importante. Pero lo más
importante es que podamos hacer clic en este
botón Reproducir para jugar nuestro juego, o haciendo clic en jugar aquí, puedes ver que ahora estoy
jugando a mi juego. Puedo moverme con las teclas W, S, A y D. Así puedo moverme y
mirar a mi alrededor con el ratón. Esto es lo más importante que debes saber
ahora mismo, aquí arriba. Al hacer clic en Escape
para dejar de jugar el juego y haciendo
clic en estos tres botones, podrás elegir cómo
quieres jugar tu juego. Por lo que generalmente comienza por
esta ventana gráfica seleccionada. Entonces, si juego mi juego así, jugué dentro de la ventana gráfica. Lo que me gusta en el modo multijugador. Me gusta jugar en la
nueva ventana del editor porque tengo dos ventanas
abiertas para multijugador, así que me gusta tenerla de esta manera. Vamos a cerrarlo por ahora. Y las
cosas multijugador están aquí abajo. Así que vamos a preocuparnos por eso más
adelante en las lecciones posteriores, a veces tu motor puede quedar mal y puedes intentar
retomar, echa un vistazo aquí en la
configuración tienes algo llamado ajustes de
escalabilidad de motores. Ahora mismo, los míos están puestos a épicos porque mi computadora es rápida. Pero si tienes una computadora
más lenta, puedes cambiarla a baja calidad o calidad media y así sucesivamente. Así que realmente bueno saber
que está ahí a la
derecha aquí tenemos el outliner y el outliner son simplemente artículos que tienes
dentro de tus niveles. Entonces todos estos
artículos que ves aquí están dentro de este nivel
actual. Y si selecciono por ejemplo este taburete aquí,
si hago clic en él, se
puede ver que también selecciona en seleccionarlo aquí
en el outliner. Entonces, sea lo que sea que
selecciones en el nivel, lo
puedes ver aquí
en el outliner. También puedes seleccionar cosas solo hacer clic sobre ellas aquí arriba. Así que ahora puedes ver cuando hago
clic sobre ellos por aquí, también los selecciona
dentro de mi nivel. Ahora bien, esto es útil
para cuando quieras encontrar algo específico, por ejemplo, puedes buscar aquí arriba. Quiero encontrar mi taburete, por ejemplo y es este de aquí abajo. Para esta herramienta, la encontré
aquí, puedo dar click sobre ella. Y éste es el indicado. Cuando tienes un nivel muy grande y no encuentras artículos, puedes buscarlos aquí. Digamos que no
sabías dónde estaba. Como si tuvieras un nivel muy
grande que
seleccionaste y realmente no lo
puedes ver. Puedes hacer click en F en tu teclado y te
llevará allí automáticamente. Además, olvidé
decir si quieres
duplicar o si quieres
duplicar este ítem, puedes sostener Alt en tu teclado y luego
puedes arrastrar aquí. Entonces sosteniendo Alt en el teclado, arrastrando, esto
copiará el ítem. Así que muy útil a veces cuando se quiere
diseñar el nivel. Para que no tengas que arrastrar este
elemento una y otra vez, haciendo clic en él haciendo clic
en Eliminar para eliminarlos, voy a hacer clic en la X aquí
arriba para poder ver
todos los elementos nuevamente. Si quieres organizar tus
artículos aquí en el outliner, siempre
puedes hacer clic
en este ícono de carpeta. Esto creará carpetas
y puedes simplemente hacer clic y arrastrar y soltar estos
elementos dentro de las carpetas. Y puedes organizar
tu, tu outliner. Sólo voy a
arrastrarlo otra vez y quitar este de aquí. A continuación tenemos el panel Detalles. Y los
paneles de detalles simplemente muestran detalles sobre el
elemento seleccionado en la ventana gráfica. Entonces si selecciono este bolígrafo
por aquí, pueden ver, puedo ver diferentes
detalles sobre este bolígrafo. Puedo ver la ubicación
de la misma y el mundo. Puedo ver la rotación
de la misma, la escala. Puedo ver qué
Malla Estática está usando. Una sensación, por ejemplo, haga
clic en este icono aquí. Lo puedes encontrar dentro
del navegador de contenido. Y puedo ver, es ésta. Puedo ver qué
materiales está usando. Información sobre la física, la colisión, etc. Y es diferente para
cada artículo que selecciones. Entonces, si selecciono este, puedo ver diferentes
detalles sobre este artículo, diferentes detalles sobre
este artículo y así sucesivamente. Tan importante,
el panel de detalles es algo que usas todo
el tiempo en el motor. Si hago clic en esto, oye, por ejemplo I. Puedo establecer la ubicación para ello si solo hago clic y arrastre aquí. Entonces, en lugar de usar la herramienta
Mover así, solo
puedo hacer clic y arrastrar sobre estas cajas también
si así lo deseas. Entonces a veces solo
quieres moverte así, y a veces quieres números
específicos. Así que simplemente puedes hacer clic
aquí y escribir por ejemplo 1,400, la ubicación X. Y se puede ver que
pasó por aquí. Y también correcto,
creo que son -1,400. Será por aquí. Entonces -1,400. Se puede ver que
volvió a aquí. Ahora bien, si tienes
números específicos que quieres escribir, puedes escribirlos aquí en lugar de intentar mirarlo aquí. Y por último, tenemos
el Navegador de Contenido. Por lo general esto no está
disponible o esto no se muestra cuando abres Unreal Engine five
por primera vez. Entonces puedo hacer clic derecho
y podemos cerrar. Y así es como suele
parecer cuando abres
Unreal Engine five, por primera vez, tienes el dibujo de contenido en lugar
del navegador de contenido. Al hacer clic en él, puedes ver, puedes ver esta misma
pestaña que vimos antes, pero la fila de contenido
desaparece cada vez que haces clic dentro
de esta ventana gráfica. Entonces dando click en el contenido ROA, si quiero hacer click
en algo aquí, puedes ver que desaparece
y me parece un poco molesto porque estoy acostumbrado
a Unreal Engine cuatro, donde está arriba todo el tiempo. Entonces lo que puedes hacer es hacer
clic en este contenido ROA, y hacer clic en pato en maquetación. Y esto se mantendrá
alto todo el tiempo. Y muy, muy sencillo. El navegador de contenido
solo contiene todos los archivos que
tienes para el juego. Entonces, por ejemplo, para los activos, estas son en realidad las carpetas que
he creado para hacer este nivel. Entonces, por ejemplo, aquí en artículos, vamos a usar esto más adelante para crear artículos
para el inventario. Y solo puedes hacer clic y
arrastrar esto al nivel. Y se puede ver cómo
se ven. Cancelado, haga doble clic en
ellos y véalos dentro de este visor también. Entonces estos son todos
los archivos que tienes, estas son todas las animaciones. Simplemente sigamos adelante
y eliminemos a todos
los que crean
carpetas dentro de aquí, podemos hacer clic derecho y
hacer una nueva carpeta. También puedes cambiar el color de una carpeta si haces clic en ella, clic derecho y vas a establecer color. Esto es genial para
cuando quieres organizar tus archivos y
quieres verlos rápidamente. Simplemente puedes darles colores. Yo sólo voy a borrar
esta por ahora. Para agregar elementos dentro
del navegador de contenido, puede hacer clic con el botón derecho aquí, o puede hacer clic
en el botón Agregar. Normalmente hago clic,
clic con el botón derecho sobre aquí, y puedes agregar planos. Esto lo haremos mucho para
programar nuestro inventario. También utilizaremos la interfaz de
usuario para crear la interfaz de usuario para el inventario. Y tienes por ejemplo animación que tienes,
puedes crear un nuevo nivel, leer una nueva carpeta también. Por aquí, puedes
ver que podemos crear muchas cosas y se
ve abrumador. Pero probablemente
no estarás usando muchas de estas cosas
para empezar. Así que en realidad no tienes que
saber todo dentro de aquí. Enfócate en lo que es muy importante. Entonces en este curso, solo
estamos enfocados en crear
un inventario por ahora. Al crear el inventario, vamos a usar
muchas de estas cosas. Vamos a usar muchos de los planos, azules, nodos
Blueprint. Y vamos a usar
la interfaz de usuario. Vamos a usar los sonidos para efectos de sonido y así sucesivamente. Entonces en este curso vas a estar aprendiendo muchas de
estas cosas por aquí. Así que no te preocupes por
eso por ahora y solo echa un
vistazo rápido por aquí. En este motor,
puedes simplemente moverte, click en las cosas,
moverlas. Realmente no es demasiado importante si destruyes cosas dentro
de este nivel. Y a veces cuando te
dice que
tienes iluminación que
necesita ser reconstruida, puedes hacer clic en esta,
construir y construir todos los niveles, y esto
construirá automáticamente toda la iluminación para ti. Ahora puede tomar algún tiempo si
tu computadora es muy lenta, pero puedes ver el
progreso aquí abajo. Y cuando termine de
construir la iluminación, puedes seguir adelante
y cerrarla. Y sigamos adelante y hagamos
clic en Archivo y Guardar todo. Y pasemos
a la siguiente lección.
4. 1.04 Lo que el proyecto ya contiene: Antes de comenzar, echemos un
vistazo a lo que ya contiene
este proyecto. Ahora he seguido adelante y diseñé este juego rápido para ti y en
realidad no contiene mucho, pero necesitábamos algo para empezar a
programar el inventario. Entonces por aquí en
la carpeta de activos, tengo algunos artículos. Estos artículos los usaremos
para crear artículos que podamos perder nuestro inventario y colocarlos dentro
de nuestro inventario. Ahora vamos a eliminarlo por ahora. Te voy a enseñar
a hacer artículos y a verlos también. Y el jugador, tenemos las
diferentes animaciones y puedes ver si haces clic
en jugar para el juego, y ya tenemos un conjunto de Blueprint de
Animación. Y para el terreno, solo
tengo las texturas
para este terreno. También incluí efectos de sonido para ti que podemos usar
cuando aludimos artículos, abrimos el inventario y así sucesivamente. Y en los planos,
muy básicos. He creado un modo de juego. El modo está vacío, y por lo general esta vista
aparece si
no tienes nada dentro de
la clase blueprint. Entonces tienes que dar click aquí arriba
abrir editor de planos completo. Y así es como se ve. Vacío, no he tocado
realmente nada. Yo solo, pero el
controlador del jugador y la Clase de
Peón por defecto y abriendo
el controlador del jugador, esto también está vacío. Tenemos al jugador, al jugador aquí
en vez del jugador. Muy básico. Acabo de agregar el nuevo
sistema de movimientos para este jugador. Así que solo moviéndonos de un
lado a otro y mirando
a su alrededor con nuestro ratón. Así que en realidad no pasa nada
loco aquí. Entonces tenemos el plano de
animación para la animación
para el jugador. Y nuevamente,
aquí tenemos el movimiento para caminar hacia adelante, atrás, izquierda y derecha. Y tenemos los mapas. Este es el mapa en el que
nos encontramos actualmente. Tenemos algunos artículos de Marketplace. Yo uso este fantástico pack de
pueblo. Lo puedes encontrar en el
mercado de forma gratuita. Y esto solo se usa
para diseñar este nivel. Tenemos el cielo de las mercancías, que es este tipo de aquí arriba. Acabo de agregar niebla así que realmente no
podemos
verla solo para hacer este nivel
un poco más interesante. Y luego tenemos
estos personajes. También puedes encontrarlos
en el mercado. Cosas muy, muy chulas. Los uso a veces también para crear prototipos
de algunos de mis otros juegos. Entonces, si estoy haciendo un juego de
disparos y así
sucesivamente, así que vamos a eliminar
este por ahora. Entonces esto es lo que
tengo dentro de aquí. Y el último es el UI. Vamos a utilizar esto
para diseñar nuestro inventario. Tenemos algunos botones aquí. Por cierto, si tienes una vista
muy grande como esta, tengo un tenedor, un menor, por lo que se nota muy
grande así. Puede hacer clic en Configuración
y tamaño de miniatura. Puedo hacerlo pequeño, por ejemplo y se verá así. Yo solo voy a usar el medio para que lo veas
mejor para este curso. También incluí una fuente aquí, así que puedes usarla para la interfaz de usuario. Tengo algunos iconos que podemos usar cuando eluimos
el plátano, por ejemplo podemos agregar este icono
al inventario. Y luego tenemos las imágenes, que es básicamente
la ranura de inventario. Entonces estos son todos los artículos. Juego muy básico, solo
podemos andar por ahí, eso es lo único que
podemos hacer ahora mismo. Y mira a tu alrededor. Y te puedes imaginar si
tienes este juego de un amigo o alguien que
encontraste en Reddit o en
algún otro lugar. Y solo te pide que pongas
un inventario en su juego. Entonces esto es lo que
vamos a hacer.
5. 2.01 Introducción a los planos de Widget: Antes de comenzar a
diseñar la interfaz de usuario, sigamos adelante y echemos un
vistazo a lo que es un Widget Blueprint. Así que pasemos
a la carpeta UI. Hagamos clic aquí. Y vamos a la Interfaz de Usuario. Se trata de todos los elementos de la interfaz de
usuario. Aquí podemos seleccionar
el Plano Widget. Vamos a crear uno aquí. Selecciona widgets de usuario, y sigue
adelante y llámalo, normalmente lo llamo wb o
¿blueprint como prefijo? Y entonces llamemos a
éste principal. Entonces la interfaz de usuario principal, esta
se mostrará como
nuestra interfaz de usuario principal. Más tarde. Hagamos doble clic sobre él. Y aquí ves así es como se ve un Plano Widget. Entonces Widget Blueprint,
puedes diseñar la interfaz de usuario aquí. Tienes un diseñador y
luego tienes una gráfica. Entonces en el diseñador,
diseñas la interfaz de usuario. Y en la gráfica, programas la funcionalidad de la interfaz de usuario que has diseñado. Dentro de aquí
puedes ver que tienes un pellet y en lugar
de la paleta, puedes agregar diferentes
cosas a tu plano,
por ejemplo, puedes agregar un botón. Puedes hacer clic
y arrastrarlo aquí. momento se puede ver que
el botón es enorme, y esto es porque voy
a dar click en Conjuntos de control. Y esto se debe a que
solemos agregar un lienzo
para empezar. Entonces, si buscas Canvas
y éste realmente agregamos, antes de agregar algo Canvas, puedes
arrastrarlo dentro de aquí o puedes hacer clic y arrastrarlo
y soltarlo por aquí. Entonces, si acabo de borrar
este de aquí, puedo hacer clic y
arrastrarlo hacia aquí en su lugar. Entonces puedes
arrastrarlos aquí, aquí. Así que volvamos y
tomemos el botón e.g Puedes agregarlo al lienzo, o puedes volver a agregar el
botón así, donde lo arrastras aquí abajo en la jerarquía,
algo así. Y se puede ver que se le
sumó aquí arriba. Y siempre puedes
hacer click sobre él y puedes arrastrarlo alrededor del lienzo. También puedes cambiar
la posición
igual que antes de que tengamos
un panel de detalles. Recuerda que te lo dije antes, si haces clic en elementos
en tu viewport, tienes un panel de detalles. Tienes eso también dentro
del Plano Widget. Entonces tienes detalles
sobre este botón. Se puede ver la posición. También puedes cambiar la
posición aquí. O puedes arrastrarlo por ahí. Si quieres arrastrarlo, tal vez quieras poner algo,
un número específico, por ejemplo podemos escribir 1800 y
tal vez esto es lo que nos gusta. También puedes hacer clic en él
y cambiarle el tamaño. Otra vez. También puedes redimensionarlo
aquí si lo deseas. Todos los detalles para el botón. Nuevamente, si solo
agregas otros artículos, puedes ver que tienen
diferentes detalles. Entonces por ejemplo si tomo el texto aquí, se
puede ver en el texto puedo
editar el color del texto. Puedo editar la fuente. Entonces, ¿qué tipo de letra voy a usar? He incluido una fuente para ti. Recuerda, en la carpeta UI, fuentes, he incluido
esta fuente para ti. Así que también puedes
seleccionarlo aquí en la familia de fuentes. Aquí abajo tenemos animación de interfaz de usuario. Podríamos meternos en ello. No estoy muy segura, pero en estos momentos no
es demasiado importante. Entonces voy a
hacer clic derecho aquí y dar
clic en Cerrar porque realmente
no lo necesitamos. Y lo último
que es importante aquí es que aquí arriba puedes
hacer clic en compilar. Dice sucio necesita
ser recompilado. Y lo que esto hace es que solo comprueba si tienes algún
error en tu código. Y ahora mismo
realmente no tenemos ningún código, así que aquí va a quedar limpio. Pero si lo hiciéramos, te
avisaría y te diría
que algo anda mal. Así que puedes intentar jugar por aquí e intentar
tomar una imagen, por ejemplo, colocarla aquí,
puedes volver a escalarla. Puedes ver qué detalles
tienes para una imagen, por ejemplo, el pincel. Se puede
escuchar en la imagen, se
puede cambiar la imagen, por ejemplo esta hamburguesa aquí. Y ahora puedes ver
puedes cambiar el tamaño de la misma. Y también puedes cambiar
el tamaño del mismo aquí, hacer clic en estas pequeñas
flechas solo significa que querías restablecer
al valor predeterminado.
Entonces haciendo clic en él. Y el valor predeterminado es 15150. Y se puede ver cuando
cambio el tamaño aquí, realmente no se ve afectado. Y esto se debe a
que en realidad estás re-escalando toda la
imagen así. Tienes que hacer clic en
Tamaño al contenido si
deseas que surta efecto
en este aquí. Entonces, mirando nuestro restablecimiento
al valor predeterminado, este es el tamaño de valor predeterminado para esta hamburguesa. Sí,
y eso fue todo. Esta es una muy, muy sencilla. Entonces en el diseñador diseñará
la interfaz de usuario en la siguiente lección. Y en la gráfica,
codificamos la
funcionalidad de la interfaz de usuario. Pero por ahora, centrémonos
en diseñar la interfaz de usuario. Entonces, antes de terminar esta lección, voy a eliminar todas estas cosas,
incluyendo el Canvas. Vamos a compilar, vamos a
guardar, guardar todo aquí y cerrarlo. Y pasemos
a la siguiente lección.
6. 2.02 Diseña la interfaz principal: Bien, ahora estamos
listos para diseñar la interfaz de usuario principal si no has seguido en la lección anterior. Adelante. En la carpeta UI, puede hacer clic con el botón derecho en la interfaz de
usuario y crear un Blueprint Widget. Y este es el Widget Blueprint para la interfaz de usuario principal que ya
creamos. Hagamos doble clic en él.
Y antes de comenzar, quiero mostrarles lo
que vamos a hacer. Así que siempre es agradable
ver qué vamos a
hacer antes de que lo hagas. Para que podamos visualizarlo. Aquí en el menú I. Sólo
vamos a
tener este botón. Este es el
botón de inventario en el que se
puede hacer clic y se
abre el inventario. Así que muy, muy sencillo. Esto es lo que estamos
tratando de hacer. Entonces volvamos
a nuestro punto de vista aquí. Y como te dije antes, tenemos que agregar un Canvas
antes de agregar nada. Entonces aquí arriba, si
buscas panel de lienzo, puedes arrastrarlo a la
jerarquía aquí abajo. Y ahora hemos agregado
el panel de lona para el botón, para
el botón de inventario. Obviamente necesitamos el botón UI aquí para que podamos
arrastrarlo hasta aquí. Pero como viste antes, necesitamos un icono en la
parte superior del botón. Y es por ello que usamos
algo llamado superposición. Si buscas
Overlay o
también puedes encontrarlos aquí abajo. Para que puedas dar click en
estas flechas para encontrar artículos que puedas
agregar a tu Lienzo. Entonces este es el
que ahora mismo queremos agregar
llamado el overlay, o puedes
buscarlo aquí arriba. Entonces, si no sabes
todas estas cosas,
puede ser difícil de entender, pero solo hazlo una, dos o tres veces. Y es muy fácil porque
haces esto todo el tiempo. Entonces como necesitamos un botón
y un icono encima de él, necesitamos algo
llamado superposición. Así que vamos a, déjame borrar
este botón de nuevo. Y voy a arrastrar esta
superposición al lienzo. Y por
lo general se suman aquí arriba. Y para este ahora, agreguemos un botón. Y luego agregamos una imagen. Este es el ícono Eso va
a estar en la parte superior del botón. Ahora déjame
arrastrarlo aquí solo para que podamos ver cómo se ve. Entonces ahora mismo, vamos a
hacer clic en el botón y vamos a
diseñarlo. Si quieres. Por ahora puedes desactivar
la imagen. Así que puedes dar click
sobre este ojo aquí. Esto solo resalta
la imagen por ahora. Vamos a hacer clic en el botón
y el estilo por aquí, cambiemos cómo se ve. He incluido para
ti al final, los botones en la carpeta de botones de la
interfaz de usuario. He incluido botones
para ti que podemos usar. En lo normal. Sigamos
adelante y cambiemos la imagen a este
botón, raíz cuadrada azul. Para el tamaño, podemos dar
click sobre esta flecha para redimensionarla a lo que sea
la normal. En este momento se puede ver que
estoy zoom más siete. Por lo que es muy
importante saber esto. Estoy zoom más siete, así que así no
es como va a parecer cuando juegue el juego. Se va a quedar así. Entonces, si me alejo, así es como
va a quedar. Así que uno a uno aquí. Ahora, por lo general cuando
haces un botón, el color es gris
por alguna razón. No sé por qué. Entonces
haciendo clic en este tinte aquí, y cambiémoslo a blanco. Entonces el verdadero color
está apareciendo aquí. Y en lugar de hacer una caja
redonda alrededor de dólares
te dan una ventaja extraña alrededor de tu botón y no
quiero eso. Quiero ir aquí, haga clic en dólares en su lugar. Y puedes ver cuando
reescalas la imagen, se ve muy raro. Pero si usas una caja y
estableces el margen en 0.5, en realidad
puedes volver a escalarlo sin perder detalle
de este botón. Para que veas puedo reescalarlo. Y se ve bien. Si no usaste
el margen de 0.5, se verá así. Entonces margen 0.5 y se ve bien. Bien, así que haciendo clic en él aquí, vamos a pasar al Hubbard y vamos a seleccionar el botón,
cuadrado azul flotaba. Y para éste, en realidad lo que se puede
hacer algo muy rápido. Yo uso esto cuando
desarrollo mi juego. Puedo cambiar y
hacer clic derecho aquí arriba, o simplemente puede hacer clic derecho
y hacer clic en Copiar. Normalmente solo presiono Shift
y el botón derecho del mouse. Así que Mayús
botón derecho del ratón para copiar esto. Y puedes desplazar botón
izquierdo del ratón para
pegarlo encima de aquí. Y encima de aquí
se puede ver que es muy rápido. Entonces tienes toda la información. Y entonces solo recuerda
cambiar estos dos de nuevo. Aquí. Hay 12 de descanso. Nuevamente, recuerda
cambiar el tamaño aquí. Creo que para éste, voy a traer a
usar algo así como 90. Este es justo como predeterminado, así que solo se incumplió
en 68 y este 190. Voy a hacer clic de nuevo. Voy a mantener presionada la
tecla Mayús y volver a hacer clic aquí para copiarla y mantener presionada tecla Mayús y hacer clic con el botón izquierdo para pegarla encima de
estos tamaños de imagen. Ahora bien, tal vez te preguntes por qué
no lo escala aquí en la x. Y esto es
porque escalará automáticamente en un poco
cuando agreguemos la imagen. Por ahora, vamos a compilar
y deja este botón. Pasemos a la imagen. Entonces dando click en la imagen, dando click en este icono
para ver la imagen. Y para la imagen, necesitamos
encontrar el icono de la mochila. Entonces es esto de aquí, o puedes
buscarlo aquí arriba, seleccionando el ícono de la mochila. Y cuando diseñé la interfaz de usuario, vi que 100 por 100 era de
gran tamaño para esto. Sólo voy a
cambiar este a 100 por 100 y tamaño de imagen. Puedes ver si hago clic en
este botón predeterminado, el predeterminado es 150. Voy a
bajarlo a 100 por 100. Y en lugar de hacer
esta superposición así, en lugar de volver a
escalarla así, voy a hacer clic
en Tamaño al contenido. Entonces esta superposición ahora está dimensionando a cualquier contenido que
haya dentro de ella. Entonces este botón de aquí, en vez de tenerlo
aquí arriba en esta esquina, voy a alinear
horizontalmente esto. Entonces va a llenar toda
la superposición. Este botón ahora está llenando toda
la superposición. Esto es lo que significa. Y voy a alinearlo
aquí abajo verticalmente en la parte inferior. Entonces está en la
parte inferior de la imagen. Sólo voy a alinearlo
al centro del botón. Al hacer clic en la
imagen, hacer clic en alineación
central para la
vertical y la horizontal. Entonces es justo en
medio de esta superposición. Ahora tenemos que empujar
esta imagen hacia arriba. Puedes usar la traducción
aquí abajo en la transformación, o simplemente voy a usar
el relleno aquí arriba. Entonces, para el relleno
en la parte inferior, esto significa que estás empujando la
imagen de abajo hacia arriba. Entonces voy a
empujarla por 15 pixeles. Y pueden ver que empujo la imagen aquí
arriba y se ve
genial ahora mismo. Voy a empujarla por 12 a la izquierda y por
12 a la derecha. Entonces le damos más espacio
aquí para este botón, así que ahora se ve
mucho mejor. Ahora bien, lo último
que tenemos que hacer, así que en vez de tener este
botón aquí en el medio, lo que
podemos hacer es colocarlo aquí abajo. Entonces lo que puedes hacer aquí
es que veas si pones la posición a 00 por aquí, ves que se ajusta a
esta esquina de aquí arriba, pero quiero que esté aquí
abajo en mi pantalla. No quiero que mis botones
aparezcan aquí arriba. Quiero que mi botón
esté aquí abajo. Lo que puedes hacer aquí es que
puedes cambiar el punto de anclaje. Entonces, al hacer clic en tu superposición, tienes algo
llamado anclas. Pinchando aquí. Y puedes cambiar el punto de
anclaje a aquí abajo. El punto de anclaje significa es, digamos que has arrastrado este botón aquí
abajo así, y se ve bien. Y no vas a cambiar
el punto de anclaje. Entonces, lo que esto significa es cuando
tu ventana de juego se hace más pequeña. Entonces tomemos esto aquí. Y digamos que el
botón está aquí. Si tu ventana de juego
se hace más pequeña así, si alguien cambia el tamaño de tu juego, el botón va a volar
hacia arriba hasta esta esquina. Entonces, si tu pantalla es
muy pequeña así, el botón en realidad está
aquí arriba y no aquí abajo. Entonces no se ve correcto. Y esto es lo que significa
anclar. Solo le estás diciendo al juego dónde está tu botón inicialmente. Voy a anclarlo aquí abajo en vez de poner una
posición a 00. Se puede ver que
ahora está fuera de la pantalla. Y para hacerlo dentro
de la pantalla, hay
que usar esta
llamada alineación. Y se puede ver que es cero
o uno. Puedes ver si escribo uno aquí, 0.5, es el medio. Esta es la x, esta es la y. y 0.2 y así sucesivamente. Para que veas si escribo una, empujo aquí. Y nuevamente, alineación para la y, hay que ponerlo a
uno también para empujarlo dentro de esta ventana para que pueda jugar
con la alineación. Usualmente usamos 00.5 para
ponerlo en el medio o uno. Lo ponemos aquí así. Bien, entonces en vez de
tenerlo directamente aquí a la pantalla, quiero darle un
poco más de espacio sitios. Entonces voy a dar click en la posición de
superposición para el x -35 y posicionado
para el y -35. Ahora, tenemos un poco más de
espacio aquí a un lado, así que es una locura
sujetando directamente aquí a la pantalla. Bien, vamos a compilar. Y lo último que puedes
hacer, muy buena práctica. Puedes ver si
vas a la gráfica, puedes ver que se llama
botón e imagen. Estas son las variables
que se han creado porque has
diseñado esta interfaz de usuario aquí. Y se puede ver que estos
son los nombres para ellos. También están apareciendo como
variables en tu código. Sin embargo, es muy mala práctica
dejarlos así porque si tienes varios
botones como este, por ejemplo, realmente no
sé
cuál es cuál. ejemplo, si tienes un
botón para inventario, un botón para tus habilidades, estadísticas y lo que sea,
realmente no sabes qué es si se
llaman así. Entonces, permítanme borrar todos esos. Y por cierto, si quieres
saber cómo lo dupliqué, simplemente
puedes hacer clic
derecho y hacer clic Duplicar o hacer clic en Control D. Bien, así que cambiemos
el nombre aquí. Puedes dar click en F2 en tu teclado dando click
en este aspecto F2. Y lo voy a llamar
btn para botón. Y llamémoslo inventario. Lo mismo para la
imagen, inventario de imágenes y
para la superposición. Ove para Overlay, y
llámalo inventario. Bien, así que ahora hemos
terminado con la interfaz de usuario principal. Voy a ir un
poco más rápido en los otros planos de widgets. Pero ahora ya sabes
lo básico y
cómo crear algo muy sencillo. Guardemos todo,
cerremos esto y pasemos a la siguiente lección.
7. 2.03 Diseña los botones de la categoría de inventario: Ahora diseñemos el botón
de categoría de inventario aquí en la carpeta UI. Nuevamente, hagamos clic con el botón derecho en la interfaz de
usuario. Hacer un nuevo plano de widget. Utilice o seleccione
el widget de usuario. Y llamemos a esta categoría
de inventario, así. Ahora vamos dentro de ella aquí. Y al igual que antes, recuerda que tenemos que añadir un Canvas antes de hacer algo
dentro de aquí. Así que vamos a arrastrar este panel de
lienzo y editar. Y ahora podemos empezar a
diseñar la categoría. Entonces para la categoría, de nuevo, quiero mostrarles lo que
vamos a hacer. Vamos a hacer esto. Vamos a diseñar
este botón aquí. Este icono se cambiará dependiendo de qué
categoría tengamos, pero así es como se ve. Muy, muy sencillo. Otra vez, volvamos aquí. Vamos a agregar una superposición. Al igual que antes necesitamos un botón con un
icono encima de él. Y sólo voy a agregar una
superposición dentro de ésta. Y
te voy a mostrar por qué en un rato. Es un poco
confuso ahora mismo. Así que busquemos de
nuevo el botón y agréguelo a
esta superposición aquí. Y busquemos la imagen
y la agreguemos a la superposición. Justo como antes. Lo extra es que solo
tenemos esta superposición aquí arriba
y te voy a mostrar por qué. Entonces, para los botones de categoría, realmente no
necesitamos todo
el lienzo, como
lo hicimos
para la interfaz de usuario principal. Así que recuerda para el
menú que estaba usando todo
este Canvas y estamos
agregando este botón aquí abajo, que están jugando menú
o la interfaz de usuario principal. Entonces te puedes imaginar si
estuvieras jugando el juego, el botón está aquí abajo, pero qué categoría
realmente no necesitamos todo el Canvas. Entonces podemos dar click en
el lienzo aquí, o en realidad simplemente subir aquí y la pantalla de relleno y seleccionar
esta llamada deseada. Realmente no necesitamos todo
el espacio. Solo necesitamos lo que
hayamos diseñado aquí abajo. Entonces, al hacer clic nuevamente en el botón, cambiemos estos ajustes. Pero lo puedes hacer es que puedes ir a la interfaz de usuario principal si quieres
hacer click en este botón. Y nuevamente, mantén presionada la tecla Mayús
y haz clic derecho para copiar. Y mantenga presionada la tecla Mayús y
haga clic con el botón izquierdo para pegar. Entonces sólo voy a
pegar esta información. Y para este tamaño aquí, sólo
voy a
hacerlo uno a uno. Ver por uno a veinte, este
es el tamaño que quiero. Y se puede ver que no está cambiando
realmente en la y aquí. Esto es, recuerda antes te
dije que puedes hacer clic en esta superposición y hacer clic
en Tamaño a los contenidos, así tamaños a cualquier
tamaño que sea el contenido. Y para éste sólo
voy a hacerlo 12120. Solo presta atención
nuevamente al zoom aquí. Así es como se
ve uno por uno. Esto es lo que vamos a estar
buscando, no así. Bien, así que sigamos adelante y
copiemos el tamaño de la imagen
pegada aquí abajo. Y dando click en esta imagen, quiero alinearla en el
centro de este botón. Entonces haciendo clic en estos alineación central, horizontal y
vertical. Y para la imagen, voy a volver
a usar la mochila. Realmente no importa lo que estés usando
aquí porque
vas a cambiar esta imagen dependiendo de qué
categoría tengas. Más adelante vamos a, por ejemplo, crear una categoría para categoría grado
alimenticio
para consumibles, y crear una
categoría o armas. Entonces, dependiendo de cuál sea
la categoría, vamos a cambiar
esta imagen para que realmente
no importe lo
que hayas seleccionado aquí. Yo sólo voy a hacer
el tamaño de la imagen 85, 80. Justo como antes. Recuerda que empujamos hacia arriba el
ícono aquí en el menú. Entonces vamos a hacer lo
mismo por el fondo. Yo sólo voy a
escribir seis aquí. Simplemente puedes probarlo. Puedes escribir 1018. Mira lo que te funciona, pero seis funcionaron para mí y
para la izquierda y la derecha, sólo
voy a escribir de nuevo
12 por 12, así como esto. Entonces por si acaso el botón de
alguna manera se vuelve muy pequeño, todavía
tengo algo de espacio aquí. Entonces creo que esto fue todo. Así que vamos a tomarlo porque
lo tenemos todo y todo se ve bien. Vamos a compilar y
guardar todo. Lo último que hay que
cambiar es antes de que lo olvidemos, está aquí en la visibilidad,
la visibilidad. Qué es esto. Ahora cuando
juegues al juego y quieras hacer clic en este
botón detrás de
esta imagen, esta imagen va a
bloquear tu botón y no
vas a
poder presionarlo. Esto se debe a que la
visibilidad está establecida en Visible para esta imagen. Entonces, a lo que necesitas
cambiarlo es a none hit comprobable. Lo que dice aquí en la descripción del
tooltip, visible pero no golpeado comprobable, lo que significa que no puede
interactuar con el cursor. Y esto es lo que queremos, es solo una imagen para
mostrarte que este es el botón para la categoría, o en este caso para el
inventario aquí en el menú I. Así que tenemos que hacer lo
mismo aquí. Entonces haciendo clic en la interfaz de usuario principal, cambiando la divisibilidad
a festival no exitoso. Así que ahora podemos dar click a través de
esta imagen y podemos presionar
el botón aunque esta
imagen esté delante de ella. Así que vamos a compilar. Acuérdate de guardar todo. Justo como antes. Cambiemos los
nombres aquí, botón, categoría y categoría de imagen
y superpongamos aquí, categoría. Bien, entonces la razón por la que
agregué esta superposición aquí, antes que nada, cambiemos el punto de
anclaje al medio. Entonces voy a cambiar el punto de
anclaje al medio. Y recuerda si escribes ceros, cero para la posición puedes
ver que ancla así. Si recuerdas de
la lección anterior, tienes que cambiar
la alineación. Entonces te lo dije antes de que usemos
00.5 o 1.0. 0.5 es la
correcta si queremos que se
quede en el medio. Entonces 0.50, 0.5, y
se puede ver mi posición 00. Ahora el botón aquí está en
el medio para esta superposición. Por qué creé dos de ellos es porque ahora aquí en
la segunda superposición, puedo usar este relleno si no
tenías que superposiciones. Imagina si solo
tienes este, probablemente no tengas relleno. Si esto no es como un niño. Puedes ver que esta superposición
es hijo de esta superposición. Y para los niños, podemos
usar este acolchado aquí. Y estamos haciendo este acolchado. Sólo escribamos cinco por ahora, voy a escribir cinco. Y esto solo le da
cinco tanto en la izquierda, arriba, derecha, e inferior. Entonces, la razón por la que hago esto es más tarde cuando
creamos las categorías dinámicamente es algún espaciado
entre las categorías. Como si, imagina si tienes
cinco categorías aquí abajo. Aquí hay algo de espaciamiento entre los botones. Si no tuvieras el espaciado, estarían uno
encima del otro. Si quieres eliminar
estas líneas discontinuas, por cierto, un truco rápido, simplemente
puedes hacer click
arriba aquí y podrás ver cómo se ve
sin todas estas líneas. Bien, vamos a guardar todo lo
que fue para aquí. Vamos a
cerrarlo, guardarlo todo, y pasemos
a la siguiente lección.
8. 2.04 Diseña las ranuras de inventario: Ahora diseñemos
las ranuras de inventario. Así que vamos a hacer clic en la interfaz de usuario. Hagamos clic con el botón derecho aquí en la interfaz de
usuario y creemos planos de widgets
como widget de usuario. Así que lo mismo que
hemos estado haciendo hasta ahora. Bueno, ésta, las ranuras de inventario. Entonces estas son las ranuras
donde los artículos se
mostrarán al hacer clic
en esta ranura de inventario. Al igual que antes, hay
que tener un Canvas antes de que
podamos hacer cualquier cosa. Entonces agregando un lienzo subiendo
aquí y la pantalla de relleno, seleccionando deseada, igual que lo que hicimos
para la categoría. Entonces dentro de aquí ahora
podemos agregar una superposición, y voy a
agregar otra superposición dentro de ella para que podamos poner algo de relleno igual
que lo que hicimos para la categoría. Y voy a agregar un
botón, en realidad solo imagen. Realmente no
necesitamos un botón aquí. Voy a agregar una imagen
dentro de esta superposición. Y esta imagen va
a ser el lodo. Entonces, si solo bajamos aquí, tenemos esta llamada ranuras de
inventario, o esta ranura de inventario. Voy a escuchar en el sorteo como seleccionar dólares y escribir
el margen a 0.5, solo para que podamos escalarlo
y no se vea raro. Entonces, si lo tienes a
imagen por defecto, puedes ver que perderás calidad. Lo estamos cambiando a la
escritura de Bach 0.5 en el margen, podemos reescalarlo
sin perder calidad. Voy a hacer clic en esta
superposición aquí y otra vez, seleccionar tamaño al contenido. Y para esta imagen aquí, para la ranura de inventario, sólo
voy a
hacerla 90 por 90 en el tamaño. Entonces se ve así. Y para la alineación
en vez de alinear, realmente no
importa en este caso, pero solo para que esté más limpia, voy a alinearse
horizontal y verticalmente. Entonces todo el asunto
aquí para esta superposición, quiero que se quede en el centro. Entonces nuevamente, el
punto de anclaje para el centro, alineación 0.50, 0.5, y el tamaño o
posición a cero. Por cero. Se queda en el centro. Y voy aquí en el overlay otra vez,
dale un poco de relleno. Y igual que antes, sólo le
voy a dar una
maridaje de cinco. Entonces tenemos espacios entre
las ranuras de inventario. Y esto quedará mucho más
claro cuando realmente
creamos el inventario general. Y se puede ver el
espacio entre las ranuras. Ahora necesitamos tener un artículo dentro de estas ranuras de inventario. Voy a agregar otra
imagen a esta superposición. Voy a centrarlo aquí. Solo seleccionemos un icono aleatorio. Realmente no
importa. Estamos cambiando esto dinámicamente en el juego. Entonces solo voy a
seleccionar este encuentro de iconos, hagamos esto 160 por 60. Y realmente no
necesitamos cambiarlo en una caja porque es
solo una imagen, un icono. Y lo último que
queremos hacer es que queremos texto aquí abajo,
como un número. Si tienes he cumplido, necesita mostrar
un número de cinco. Entonces busquemos
texto aquí arriba y arrástrelo hacia abajo hasta la
superposición, como este texto. Alinear hacia abajo aquí verticalmente y a la
derecha horizontalmente, así es aquí abajo. Y permítanme simplemente
escribir un número, por ejemplo 23, solo por ahora como
marcador de posición para la familia de fuentes, voy a seleccionar, ver, tal vez el negrita, el espejo y negrita. Voy a hacer
la talla a 18. Y sólo voy a
darle un bosquejo. Entonces dando click aquí, puedes
darle un esquema y ver el esquema aparece aquí si
vas a escribir 23456 y así sucesivamente. Entonces escribiendo tal vez dos, y aquí para el color del contorno. Entonces haciendo clic en el color del contorno y solo selecciona algún color
aleatorio aquí. A lo mejor algo así, algo que encaja
con el fondo. También puedes usar
el recogedor de color. Escoge este color de fondo, vuelve a darle
click aquí, y vuelve al
color del contorno y solo
hazlo un poco más oscuro, algo como esto
Eso queda bien. Al hacer clic en Bien, y hay un pequeño efecto que se ve genial. Entonces aquí en la sombra, si solo haces el, dale un poco
de sombra, por ejemplo 1.2 en la y. Ahora
mismo no está
apareciendo porque
tu alfa no está puesto a cero, así que ponlo en uno y podrás ver las sombras
que realmente aparecen detrás del texto. Voy a poner
éste en 1.2. Y un efecto genial es si haces que este color de sombra de color sea el
mismo que tu color de contorno, va a dar un efecto 3D genial. Así que simplemente haciendo clic en él, copia el color lineal hexadecimal, yendo al color de sombra,
pegándolo aquí abajo. Se puede ver
que da ese efecto de sombra 3D, que se ve mucho genial. Ahora para la posición de la misma, se
puede ver que está
aquí en el borde. Yo sólo voy a, en vez
de usar el relleno, sólo
voy a bajar aquí
y la traducción, si puedo encontrarla aquí abajo. Y en la x,
sólo voy a
empujarla , algo así. A lo mejor si solo me alejo a 11 aquí para poder ver cómo
se ve realmente. A lo mejor algo
así está bien. Si solo escribo cinco, por ejemplo, si tenemos cinco meets, así es como se verá. Nuevamente, puedes dar click sobre
este botón para eliminar los guiones y así podrás
ver cómo se ve. Y creo que se ve genial. Entonces podemos usar esto. Vamos a compilar, guardar todo. Nuevamente, recuerde cambiar
el nombre de sus artículos aquí. Entonces esta es ranuras de
inventario de imágenes. Este es un artículo de
inventario de imágenes. Y éste es, se le puede
llamar ítem uno ciudad. A lo mejor en lugar de
llamar artículo de inventario, solo
puedo
llamarlo artículo como sea. Y para esta superposición, sólo
voy a dejar que estén en un momento no muy
importante. Bien. Entonces eso fue todo. Y recuerda otra vez, tal
vez, tal vez necesitamos
cambiar esto para que me guste la visibilidad a no golpear comprobable de nuevo para
no afectarnos. Pero no estoy muy segura por ahora. Dejémoslo ser y
podremos cambiarlo más tarde. Ve a Archivo, guarda todo y pasemos
a la siguiente lección.
9. 2.05 Diseña el inventario: Ahora diseñemos
el inventario. Para el inventario,
lo que va a parecer es
algo así. Así que hemos diseñado
la ranura de inventario, y esto es lo que quise decir sobre el espaciamiento entre
las ranuras de inventario. Es por ello que
añadimos relleno a la superposición. Así que tenemos un poco de distancia entre
estos espacios de inventario. Entonces así es como
va a verse. Las categorías están aquí a un lado. Entonces vamos a diseñar esto. Así que sigamos adelante
y haga clic de
nuevo con el botón derecho en la interfaz de usuario, plano de
widget. Llamemos a este inventario. Entonces dentro de aquí, de nuevo, igual que antes,
agreguemos un lienzo. Y para el inventario,
tienes que visualizar lo que
intentas hacer. Entonces, para cualquier interfaz de usuario que
intentes hacer. Entonces aquí lo que estamos
tratando de hacer es
que tenemos las categorías de
aquí a un lado, y luego tenemos el inventario. Entonces necesitamos algo
llamado caja horizontal. Entonces necesitamos que las categorías estén
al lado del inventario. Y aquí vamos
a usar algo que se llama la caja horizontal. Y solo puedes
agregarle elementos para ver qué está haciendo. Entonces, si solo
buscas un botón, por ejemplo y lo agregas
al cuadro horizontal. Si solo Control
D para duplicarlo, puede ver qué elementos
horizontalmente entre sí. Entonces, eliminemos estos botones. El cuadro horizontal
va a contener un cuadro vertical donde los botones de categoría
se alinean verticalmente. Y entonces vamos a
tener una superposición donde tengamos nuestro inventario.
Así como así. Tenemos en el cuadro horizontal, los bichos verticales
para las categorías. Vamos a cambiarle el nombre por ahora. Voy a dejar vb para caja vertical y voy a
llamarlo x consultas. Y para el overlay, solo
llamémoslo
inventario así. Entonces la superposición
de inventario consiste en una imagen. Necesitamos los antecedentes
para el inventario. Entonces agregándole una imagen y esta imagen, en lugar de establecer
un tamaño para
ella, solo se va a rellenar
horizontal y verticalmente. Se puede ver que no se está
llenando horizontalmente. Y esto se debe a que
este overlay, que es el padre
de esta imagen, tampoco
se está llenando. Entonces en vez de auto aquí, hagamos clic en Rellenar y
llenará todo el asunto. Entonces lo que sea que decida cambiar la caja horizontal tamaño dos, va a llenar
este espacio aquí. Ahora dando clic de nuevo a la imagen, cambiemos esta
a botón cuadrado azul. Yo uso esto
como fondo también. Se ve bien. Entonces ahora realmente solo por los
botones y dibujar como una caja, cinco en el margen, para que no perdamos calidad. Entonces ahora tenemos los antecedentes
para el inventario. Y ahora lo que
tenemos que hacer es tener algún texto aquí arriba
que diga inventario. Y entonces necesitamos los perezosos de
inventario aquí abajo. Entonces puedes imaginar que
necesitamos una caja vertical. Busquemos un
cuadro vertical agregado a la superposición. Déjame solo alinear
esta caja vertical, solo llenar todo el asunto. Y necesitamos un poco de
espaciado porque en vez de dibujar en los bordes
de este inventario, voy a agregarle
un poco de relleno. Entonces tal vez algo así como 30. Aquí solo le vamos a agregar
cosas para que
no golpeemos los bordes del
fondo para la parte superior. Y a lo mejor sólo voy a
escribir 25, así como esto. Y ahora agreguemos un texto. Este texto sólo va
a decir inventario. Alineemos este
texto al medio. Cambiemos la fuente aquí. Y sólo voy a
seleccionar esta extra negrita. Y cambiemos el tamaño. A lo mejor solo deja que sea así. En realidad es agradable. Si solo tienes este zoom a uno por uno. Se puede ver cómo se ve. Para este,
dejemos que diga inventario, inventario, y podemos
agregarle algo de sombra. Yo sólo voy a hacer que
sea 23.4, el Alpha 0.3. Ahora puedes ver que tenemos una
sombra sutil debajo de este texto, lo
que hace que se vea mucho mejor
y no tan plano. A continuación vamos a agregar
las ranuras de inventario. Entonces para hacer esto, necesitamos
algo llamado panel de cuadrícula. Entonces, si solo buscamos grid, tenemos este gran panel. Vamos a agregarlo a
esta caja vertical aquí en el gran panel. Si solo subes aquí
y buscas inventario. Ahora puedes ver los planos de
widgets que has creado aquí. Entonces tenemos la categoría
y tenemos las ranuras. Entonces tomando esta ranura y
agregándola al panel de cuadrícula, puedes ver cómo se ve. Da click en éste, da click en
Control D para duplicarlo. Después cambia la fila a una. Y ahora podemos ver
cómo se ve. Así que duplica esta otra vez y solo escribe uno aquí
en la columna. Yo sólo quería ver
cómo se ve. Voy a copiar esto otra vez, bien, dos en la columna. Y así es como se ve. Se puede ver. Obviamente no
parece correcto. Entonces tenemos que
averiguar qué pasa. Ahora podemos dar click sobre esta superposición aquí y todo
se ve correcto. Tenemos que dar click sobre este cuadro
horizontal y puedes ver que se ve correcto
si cambio el tamaño de este. Y en lugar de tener
esto para estar a la izquierda, podemos dar click en esta alineación
media. Por lo que siempre es gustos
en el medio. No obstante, esta caja horizontal
está bien, ahora se ve bien. Y en su lugar, podemos hacer
clic en Tamaño al contenido. Entonces el tamaño del inventario solo
va a, o el fondo
del inventario. Va a ser del mismo tamaño que
sea cual sea el contenido
para el inventario. Bien, así que lo mismo
para los dólares verticales. Entonces, si subes aquí y
buscas inventario, toma esta categoría,
arrástrala hacia abajo a esta
caja vertical que hicimos antes. Sólo voy a dar click
en Control D solo para copiarlo para que pueda ver
cómo se ve. O puedes tenerlo de esta manera o puedes
alinearlo al medio. Entonces si solo duplico esto
y solo lo hago más grande, para que pueda ver cómo se ve. Los vamos a eliminar por cierto, vamos a agregar todos
estos dinámicamente dependiendo de qué artículos hayamos saqueado
y no este de aquí, solo
tenemos tres categorías. Entonces en vez de
tenerlo así, voy a hacer clic en el cuadro
vertical y alinearlo
al centro aquí y tal vez
alinearlo horizontalmente
aquí a la izquierda. Y para el Relleno, voy a agregar algo de relleno
a la derecha porque
quiero un poco más de espaciado
entre estos dos. clic en el cuadro
vertical,
agregar, agregar a la derecha,
tal vez diez, así. Y creo que se ve bien otra vez y podemos dar click
en este inventario. Realmente no hay razón por realmente no
tengamos
botones alrededor. Pero por si acaso tuvieras
un botón en alguna parte de aquí, cambia la visibilidad del
texto a none hit comprobable porque realmente no necesitamos
interactuar con él con
el cursor del mouse. Bien, ahora vamos a compilar
y guardar todo. Y así es en realidad
lo que va a parecer. Para que podamos eliminar todos
estos espacios de inventario. Podemos eliminar todas
las categorías por ahora, porque vamos
a agregar todas esas dinámicamente
durante el juego. Entonces ahora lo que puedes
hacer es simplemente cambiar el nombre de todos estos. Así que en realidad se ve bien
y ya sabes qué, lo es. Gran panel. Se trata de las rejillas, inventario. Así como esto. Cambiemos el
nombre de todo. Y a veces algunas cosas no
son demasiado importantes para cambiar el nombre por esta
es el inventario de imagen, tal vez
imagen de fondo o fondo. Esta es solo la caja horizontal. Ahora necesitamos alinearlo aquí. Entonces el ancla es, voy a dibujar el inventario aquí abajo. Entonces haciendo clic en el ancla, prestándolo a aquí abajo. Y si escribes la posición
a cero-cero, de nuevo, igual que antes de que veas, en realidad está fuera
de la pantalla. Así que igual que antes, hay
que ajustar la alineación uno por uno. Y voy a darle un poco más de
espacio a los sitios. Entonces escribiendo la
posición a -35 -35. Ahora tenemos un poco más de espacio. Entonces esto fue para
el inventario. Vamos a guardar todo,
vamos a
cerrarlo y pasemos
a la siguiente lección.
10. 3.01 Muestra de la interfaz principal: Ahora es el momento de mostrar
la interfaz de usuario principal a la pantalla. Esta es la interfaz de usuario principal que
hemos estado creando. Y es sólo que
consiste en un botón, que es el botón para
abrir el inventario. Ahora lo que queremos
hacer es normalmente trabajar con UI dentro del controlador
del reproductor. Ya tenemos un
controlador de jugador en este juego. Si vas a planos, tenemos este llamado PC. Este es el controlador del reproductor. Hagamos doble clic en
él y esta vista se
abre cuando la
pérdida del plano esté vacía. Entonces tenemos que dar click en Abrir, abrir editor de planos completo. Así que no he hecho
nada dentro de aquí, aunque está completamente vacío y nuevo. Y lo que podemos hacer aquí es simplemente borrar
todo por ahora. Pero lo que estamos tratando de hacer es usar este llamado si
haces clic derecho aquí en este editor y
escribes crea widgets. Recuerda, estamos trabajando
con blueprints de widgets. Entonces esto es lo que creamos
aquí, un Widget Blueprint. Entonces, si simplemente haces clic
derecho aquí, derecha, crea widgets,
encontrarás este nodo aquí. Esta función aquí va
a crear nuestro widget. Así que vamos a seleccionar lo que
queremos crear. Queremos crear la interfaz de usuario principal, esta, WB main. Vamos a hacer clic en eso. Y
ahora hagamos clic derecho él y promocionemos esto a
una variable que escribo, me gusta tener mi
UI en variables, promoverá esto a una variable. Y vamos a llamarlo no
volvería a ser principal. Bien, ahora lo tenemos y para
mostrarlo a la pantalla, ahora puedes dar click en compilar. Normalmente hago esto si
me ves hacer esto todo el tiempo. Es solo verificar
si tienes alguno, algún error en tu código. Si hace esto, te
da un boleto,
significa que está limpio. Entonces todo está bien hasta el momento. Bien, entonces lo que podemos hacer aquí
es arrastrar desde esta variable. Y si no
creaste una variable, puedes simplemente arrastrar
desde aquí en su lugar. Así que arrastra desde aquí y di
Agregar a la ventana gráfica. Haciendo eso. Bien, entonces ahora hemos hecho
el Agregar a la ventana gráfica. Y si haces clic en Reproducir ahora, si ya conoces planos, esto no va a suceder. Entonces, si haces clic en Reproducir y
ves que realmente no pasa nada. Nada como que no haya botón
en nuestra pantalla ¿verdad? Ahora. Si ya conoces blueprints, sabes que necesitamos un
evento para ejecutar el código. Entonces en Blueprint, siempre necesitas un evento para ejecutar el código. No se puede ejecutar
código sin eventos. Entonces, si haces clic derecho aquí y
buscas comenzar a jugar, tenemos algo llamado
un cerdo puede jugar evento. Da click en éste. Si
quieres ver otros eventos, siempre
puedes
hacer clic derecho y buscar. Simplemente puedes buscar
eventos y podrás ver todos los eventos entre los
que puedes elegir. Por ejemplo, no se destruye
evento en tick, que corre 60 veces por segundo. Y tal vez cualquier daño
que se utilice cuando la capa ha sido
dañada y así sucesivamente. Entonces, eliminemos esto por ahora. ¿Por qué necesitamos
ahora mismo alguna muy básica llamada Begin Play Entonces este evento solo cuenta lo que sucede cuando comienzas a
jugar el juego. Y vamos a conectarlo aquí. ¿Bien? Entonces cuando comencemos a
jugar el juego, queremos crear este widget
y agregarlo a la ventana gráfica. Pero vamos a compilar, vamos a guardar
todo lo que puedan jugar. Y ahora se puede ver el botón aparece
aquí en la pantalla. ¿Bien? Entonces todo está funcionando. Y si solo minimizo
este por ahora, da click en estos tres puntos, número de jugadores, lo
cambiaré a dos. Y para el modo net, por ahora, sólo
voy a hacer clic en reproducir
como servidor escuchado. Voy a hacer click en play. Y en realidad está en mi segundo
monitor, que está aquí. Entonces ahora tenemos dos jugadores. Y se puede ver que ambos
tienen este botón. Bien, bonito. Y ahora se puede ver que
tenemos un, un bicho aquí. Y está diciendo que X no
está tratando leer la propiedad que
hizo WB, que es esta. No sabe lo que realmente es
esto. Que lo que x no es significa, significa que esta variable está vacía. No sé qué es.
Y esto se debe a que estamos trabajando en el modo multijugador.
No puedes hacer esto. Esto es bueno para un jugador, pero para multijugador, no
puedes hacerlo directamente. En multijugador, tenemos
algo llamado cliente, y tenemos algo
llamado el servidor. Unos pocos click en Reproducir. Se puede ver aquí arriba
dice servidor. Y por aquí dice cliente tendrá el
cliente y el servidor. Bien, por lo general la interfaz de usuario
solo se ejecuta en el cliente, nunca se ejecuta en el servidor. En la siguiente lección, te
explicaré más a fondo
el servidor y
al cliente. Pero por ahora, solo
debes saber que la interfaz de usuario tiene ser ejecutada a través del cliente. No se puede ejecutar la interfaz de usuario
a través del servidor. Entonces lo que tenemos que hacer es
simplemente desconectar esto. Y para desconectarlo rápido, puedes hacer click en Alt en el
teclado y dar click en él. Eso desconectará los pines. Y lo que quieres hacer es
hacer clic derecho aquí y escribir eventos personalizados. Truco rápido para hacer esto también. Puedes escribir t punto y
esto aparecerá rápido. Entonces, al crear estos eventos personalizados, llamemos a este widgets de
inicialización. Así como así. Y recuerde hacer clic en este evento
en las réplicas, haga clic en ejecutar en ser propietario,
cliente y confiable. Te voy a explicar en la
siguiente lección lo que esto significa. Pero por ahora, solo asegúrate de
que se ejecute en el cliente y sea confiable y lo
conectes a aquí. Así que nos estamos asegurando de que la interfaz de usuario se ejecute
con el cliente. Y ahora los planos de
nuevo, recuerden, al hacer clic en
Reproducir, no pasa nada. Esto se debe a que
siempre hay que
decirle planos cuando
va a ejecutar este evento. Porque tu código
realmente no sabe o tu juego no sabe realmente
cuándo llevar a cabo este evento. Entonces cuando empezamos a
jugar el juego, quiero llamar a este evento
llamado inicializar widgets. Bien, entonces vamos a compilar. Ya pueden jugar. Ahora podemos ver que aparece en la pantalla o esto
aquí y este año. Y si salgo del juego, ya ves que no tengo caja. Ahora no
me da ningún error. Y esto es porque,
porque ya se ejecuta correctamente. Ahora toda la interfaz de usuario se ejecuta a través
del cliente como debería. Y recuerda compilar, haz clic en Guardar todo. Y pasaré
a la siguiente lección donde explico más a fondo, el servidor y el cliente.
11. 3.02 ¿Qué es la replicación de eventos: Bien, entonces antes de continuar, solo
quiero
explicarte rápidamente el servidor y el
cliente en Unreal Engine. Así que de nuevo, como ya viste antes, cuando hacemos clic en Reproducir, tenemos el servidor y luego
tenemos algo llamado cliente. Pero lo que hay que
entender en Unreal Engine, el servidor es la
autoridad del juego, por lo que el servidor es el verdadero juego. ¿Y eso qué significa? Significa que para el servidor, se ve todo correctamente. Entonces, por ejemplo, si debería haber ido a mi servidor aquí
y si disparo un arma, entonces el arma es disparada
perfectamente bien. Si le disparo al cliente y el servidor no le dio autoridad al cliente
para disparar esta arma, nunca sucederá. Entonces,
haga lo que haga en el cliente, siempre
lo verifica
con el servidor. Entonces el servidor comprueba. ¿El cliente está haciendo
algo legal o está haciendo algo
así se considera trampa Entonces todos los clientes se
conectaron contigo, así que digamos que creaste un servidor Counter-Strike
o un servidor de quincena
o lo que sea. Y todos tus
amigos están conectados contigo o tus amigos o los
clientes, tú o el servidor. Entonces, si uno de tus amigos
está haciendo trampa, por ejemplo
, está disparando un
arma sin balas. Siempre
lo comprobará con el servidor. Y si el servidor ve que
este jugador no tiene balas, entonces eso nunca se cerrará. Entonces el servidor siempre
comprueba lo que los clientes, y este es uno bueno. Si puedes google UE
para compendio de red, te
dice todo
sobre multijugador. Pero sólo quiero que
sea muy fácil para usted porque es un documento largo. Y solo quiero
mostrarte estos círculos, igual que lo que hicimos
en la lección anterior. Ejecutamos los widgets
en el cliente. Así que puedes ver aquí
hay widgets que
siempre se ejecutan en el cliente. Los controladores de reproductor se ejecutan en el servidor y los clientes para que puedan comunicarse con el
servidor y el cliente. Y el modo de juego sólo
se ejecuta en el servidor. Entonces si tienes algún código
escrito dentro
del modo de juego y quieres acceder
a él a través del cliente. Esto es imposible porque el modo de juego solo
existe en el servidor. Y el controlador del reproductor nuevamente, existe tanto en el
servidor como en el cliente para que puedas comunicarte con ambos. Entonces lo que hicimos en
nuestro juego hasta ahora, hemos estado trabajando
dentro del cliente. Entonces si vuelvo a mi
juego dentro de aquí, si vuelvo a los planos, recuerda que hicimos este código aquí dentro del controlador del
jugador. Y el controlador del reproductor existe tanto
en el servidor
como en el cliente. Entonces tenemos que especificar
dentro de aquí, ¿estamos trabajando con el servidor o estamos
trabajando con el cliente? Si estamos trabajando
con el servidor, tenemos que replicar
para ejecutarlo en el servidor. Pero como siempre se
maneja a través del cliente, tenemos que ejecutar el cliente
y luego crear la interfaz de usuario, trabajar con la interfaz de usuario. Por lo que muy, muy importante
entender. La interfaz de usuario siempre se maneja
a través del cliente. Y si no los
pasas a través los clientes, como vimos antes, si solo lo ejecutas
directamente así, recibirás dólares. Ahora aparte de la interfaz de usuario, por ejemplo ,
algunas de las mecánicas de juego ,
digamos más adelante, vamos a crear elementos. Entonces aquí en los artículos, vamos a crear artículos. Y digamos que el
jugador va a laúd esta manipulación
desde el suelo y la agregará al inventario. Entonces el jugador camina
hacia el jugador se acerca
a esta poción. Y cuando el jugador
presiona E, por ejemplo, para saquear la poción, entonces se va a
ejecutar en servidores. Vamos a hacer que un
evento personalizado se ejecute en el servidor. Entonces el servidor va
a manejar la lógica, por lo que el servidor la comprobará. Este jugador en realidad presiona E. ¿Este jugador está realmente cerca esta poción para
poder diluirla? Si no revisas estas cosas, su cliente puede hacer trampa. Y por eso
lo comprobamos con el servidor. Entonces digamos que el
cliente está parado aquí y solo puedes cargarle a esta persona cuando
estás parado aquí. Pero si no
lo compruebas con el servidor y el cliente versus E
aquí, están haciendo trampa. Fácilmente pueden
perder esta poción. Así que tenemos que ejecutar en servidor, comprobar si la capa
realmente está interactuando
con esta poción. Si el jugador tiene ***** suficiente en el inventario para
cargar esta poción y así sucesivamente. Entonces vamos a
pasar por el servidor más adelante, así que revisa estas cosas. Pero para la interfaz de usuario, estamos
ejecutando esto en el cliente.
12. 3.03 Llave de enlace para abrir un inventario: Ahora atemos la llave I
para abrir el inventario. También puedes atar la tecla B, que a veces se
usa para mochila. Entonces volvamos a repasar a los planos, carpeta
Blueprints. Y dentro del reproductor, ya
he creado
este llamado contexto de mapeo
de entrada
y acción de entrada. Este es el nuevo
sistema de movimiento y Unreal Engine. Si no sabes
nada al respecto, siempre
puedes ir a mi youtube y consultar el tutorial que
he hecho para ello. Así que ahora puedes
hacer doble clic sobre este aquí, el contexto de mapeo. Y si lo
abres, puedes ver que
ya he creado el movimiento. Y cuando miras
con tu mouse, entonces tenemos que crear uno nuevo, ¿
o quieres
abrir tu inventario? Hagamos clic aquí. Y vayamos a inputs
y vayamos a input action. Llamemos a este
IA para acción de entrada, y llamémoslo inventario
abierto. Ahora, lo que podemos hacer es
guardarlo todo. Y dentro del contexto de
mapeo, ahora
podemos hacer clic en
el botón Más aquí, dar clic aquí, y seleccionar el Inventario Abierto
que acabamos de crear. Entonces puedes seleccionar
una clave para ello. Puedes seleccionar el
ojo o puedes seleccionar B. Simplemente
puedes hacer clic en este icono aquí y escribir V en
tu teclado, por ejemplo, también
puedes encontrarlo
aquí si lo deseas, mirando en el teclado
y luego encontrando la tecla. Entonces también puedo agregar dos botones. Simplemente puedo hacer clic en este botón
más y la clave. Ahora puedes abrir el inventario usando el pico y la llave del ojo. ¿Bien? Entonces ahora hay un
pequeño error hasta el momento. Ahora mismo, se ejecuta en tick. Y te voy a mostrar sólo en un rato. Si vas al nombre real
del controlador del jugador, volvamos
al jugador aquí. Aquí es donde manejamos las entradas. Entonces dentro de aquí, si haces clic derecho y
ahora buscas el IA abrir inventario
que acabamos de hacer. Encuentras este evento aquí
y solo te das cuenta de esto, este ícono significa que este
es un evento haciendo clic en él. Y ahora tenemos este
que acabamos de crear. Ahora bien, si solo arrastras
desde el disparado y escribes la cadena de impresión solo
para ver qué está pasando. Y esto solo va a escribir
textos en la pantalla. Ahora solo haga clic
en Play, Play. Y aquí voy a hacer
clic en el botón I. Y se puede ver que imprime hola muchas veces y esto no
es lo que queremos. Solo queremos abrir el
inventario una vez cuando hacemos clic, es esto es solo enviar spam
al inventario en este punto. Si haces clic en AI. Así que volvamos aquí. Volver al contexto de mapeo. Y aquí en el inventario abierto para el piaky y el ikea, recuerda presionar esta pequeña
flecha para abrirlos aquí. Lo que queremos hacer aquí
es para los disparadores, clic en el botón más, y aquí seleccionar oprimido. ¿Y qué dice? Disparan incendios una sola vez, y esto es lo que queremos hacer. Así que da click en él aquí. Y lo mismo para el ojo. Solo queremos
dispararlo una vez cuando hacemos clic en el
botón, Vamos a guardarlo. Volvamos. Haga clic en Reproducir. Y ahora voy a darle
a la tecla I. Y lo ves sólo
una vez cuando lo presiono. Y aunque lo sostenga como ahora, solo lo
estoy presionando muchas veces. Pero aunque si solo lo
sostengo uno, así que ahora voy a
sostener el botón. Se puede ver que sólo se dispara una vez y esto es
también lo que queremos. Bien, así que ahora es el
momento de mostrar el inventario a la pantalla
cuando hacemos clic en el botón. Pero pasemos
a la siguiente lección. que aprender más sobre algo llamado enumeración. Así que guarda todo
y sigamos adelante.
13. 3.04 Introducción a la Enumeration: Qué es una enumeración,
es solo una lista de cualquier
elemento que quieras que sea. Así que pasemos
a los planos. Aquí. Hagamos clic derecho,
hagamos una nueva carpeta y llamémosla enumeración. Entonces estas son las enumeraciones que estarán dentro de aquí. Ahora haga clic aquí, vaya
a planos y
podrá ver que tenemos algo
llamado una enumeración. Entonces creemos uno
y veamos qué es. Normalmente les doy el
prefijo de E o enumeración. Y para éste, solo llámalo widgets de juego. Vamos a una lista
de widgets de juego. Vamos a entrar de aquí. Y ahora puedes ver
que es muy sencillo. No tenemos mucho
dentro de aquí. Puede hacer clic en Agregar enumerador. Y dentro de aquí, obtienes este
nombre para mostrar y puedes darle un nombre y
una descripción. Entonces, qué es una enumeración, es solo una lista. Eso es simplemente lo que es. Es solo una lista y puede ser
una lista de cualquier cosa, por ejemplo, esta se llama Gameboy jets. Entonces solo quiero hacer
una lista de juego Nosotros solo, tenemos hasta ahora queremos
abrir el inventario. Un widget que tenemos hasta
ahora es el inventario. También tenemos la interfaz de usuario principal, pero realmente no la necesito
dentro de aquí. Ahora tenemos el inventario hasta en realidad no tenemos más. Pero podríamos, por ejemplo, tener algo así como menú de habilidades. Digamos que tenemos un juego más grande. Tenemos menú de elaboración. Podríamos tener un menú de pausa, por ejemplo, podríamos tener muchos widgets
aquí dependiendo de lo que quieras agregar. Voy a eliminar todos estos haciendo clic en este icono. Pero también puedes hacer una lista de cualquier otra cosa, por ejemplo,
la elaboración de artículos. A lo mejor necesitas una barra de oro. Va así. A lo mejor necesitas esconderte de vaca
o algo así. Entonces puede ser una lista de cualquier cosa. Pero ahora mismo
solo vamos a crear, solo
queríamos
enumerar los widgets del juego
que tenemos ahora mismo es
solo el inventario. Entonces esto fue muy
fácil y la enumeración es solo una lista de cualquier cosa. Y vamos a
usar esta lista en la siguiente lección para
mostrar el inventario.
14. 3.05 Creación de un evento de widget: Bien, entonces ahora en los planos dentro de la carpeta enums, ahora
creamos nuestra enumeración de
widgets de juego. Y lo único que
tenemos en estos momentos es solo el inventario que
podemos cerrar y abrir como la interfaz de usuario. Así que intentemos hacer los eventos de widget de abrir y cerrar para que realmente pueda abrir
y cerrar widgets. Y por lo general de nuevo, trabajamos con UI dentro del controlador
del reproductor. Entonces volvamos
a los planos. Abramos nuestro controlador de
reproductor. Y dentro de aquí hasta ahora
hemos hecho esta interfaz de usuario principal, que agregamos a la ventana gráfica. Ahora lo que quiero que hagan es hacer clic derecho aquí y
hacer un evento personalizado. Para este evento,
llamémoslo abrir cerrar widgets. Así que estamos usando este evento para
abrir y cerrar widgets, por ejemplo, abres y cierras
el inventario, o abres y cierras
el menú de pausa, o abres y cierras
y lo que sea, por ejemplo, a. Sharp abres para comprar
armas y así sucesivamente. Entonces por ahora, abrimos y
cerramos el inventario. Entonces este evento aquí, de
nuevo, recuerda, hablamos de que la interfaz de usuario necesita
ejecutarse en el cliente. Entonces tenemos que hacer un nuevo evento, un nuevo evento personalizado, y llamar a este
C L para clientes. Y llamemos a este
widgets bajos abiertos. Y por lo general para el cliente, suelo llamarlos
Cl como prefijo. Y en realidad debería
haberlo hecho aquí
también solo para mantenerme consistente. Y yo solo
lo llamaré CL aquí también. Bien, entonces para este, recordemos en
las réplicas, ejecutarlo en ser dueño de clientes
y también confiable. Y a partir de este primer evento de
disfraces, recordemos
ejecutar este código más. Esto nunca va a correr. Entonces esta iniciativa Cl no se inicializó con solo
esta abrir, cerrar widgets. Entonces ahora también ejecutamos este código. Bien, puedes compilar. Básicamente lo que quiero con
este widget es que necesitamos seleccionar qué widget
queremos abrir. Y luego tenemos que seleccionar si
queremos abrirlo o cerrarlo. Entonces, para seleccionar qué
widget queremos abrir, recuerda que hicimos esta enumeración
llamada E widgets de juego. Así que aquí para este widget de abrir
y cerrar, vamos a hacer clic ahora
en el más aquí. Entonces estamos agregando una
variable a este evento. Y seleccionemos aquí
para el tipo de variable. Busquemos los widgets del juego E. Este que acabamos de hacer, esta es la enumeración. Así que vamos a hacer clic en
él. Y sólo voy a llamarlo widgets. Y puedes ver aquí ahora, ahora necesitamos conectar esta enumeración
con la del cliente. Entonces por aquí,
en realidad voy a crear el mismo
clic en el Plus. Ya está configurado para
los widgets del juego. Voy a
llamarlo Widget otra vez. Y ahora podemos
conectarlo aquí así. ¿Bien? Entonces necesitamos
otra variable. Necesitamos especificar si realmente
queremos
abrir o cerrar este widget. Entonces necesitamos agregar un booleano. Vamos a hacer clic en el plus aquí arriba. Vaya a seleccionar un Booleano
como el tipo de variable, y llame a este abierto. Otra vez. Hagámoslo aquí abajo. Da clic en el más Collatz abierto y vamos a conectarlos
aquí. Bien, entonces por ejemplo solo para mostrarlo
por ti rápidamente. Entonces aquí arriba en el juego de
inicio, digamos que arrastre de aquí
y digo widget de bajos abiertos, este sin el
cliente, entonces este de aquí. Entonces, ¿ahora puedo especificar qué
widget quiero abrir? Esto se debe a que
agregamos esta variable aquí
abajo, especificando por ejemplo quiero abrir el
inventario y recordar marcar este booleano porque
quiere abrirlo. Si no quieres
abrirlo así,
esto significa que
lo cierres a través, cerrándolo. Pinchando aquí. Significa que quieres abrirlo. Va a
pasar por este evento y los resultados
van a estar aquí. Bien, entonces solo voy a
borrar esta por ahora. Entonces aquí abajo, lo que
tenemos que hacer aquí ahora
tenemos que verificar. ¿Quieres abrir o
quieres cerrar el widget? Entonces, arrastrar desde este booleano, escribir B y seleccionar esta rama para este booleano
es solo para mantenerse consistente. Normalmente escribo B como prefijo, y esto se hace en C plus
plus para encontrar a los booleanos más rápido. Así pueden ver,
aunque escribo a b, no aparece aquí, así que es un pequeño Secretos, escribiéndolo sea ante los
booleanos, nombres booleanos. Normalmente hago esto. Bien,
volvamos aquí. Entonces hacer una rama aquí mismo, derecha V, y hacer una rama. Ahora estamos preguntando, ¿es esto
booleano verdadero o falso? Si es cierto, queremos
abrir el widget. Si es falso, queremos
cerrar el widget. Pero hagamos dos
funciones por aquí, haciendo clic en este
botón más, llamemos a ésta. Widgets, y hagamos el segundo
y llamemos widgets de flujos. Volvamos al Gráfico
de Eventos. Vamos a arrastrarlos hasta aquí. Y ahora solo vamos a conectarlos. Entonces, si es cierto, queremos abrir el widget. Si es falso. Si la
apertura se establece en false, queremos cerrar el widget. Ahora tiene que especificar de qué
widgets estás hablando. Así que de nuevo, en la entrada, voy a hacer clic en
el más y seleccionar el widget de juego de EA y
llamarlo aquí widgets. Y haciendo lo mismo
para el widget de cerrar, da clic en el más. Y luego hay que conectar
este widget a aquí. Y ahora tenemos el flujo completo. Entonces, lo que esencialmente está
sucediendo ahora es si llamas a este widget de
apertura y cierre, nuevamente aquí arriba, por ejemplo, dices abrir y cerrar widget. Quieres abrir el
inventario así. Ahora, va a ir aquí abajo. Cuando llames así al
código, va a ir aquí abajo. Sabe que has configurado
este widget a inventario. Entonces se va a abrir
porque esto es cierto. Entonces va a ir aquí abajo. Es verdad. Y sabe que el
valor es inventario. Entonces va a abrir
el inventario de widgets, así que aún no los hemos hecho. Así que bajemos aquí. Esta es la función de
widget abierto aquí. Entonces para aquí, se puede arrastrar
de esta enumeración. Y tenemos algo llamado
switch on enumeration. Entonces enciéndalo si haces
clic en él ahora. Ahora, ¿qué interruptor está encendido? Puede reproducir diferentes valores
dependiendo de lo que haya seleccionado como valor
para esta enumeración. este momento solo tenemos
el inventario como valor, pero si tuvieras múltiples valores, tendrías
múltiples pines aquí. Así podrás hacer una
acción dependiendo lo que hayas seleccionado
como enumeración. Así que aquí para el
inventario, recuerden, estamos dentro del widget abierto. Así que sigamos aquí y digamos Crear widgets y
seleccionar este de aquí. Y queremos crear
el widget de inventario. Queremos abrir el inventario. Tan genial inventario de widgets. Y luego voy
a hacer clic con el botón derecho remoto a una variable
porque me gusta
tenerlas en variables y llamar a
esta inventario WB. Bien, entonces ahora tengo esta
variable y quiero
agregar a sus puertos
así como esto. Pero ahora en realidad lo estamos
agregando a la ventana gráfica. Solo una comprobación rápida antes de que
realmente hagamos esto, puedes, nuevo recuerda que
podemos mantener presionada la Alt y hacer clic en ella aquí también,
desconectamos rápidamente. Antes de hacer esto, permítame
tomar esta variable de inventario. Puede mantener presionado Control y arrastrar. Si mantiene pulsado Control y arrastra, toma este valor de variable. Si mantienes presionada la tecla Alt y
arrastras, estableces esta variable manteniendo control y arrastrando
esta variable, la
sacas de aquí. Y ahora podemos
hacer clic con el botón derecho en esta variable y convertirla en
una obtiene validada. Y lo que esto hace
es que en realidad estás comprobando antes de hacer esto. Estás comprobando si
esto ya está creado o no porque
realmente no necesitamos crearlo y luego establecer la variable si
ya está establecida previamente. Entonces eso es lo que
en realidad estamos haciendo. Entonces, si no es válida, si esta variable no
contiene nada, lo que significa que aún no la hemos
creado. Si no es válida, queremos
crear esta variable. Sin embargo, si esta
variable es válida, lo que significa que ya hemos
ejecutado este código antes, entonces solo queremos
seguir adelante y agregarlo a la ventana gráfica
así como así. Entonces no necesitamos
crearlo una y otra
vez si ya lo hemos
creado antes,
correcto, así que eso fue todo
para el widget abierto. El widget de cerrar
es mucho más sencillo. Así que aquí de nuevo,
arrastra desde aquí y di encender enumeración. Entonces dependiendo de lo que
queramos cerrar, para esta instancia,
queremos cerrar el inventario. Entonces volvamos a tomar el
inventario aquí, haga clic derecho,
conviértalo para validarlo obtiene. Y si tenemos esto abierto, lo
que significa que sí,
si esto es válido, lo que significa que el
inventario está abierto. Queremos arrastrar de aquí
y decir Eliminar de los padres. Y así es como elimino
UI de las viewports. Bien, así que ahora estamos
terminados y solo una explicación
rápida antes de
que realmente termine esto, solo para que no estemos demasiado
confundidos acerca de esto. Así que déjame simplemente
quitar esto por ahora. Entonces ahora hemos hecho esto, este evento personalizado aquí y
se está ejecutando en el cliente. Por ejemplo, quiero abrir
la jugada de inicio aquí. Quiero abrir el inventario, Digamos abrir los widgets. Entonces estamos llamando a este evento aquí
abajo que hicimos. Estamos seleccionando como
widget, el inventario, porque recuerda dentro
de nuestra enumeración, no
tenemos más valores. Digamos que agregué
otro valor más adelante, lo
llamé tienda de armas, por ejemplo I. Haga clic en
Guardar, guardar todo. Ahora puedo ver aquí dentro
de mi controlador de jugador, ahora
puedo seleccionar
el arma afilada. Y digamos que va todo el camino por aquí
y el widget abierto. Ahora ya pueden ver que puedo hacer otra
cosa con el
up con una tienda de armas. Podría haber creado
otro widget para el arma afilada y pude
mostrar a la ventana gráfica, puedo ver lo práctico que es
tener enumeraciones. Permítanme simplemente borrar este
por ahora y permítanme volver. Entonces en el gráfico de eventos, digamos que llamé, en realidad solo cambia
esto de nuevo a inventario. Entonces aquí llamo el inventario de
apertura-cierre. Seleccioné
el inventario como entrada para el widget. Y lo selecciono abrir así. Y esto significa que va
a pasar por aquí. Sabe que este booleano es cierto, lo
que significa que sube
aquí y abre mi widget, y sabe lo que es
porque lo he configurado aquí. Entonces ahora va a ir aquí y agregar la
interfaz de usuario de inventario a mi ventana gráfica. Entonces es agregar esta interfaz de usuario aquí, inventario de
WB a la ventana gráfica. Y este es el inventario. No se ve bien porque todavía no lo
hemos terminado realmente, porque necesitamos
programarlo también. Pero esto es lo que
esencialmente es suceder. Si esto se establece en false. Va a ser
falso aquí abajo. Y va a quitar el
inventario de la pantalla. Bien, entonces ahora vamos a
eliminar esto aquí arriba. No queremos
abrir el inventario cuando empecemos a jugar el juego. No obstante, lo que queremos hacerlo, vamos ahora a cerrar
todo aquí. Volvamos al jugador
de planos
y a nuestro jugador bp aquí. Entonces lo que queremos hacer es cuando
hacemos clic en Abrir inventario, realidad
queremos
ejecutar este código aquí en nuestro controlador llamado widgets de
apertura-cierre. Y queremos abrir
el inventario, pulsar el botón de abrir inventario. Sin embargo, recuerden,
nuestro código está dentro del controlador del reproductor y ahora estamos dentro del jugador. Entonces, ¿cómo conseguimos que este evento, que está dentro del controlador
del jugador, se
pueda jugar aquí
y el jugador Ahora bien, si has tomado
mis cursos anteriores, puedes intentar hacerlo tú mismo. Probablemente deberías ser capaz de hacerlo. obstante, si eres nuevo
aquí o no me acuerdo, vamos a tomarlo en la siguiente
lección porque ahora necesitamos hablar de la
comunicación Blueprint, donde nos comunicamos entre
dos planos diferentes.
15. 3.06 Introducción a la comunicación de planos: Hola y bienvenidos de nuevo. Entonces ahora vamos a
hablar de la comunicación de Blueprint. Y qué es la
comunicación Blueprint. Simplemente nos estamos comunicando entre diferentes clases
de planos. Entonces aquí en esta instancia, queremos abrir el inventario. Lo que son eventos de
widget de apertura y cierre está dentro
del controlador del reproductor. Entonces, ¿cómo obtenemos la
información de otra Clase Blueprint
aquí del jugador? Entonces, lo que esencialmente
tenemos que hacer primero, necesitamos obtener la referencia
para este controlador de reproductor. Voy a eliminar esta cadena de
impresión hola, que simplemente la
imprime en la pantalla. Ahora bien, lo que tenemos que hacer es
hacer clic con el botón derecho aquí y escribir get controller. Y lo que esto hace es que devuelve el controlador
para este actor. Entonces se está poniendo, obtienes este controlador
para pantalla aquí. Ahora necesitamos especificar de qué controlador estás
hablando. Este es solo un controlador
general. Recuerda, hicimos
nuestro personalizado aquí. Ahora tenemos que decirle
al motor que
en realidad estamos hablando de un
controlador de disco específicamente. Entonces aquí es donde entra la
comunicación. Es algo que
se llama costo conducir desde aquí y decir arrojado a. Y ahora necesitamos
escribir el nombre
del plano aquí
del controlador. Entonces vamos, digamos PC town. Entonces este de aquí le costó a
PC4 zona alta aquí y el disparado, vamos a conectarlo aquí. Ahora como este controlador
aquí ahora puedo acceder a
todo lo que hay dentro de este controlador de reproductor, incluyendo estas
variables también. Entonces, así como estas
funciones aquí. Entonces esto es lo que comunicación
Blueprint
es muy, muy sencilla. Obtienes el controlador. Esta es sólo la referencia
general. Y luego especificamos qué controlador estás hablando
específicamente? Estoy hablando de este
PC abajo como éste. Ahora podemos decir que quiero ejecutar este evento llamado
Open close widget. El jugador puedo arrastrar
desde aquí y decir abrir cerrar widget,
este de aquí. Ahora en realidad puedo hacer esto. Entonces, por ejemplo, para el inventario, quiero abrirlo. Y si compila
y hago clic en Reproducir, ahora
puedo hacer clic
en I en el teclado y puedes ver nuestros
inventarios realmente abiertos. Ahora podemos hacer click de nuevo
porque no va a cerrar. Todavía tenemos que
programar esa lógica. Así que vamos a cerrarlo. Entonces esta es básicamente la comunicación Blueprint,
muy, muy fácil. Sin embargo, hay un pequeño
problema con la fundición. casting hace
referencias duras y qué tan duras deben
cargarse las referencias cada vez que se carga el juego. Entonces esto hará que
tu juego sea más lento. A veces ves
juegos hay muy, muy lentos cuando
cargan el juego. Y podría ser porque lo
han pasado a muchas
cosas en su juego. Imagina que tu juego puede ser muy, muy grande cuando
termines tu juego. Y a lo mejor tienes como
100, 100 artículos te están costando dos o 100 planos
te están costando dos. Y todos estos están
creando referencias duras, lo que luego ralentiza tu juego. No estoy diciendo que nunca
debas usar esto, pero debes evitar
usarlo siempre que puedas. Y en este caso, en
realidad podemos evitarlo
usando algo llamado Interfaces
Blueprint. Entonces, sigamos adelante y
la siguiente lección y hablemos de Interfaces Blueprint.
16. 3.07 Interfaces de plano: Ahora que ya hemos
hablado de costos, hablemos ahora de Interfaces
Blueprint. Entonces este tema suele ser un
poco difícil para los principiantes, pero voy a tratar de
explicarlo lo mejor que pueda. Pero ahora cerremos todo aquí y aquí y la carpeta
Blueprints, hagamos clic derecho y vayamos a planos y hagamos éste
llamado Interfaz de Planos . Y normalmente lo doy
a int como prefijo. Y para éste,
llamémoslo el nombre del plano al que
quiero hacer referencia. Entonces quiero hacer referencia
a este controlador negro para obtener mi evento de widget de apertura y
cierre. Entonces llamemos a este controlador
de una capa. Ahora también voy
a hacer clic derecho y hacer una nueva carpeta llamada Interfaces solo para
permanecer consistente aquí y arrastrar esto
a esta carpeta. Y déjame ir a la carpeta, abrir mi Interfaz de Blueprint. Entonces, qué
Interfaces de Blueprint puedes ver aquí. Muy, muy sencillo. Realmente no puedo hacer
nada en esta gráfica. No puedo mover nada
ni hacer nada. Y en realidad no
se supone que trabajemos aquí. Lo que se supone que debemos aquí
a la derecha, podemos crear funciones. Entonces esta primera función,
puedes hacer click sobre ella. Puede hacer clic en F2 en el
teclado para cambiarle el nombre. Y voy a
llamarlo get's layout Controller reference
porque esto es lo que estoy tratando de hacer. Aquí en la salida. Vamos a hacer clic en esto y
establecer una variable aquí. Ahora, tienes que seleccionar a qué
quieres hacer referencia. Quiero hacer referencia a mi controlador jugador
llamado EC Hook Town. Entonces seleccionándolo aquí. Y ahora vamos a
llamarlo controlador de reproductor. Bien, entonces esto es
en realidad por ahora. Así que ahora que hemos creado
esta función obtiene control de capa
o referencia, o tratamos de obtener la referencia para este PC folk term
player controller. Bien, ahora
cerremos esta interfaz y volvamos a los planos. Y tenemos que ir dentro
de este controlador de reproductor y agregar nuestra interfaz
que acabamos de hacer. Y lo hacemos haciendo clic
en la última configuración. Y por aquí en las interfaces, vamos a dar click aquí y
buscarlo termina controlador de capa, este es el que acabamos de hacer. Entonces haciendo clic en él aquí. Ahora, vamos a compilar. Si haces esto ahora
podemos ver aquí tenemos una pestaña llamada interfaces. Y si haces clic en la flecha, verás tu interfaz. Un error muy pequeño que
mucha gente hace aquí. Si vuelves a la interfaz, tienes que recordar
hacer clic en compilar. De lo contrario no verás esto
aquí abajo cuando agregues
tu interfaz. Así que recuerda hacer clic en compilar. Muy, muy importante para compilar
siempre tu código. Así que ahora aquí en la interfaz
ya podemos hacer doble clic sobre ella. Para ello, para esto aquí, para esta referencia
de esta variable, podemos arrastrar desde
aquí y escribir self. Básicamente lo que esto
está pidiendo, esta variable es que
necesitamos especificar qué es esta
variable de pueblo EC ****, ¿qué es esta? Y lo que básicamente estamos haciendo aquí es que estamos arrastrando
aquí y diciendo yo mismo. Porque recuerden, ya estamos
en este plano, el controlador del jugador al que
estamos tratando de hacer referencia. Así que básicamente estamos diciendo que esta referencia variable es self, es
decir, lo que sea lo que
estemos dentro en este momento, que es esta clase de
blueprint aquí. Entonces ahora lo que podemos hacer es volver a los planos, al jugador y al jugador bp. Así que volvamos aquí. En lugar de casting,
solo eliminemos esta parte. Aquí tenemos el controlador
general. Entonces en lugar de disfraz, ahora
podemos arrastrar y decir obtiene su
referencia de Controller porque esto es lo que realmente creamos
en esta función aquí. Así que arrastra aquí y di que es
jugador, referencia de controlador, y tiene que decir
mensaje al final, lo
que significa que proviene de
una Interfaz de Blueprint. Entonces esta es una función de
Interfaz de Blueprint, dando click sobre ella aquí. Y ahora podemos conectarlo aquí
y desde aquí , igual que antes, ahora
podemos acceder a todo lo hay dentro de este controlador de capa. Y ahora podemos decir Open
lows widget así. Y ahora está funcionando a plenitud. Puedes ver si hago clic en play y hago clic en
I en mi teclado, abre el inventario
igual
que antes, y estamos evitando el ayuno que creó una referencia dura, lo que puede ralentizar nuestro juego. Entonces esto es mucho mejor que hacer. Así que solo voy
a pasarlo rápidamente porque sé
que es un tema confuso para algunos y también me
fue confuso hace un tiempo
cuando recién comencé. Así que volvamos aquí. Creamos una Interfaz de
Blueprint. Dentro de aquí. Y dentro de esta Interfaz de
Blueprint, acabamos de hacer una función llamada getline Controller reference, donde agregamos cualquier referencia de controlador de
jugador a la que
queramos hacer referencia. Y queremos hacer referencia
a éste específicamente. Ahora lo que hicimos es que fuimos
a ese controlador y agregamos la interfaz
y los Ajustes de Clase. Lo agregamos aquí. Esto hizo que apareciera esta
función de interfaz. Y lo que hicimos
aquí, ahora tuvimos que especificar si solo
desconecto esto aquí,
esta variable de
controlador de pueblo de PC ****. Si no haces esto, simplemente no sabe de lo
que estás hablando. Esto. Recuerda que si lo
pones así, significa que esta variable está vacía. Y lo que sea que
intentes hacer aquí, te va a dar un error. Entonces si hago clic en jugar
aquí y hago clic en I, en mi teclado, no pasa nada. Y si salgo, te va a dar un error diciendo que x es none access none solo significa que
esta variable está vacía. No sé a qué
intentas
acceder o a lo que
intentas hacer es esta
variable, está vacía. No tengo ninguna información. Es por esto que
hay que decir self, porque básicamente estamos
definiendo esta variable. Estamos diciendo que este controlador de
jugador del que
estamos hablando es uno mismo, lo que significa este plano. Sea cual sea el plano en el que nos encontremos, esta autorreferencia es ésta. Entonces el factor PC, Esta es la forma en que estamos haciendo referencia
al controlador del reproductor. Y ahora dentro del reproductor, ahora
podemos tomar esta función
Blueprint Interface. Y sabemos cuál es la
variable porque hicimos esta
autorreferencia aquí. Y a partir de ahí ahora podemos
acceder a todo lo que hay dentro de los controladores de
esta capa para que incluso
podamos acceder a este WB
hecho si quisiéramos. Puedes ver aquí, si arrastro
desde aquí y digo WB main, en realidad también
puedo obtener
esa variable. Bien, así que esto fue para
el plano y las superficies. Entonces ahora podemos abrir
el inventario. Pero sigamos adelante en la
siguiente lección y de hecho finalicemos esto porque también necesitamos cerrar el inventario.
17. 3.08 Muestra el inventario: Bien, entonces el paso final para abrir y cerrar
el inventario. este momento el problema es que cuando hacemos clic en I en el teclado, sigue abriendo el inventario, así que necesitamos cerrarlo también. Voy a volver al controlador
del reproductor. Y dentro de aquí,
hagamos una nueva variable, un booleano llamado es, llamémoslo inventario está abierto. Ahora vamos a
controlar la apertura, cerrando por este booleano aquí. Entonces aquí en el
widget abierto, entremos aquí. Entonces, ¿por qué no
abrimos el inventario y agregamos esto a la ventana gráfica Tomemos esto aquí. Y recuerda que puedes sostener Alt, arrastrarlo y configurarlo aquí
para establecer la variable. Sí, así que si quieres arrastrarlo y seleccionar Establecer aquí también. Entonces vamos a establecer
este booleano en true. Entonces el inventario está
abierto, eso es cierto. Y cuando cerramos el inventario, así que si vuelves
al Gráfico de Eventos y haces clic en el widget Cerrar, vamos a establecer
esto en false. Bien, entonces ahora es falso. Y volvamos
al jugador de aquí. Entonces dependiendo de si es
verdadero o falso, esta, esta variable aquí,
entonces queremos
abrir o cerrar el inventario. Recuerda, ya estamos haciendo esta
comunicación de Blueprint Interface con el controlador del reproductor
para que podamos acceder a lo que esté dentro de
este controlador negro, incluyendo esta
variable que acabamos de hacer. Ahora podemos conducir desde
aquí y decir ¿Está, los inventarios están abiertos aquí? Podemos seleccionar el
booleano aquí para que podamos obtener el valor de esto. Y ahora podemos hacer una rama. Entonces rama derecha. Entonces, si el inventario está abierto, queremos seguir adelante y
cerrar el inventario. Vamos a copiar y pegar este de aquí. Y si el inventario no
está abierto aquí, vamos a abrir
el inventario. Arrastrémoslos aquí, conectemos esto a los objetivos. Y si quieres
hacerlo mucho mejor, puedes simplemente hacer
doble clic en la línea aquí y puedes
hacerla más organizada. Bien, entonces lo que esencialmente
sucede aquí es que estamos preguntando, ¿está abierto el inventario? Si ya está abierto
cuando hacemos clic en el botón, entonces queremos cerrarlo. Si hacemos clic en el botón y
el inventario no está abierto, entonces realmente queremos
abrir el inventario. Y vamos a guardar todo. Vamos a hacer clic en Reproducir. Y ahora vamos a dar click
en I para abrir el inventario. Y voy a
hacer click en I otra vez, y se puede ver que lo cierra. Por lo que al hacer clic en el ojo lo abre. Podemos de nuevo, lo cierra. Recuerda que también encontré que ser clave si presionas sobre la tecla B. Y esto sólo está aquí en
la capa de planos. Aquí si haces clic en
los contextos de mapeo, si también has dicho el
BQ para el inventario, dependiendo de qué
teclas hayas configurado, puedes presionar esas teclas aquí y el reproductor para
abrir el inventario. Entonces ahora está funcionando
como debería.
18. 4.01 Creación de la hoja de artículo base: Ya estamos listos para
saltar a los artículos. Y la razón por
la que hacemos los artículos de arranque primero antes de
codificar el inventario, es porque realmente
necesitamos artículos que
necesitan entrar en las ranuras de
inventario. Así que
sigamos adelante y
creamos los artículos antes de continuar con el inventario
en la carpeta blueprint, Ahora
hagamos clic derecho aquí
y hagamos una nueva carpeta. Llamemos a esto artículos. Y dentro de aquí,
vamos a hacer clic derecho. Ir a la clase Blueprint. Y puedes hacer un
actor aquí porque los artículos son solo
actores estáticos dentro del nivel. Por ejemplo, esta planta podría
haber sido un elemento. Esta herramienta podría
haber sido un elemento. Entonces estos son solo actores. Si lees aquí
dice que un actor es un objeto que se puede colocar
o responder en el mundo. Entonces, seleccionemos al actor y
llamémoslo BP item base. Así que normalmente creo
una clase base si
quiero crear múltiplo
de lo mismo. Entonces, si quiero crear
varios elementos, estoy creando una clase base. Y luego a partir de esa clase base, puedo crear los ítems. Esto se llama planos infantiles, pero hablemos de
eso en la siguiente lección. Por ahora, quiero que entres
a la base de artículos. Y dentro de aquí, sigamos adelante y
agreguemos un componente. Y
busquemos una malla estática. Y una malla estática
es solo para que
podamos agregar nuestros artículos que
tenemos en nuestra carpeta. Y llamemos a esto
un ítem. ¿Bien? Y puedes ver aquí
para la malla estática, podemos agregar una malla, por ejemplo podemos agregar el plátano
como elemento y así sucesivamente. Pero ahora mismo estás en la clase base y en realidad
no queremos asignar nada aquí. Lo vamos a hacer más tarde. Solo quería crear este Item, componentes de
malla estáticos. Entonces agreguemos otro, haciendo clic en este ítem. Y luego vamos a sumar, y vamos a agregar una colisión. Agreguemos una esfera de colisión, esfera de colisión
seleccionada. Voy a llamarlo esfera
de colisión. Y la razón por la que estoy
agregando este es porque necesitamos
interactuar con el ítem. Así que imagina si vamos
a Artículos de Activos, imagina si este ítem
está en el mundo, entonces necesitamos una esfera de colisión. Porque necesitamos saber
cuándo el jugador está colisionando
realmente
con este ítem para que podamos perderlo o no. Eliminemos esta por ahora. Y para el artículo, volvamos aquí. Volvamos a
la colisión aquí. Entonces para la colisión,
para este ítem, no
quiero que
tenga colisión, así que eliminemos generar eventos de
superposición. Vamos a quitar esta. Y digamos aquí en el preset de
colisión, sin colisión. Vamos a compilar. Ahora volvamos a
la esfera de colisión. Ahora para la
esfera de colisión en la parte superior, sólo
voy a hacer
el radio a 100s. Para que puedas mirar y
ver aquí si
vuelves a los artículos y bajas
los basados en objetos al nivel, puedes ver que este es
el radio en
el que el jugador puede interactuar
con el objeto. Entonces, si lo aumentas, ese
jugador puede interactuar con el objeto cuando el jugador
esté dentro de esta esfera. Así que solo podrás ajustar el radio
como quieras para tu juego. Yo solo quería ponerlo
para al 100 ahora mismo. Voy a borrar
este en el nivel y de nuevo bajar a colisión. Y dentro de aquí, queremos generar
eventos de superposición, así que eso es correcto. Esta también es correcta. Y por aquí en el preset de
colisión, solo
quiero que mi jugador
interactúe con esta esfera. No quiero que
otra cosa lo haga. Entonces sigamos adelante y digamos,
digamos cliente aquí arriba
y el preset de colisión. Voy a ignorar todo
excepto mi estanque, que es mi capa. Vamos a compilar. Y antes de que nos olvidemos, realidad
vamos a subir aquí en la base de artículos BP en
los valores predeterminados de clase. Y aquí arriba, si te desplazas hacia arriba, tienes que hacer click en éste
porque recuerda que estamos en multijugador y
replica solo significa, nuevo, igual que antes, replicas la
información al cliente. Porque aquí, cuando juegas como servidor y aquí
tenemos al cliente. Entonces, si no
replicas el plano, entonces el cliente
no podrá verlo. Sólo el servidor, que
es este tipo de aquí. El servidor podrá ver
el ítem, pero los clientes, todos los clientes
lo conectan a ese servidor, no
podrán
ver el ítem. Esto es lo que significan las réplicas. Se trata de replicar la información
del servidor y enviarla a los clientes puedan ver
esa información. Ahora, queremos que los clientes
vean este artículo. Entonces vamos a
hacer clic en réplicas, y también vamos a
replicar el movimiento del elemento en caso de que el elemento se mueva. Y eso fue todo
para la base de artículos. Entonces, sigamos adelante y cerremos esto y pasemos a
la siguiente lección.
19. 4.02 Introducción a los planos de niños: Entonces ahora que hemos
creado nuestra base de artículos, hablemos ahora de planos
infantiles. Entonces volvamos a la
carpeta Blueprints y vayamos a los artículos. Ahora bien, para esta base de artículos aquí, en la razón por la que creé una clase Blueprint de elemento base es porque queremos crear planos
infantiles a partir de esta. Y voy a explicar
lo que es eso tan bien, este puedes
hacer clic derecho aquí arriba, puedes ver algo que se llama clase
Create Child Blueprint. Entonces haciendo clic en éste, y yo sólo voy a
llamarlo algo aleatorio. Entonces ahora tenemos una clase
Child Blueprint y puedes pasar el
mouse sobre ella y dice que la
clase padre es la base de ítems BP. Entonces, ¿qué significa eso? Eso significa que si hago alguna
edición en la base de artículos, heredará estas ediciones y las aplicará a
todos los hijos. Así que permítanme hacer clic de
nuevo y crear otra clase de Blueprint hijo. Solo asegúrate de que sea desde el
artículo basado en que lo estás haciendo. Así que haciéndolo aquí, y solo voy a
llamarlo algo aleatorio otra vez, haga clic con el botón derecho en la tasa
base del ítem otro niño y llamándolo
algo otra vez, ¿de acuerdo? Ahora tenemos tres hijos. Tenemos éste,
éste, y éste. Y son hijos
de la base de artículos. Entonces ahora si voy dentro de una de
las Clases de Planos Hijos, puedes ver que ya hereda el ítem Componente de Malla Estática que hicimos en la base del ítem y también hereda la esfera de
colisión. Recuerda que estos son
componentes que
creamos dentro de la base de artículos. Así que ahora en el artículo basado, si creo algo, por ejemplo quiero hacer una
variable y decir, es esta burbuja Troy o
lo que sea, algo aleatorio? Se trata de Troy Abel y
hago clic en compilar. Ahora bien, si hago clic en alguno de
los planos infantiles, ya se
puede ver en
los últimos valores por defecto. Ahora puedo ver que esta variable
se destruye capaz, aunque no tengo ninguna
variable dentro de aquí. Esto se debe a que está
heredando todas
las cosas que haces
dentro de la base de artículos. Así que ahora en realidad puedo decir
si está destruido o chiflado. Y esto es muy
útil porque ahora todas las Clases
de Planos Infantiles, tienen la misma
funcionalidad. Puedo ponerlos para que
destruyan burbujas o nueces. Por lo que hacemos esto para que la velocidad de
desarrollo de tu juego sea más rápida. Entonces en vez de ir en
cada uno y hacer un se destruye doble
booleano entrando aquí, haciendo se destruye un booleano. Entonces, en lugar de
hacerlo 100 veces, podemos
hacerlo una vez dentro del plano padre aquí. Y entonces todos los hijos
heredarán esos ajustes. Lo mismo ocurre con
los personajes. Digamos que estás
creando muchos skins, muchos skins de jugadores. Obviamente quieres
crear una clase principal, como un padre, una
clase de blueprint para el skin, y luego crear clases de
blueprint child a partir de esa clase padre
skin base. La razón por la que vuelves a hacer esto, si quieres cambiar
una configuración específica para todos los 100
skins
que hiciste, solo puedes hacerlo una vez en la clase Blueprint padre, la, la base aquí, y heredará su, todos estos hijos también la
heredarán. Bien. Entonces eso fue todo. Muy, muy básico. Entonces déjame seguir adelante y
eliminar los de aquí. Y con ese conocimiento, ya
estamos listos para
crear todos los artículos.
20. 4.03 Creación de los artículos: Bien, sigamos adelante y
creamos todos los artículos. Permítanme hacer clic derecho
en la base del ítem. Creó la clase Child Blueprint. Y para el primero, lo
voy a llamar BP banana. Y los artículos que
vamos a hacer de nuevo, puedes hacer clic en
los activos aquí arriba, artículos y puedes
verlos aquí. Estos son todos los
artículos que queremos
hacer para que podamos saquear
y tener en nuestro inventario. Déjame volver a los artículos. Haga clic con el
botón derecho en el elemento de nuevo, y vamos a crear el sabor BP. Vuelva a hacer clic derecho con
otro niño, cuchillo EP , otro, y llamemos a
esta manera BP, océano. Otra nube de planos. Solo asegúrate de que la
clase padre sea base de artículos. Asegúrate de no hacer clic en
nada malo aquí. Entonces la tasa base del ítem, plano, el bp cumple, y el último son
las pociones de resistencia. Así que aquí se titula VP stamina ocean. Bien, ahora que
tenemos todos los artículos, vamos a abrirlos todos aquí arriba. Entonces la palanca de plátano, manipulación de
cuchillo, carne
y aguante, pociones. Pero vayamos primero
al plátano, haga clic en el ítem. Y aquí en la malla
estática hay
que asignarle la malla estática. Entonces sólo voy a
buscar aquí arriba el plátano seleccionado aquí,
y aquí está. Bueno ahora se agrega
aquí como el ítem. Bien, vamos a compilar. Vayamos a la
cuchilla como un artículo. Adelante y selecciona la cuchilla. Sólo búscalo, compila. Ahora para el artículo de cuchillo
y busca cuchillo. Esos son el mismo
proceso una y otra vez. Vayamos al elemento de acción de la
menopausia, busquemos poción señorial, compilemos. Ir al siguiente. Artículo cumple compilar
y el último, pociones de
resistencia y haga clic
en el ítem Malla Estática. Sigue adelante y busca resistencia y selecciona
este movimiento de resistencia. Ahora, hagamos clic en Archivo
y Guardar todo por si acaso. Bien, entonces eso fue todo. Y antes de terminar esto, en realidad
quiero
hacer una cosa más. Cerremos todo. Quiero crear
una variable llamada item name y vamos
a usar esto más adelante. No vamos a usar esto ahora. Pero nuevamente, recuerda, no
tienes que entrar en todas y cada una de
estas Clases de Planos Infantiles y crear una variable
llamada name. Simplemente puedes ir
a la base de artículos. Y en realidad eliminemos
este por eso, solo
hicimos eso también
para ver la herencia. Así que vamos a crear
otra variable ahora. Vamos a llamarlo nombre del elemento. Y para el nombre del elemento,
el tipo de variable, vamos a
convertirlo en una cadena. Haga clic en compilar. Y como saben, una
cadena es solo una línea de texto así que en realidad podemos
darle un nombre de elemento. Y tal vez si te olvidaste, ¿
por qué no elegimos
textos en lugar de una cadena? La razón por la que elegimos
una cadena es, recuerda, un texto es
lo mismo excepto por, puedes ver que esta bandera aparece
cuando eliges texto. Y esto se debe a que el texto es localizable y
esto significa que puedes traducir lo que
escribas aquí a otros idiomas aquí
en Unreal Engine. Entonces en ventana, creo que lo es, o en realidad está en herramientas. Aquí puedes ver
que tenemos algo llamado tablero de localización. Y dentro de aquí puedes traducir tu juego a
diferentes idiomas, por ejemplo, alemán, japonés, chino,
árabe, lo que sea. Puedes traducir
esas variables de texto. Sin embargo, si eliges
una cadena y
querrás traducir
tu juego más adelante, no podrás hacerlo. Tienes que seleccionar textos para traducir ese texto que
quieras escribir aquí. Entonces no quiero
traducir nada. Este nombre
de cadena en realidad solo va a ser utilizado como ID. Así que vamos a guardar todo. Yo sólo quería ser una cuerda. Ahora hemos creado este
nombre de elemento dentro de la base de elementos. Así que ahora cada niño aquí tiene este ítem
llamado variables. Entonces voy a abrirlos todos
. En la primera. Puedes ver aquí,
dice nombre del artículo. Y si solo abro el editor de planos completo
para mostrártelo, y la clase por defecto
para este hijo de blueprint, puede ver la variable de
nombre del ítem en sus pares. Ahora para el nombre del artículo
aquí podemos escribir banana. Esta es la compilación de banano y
para el tallo y una poción, llamémoslo aguante, océano. Así como esto para la carne, llamémoslo cumple. Y para la menopausia en realidad
estímulos porción aquí. Y para los hombres y la poción, llamémoslo manera océano. Y para el cuchillo, haga clic en los valores predeterminados de clase, ¿verdad? Navaja, compilar. Y para la cuchilla,
vamos a escribir palanca. Bien, y recuerda que esta vista aparece con este
botón de aquí arriba. Esto se debe a que
la, La clase Blueprint está vacía y por eso se está
mostrando así. Bien, entonces ahora tenemos
asignados todos los nombres. No lo vamos a usar ahora, pero vamos a usarlo muy,
muy pronto y verás por qué
hice esta variable de nombre. Cerremos todo ahora y pasemos
a la siguiente lección.
21. 4.04 Introducción a las estructuras: Bien, ahora que hemos
creado todos los artículos, en realidad
estamos listos para crear la información
de los artículos. Entonces el nombre del
artículo, la miniatura, así la imagen que aparece dentro del inventario cuando
aludes al artículo, la categoría del
artículo, y así sucesivamente. Hasta que toda la información
para un solo ítem, necesitamos definir
toda la información. Entonces, antes de hacer esto, en realidad
podemos hacerlo
dentro de las estructuras. Vamos a los planos. Y aquí Hagamos clic derecho
y hagamos una nueva carpeta. Vamos a llamarlo. Se puede llamar a las estructuras, pero normalmente solo lo
llamo estructuras. Eso depende de ti. Dentro de aquí. Vamos a hacer clic con el botón derecho. Ve a planos y selecciona éste llamado
estructura o éste. Yo suelo usar S t como
prefijo para estructuras. Y vamos a llamarlo
item info porque
queremos crear la
información para el ítem. Haz doble clic sobre él
y verás que así es como se ve la estructura. Entonces una estructura es solo una
colección de variables. Entonces, en lugar de ir
a los artículos y por ejemplo aquí en la base de artículos. En lugar de ir aquí y
crear variables, por ejemplo si el artículo es apilable, o tal vez quieres tener
la miniatura del elemento, o tal vez quieres tener la categoría para los
ojos que puedas ver. llega a muchas Aquí llega a muchas
variables y
a veces se vuelve desordenado, así que normalmente no hacemos esto. Déjame borrarlos aquí. Pero puedes hacer es que puedes crear una estructura dentro de aquí. Se pueden crear todas
las variables. Por ejemplo, yo quería el nombre
del artículo, quiero por ejemplo el valor de la moneda para este
artículo si quiero venderlo y puedes elegir de qué
tipo es esta variable, por ejemplo para las monedas,
puedo seleccionar un flotador, y para el nombre
puedo seleccionar tal vez un texto porque quiero
traducirlo más adelante. Ahora tenemos todas estas
variables dentro de una estructura. Así que lo genial ahora es si
voy al artículo basado por ejemplo I. Puedo hacer una nueva variable
aquí como el tipo de variable. Puedo escribir el nombre
de la estructura. Entonces SC, info del artículo y puedo
seleccionarlo aquí y puedo guardar. Y ahora puedes ver si
hago clic en mi variable. Ahora tengo toda la
información aquí para este ítem. Para que pueda tener la información
del artículo dentro de esta estructura. Y si hago clic en uno
de mis planos hijo, puedo ver aquí en
los valores predeterminados de clase. Ahora puedes ver toda
esta información, el nombre del artículo, el valor de
la moneda y las
variables que agregues. Así que muy chulo. Las estructuras son solo una colección de variables que
define dentro de aquí. Bien, así que vamos a eliminar
todo esto por ahora, y vamos a eliminarlo aquí
del basado en artículos porque vamos a crear algo
mucho más genial que esto. Déjame guardarlo todo. Ahora que sabes
lo que es una estructura, vamos a
seguir adelante y crear la estructura de información del artículo.
22. 4.05 Estructura de información de artículo: Muy bien, así que sigamos
adelante y creamos la estructura de información del artículo. Vamos a hacer clic en estructuras. Ahora abramos la estructura de información del
ítem. Y dentro de aquí lo
que queremos es el nombre del artículo. Vamos a crear una nueva variable. Queremos una miniatura
así la imagen que aparece dentro del inventario
cuando aludimos a Dyson. Y el tipo aquí
es una textura 2D, lo que solo significa una imagen. Y selecciónelo aquí, referencia de
objeto. Y hagamos una nueva variable. Y queremos el e.g queremos una descripción del
artículo. No tienes que hacerlo. Depende de qué
juego estés creando. Algunos juegos no
tienen una descripción, pero vamos a agregarlo aquí. No sé si lo
necesitamos o no, pero tal vez lo necesitemos. Así que vamos a crear una
descripción para el artículo. Podemos establecer la
categoría para el artículo. Así que vamos a elegir este
como el tipo de variable. De hecho estoy checando
me olvidé de aquí. Entonces en las enumeraciones están
aún no lo hemos creado. Entonces en la enumeración es realmente
puedes crearlo si quieres como el ejercicio
en la enumeración, quiero una enumeración con las
categorías para el ítem. Entonces tenemos la categoría armas, comida y pociones pueden seguir
adelante y
crearla y agregarla a la
estructura si así lo deseas. Ahora intentemos
hacerlo juntos ahora, voy a hacer clic derecho aquí, ir a planos y
seleccionar enumeración. Esta categoría de un artículo. Voy a abrirla
y dentro de esta lista. Así que recuerda que una enumeración
es solo una lista de elementos. Entonces aquí quiero una
lista de categorías. Voy a decir armas. El siguiente que
voy a agregar es comida, y el tercero son océanos. Entonces tenemos estas tres categorías de
artículos. Y volvamos ahora a la
información del artículo para la categoría, voy a seleccionarla aquí
y decir categoría de artículo E. Entonces como se llame a la
enumeración seleccionada aquí. El siguiente, voy a
decir que enviaría clase. Y la clase de artículo es
solo para que podamos generar el artículo en el mundo si lo dejamos
caer del inventario. Entonces, seleccionémoslo aquí
y busquemos la base de artículos. Recuerda que hicimos la base del artículo. Ahora esta es la
clase de ítem seleccionada aquí y selecciona la referencia de clase. Muy importante. La referencia de
clase, a diferencia de la referencia de
objeto, es que la referencia de clase se usa
cuando se generan cosas. Entonces queremos generar el artículo cuando
lo dejamos caer del inventario, así que necesitamos la clase del mismo. Ahora agreguemos otro
y llamemos que está en sumable. Entonces, ¿podemos beber
o comer este artículo? Y booleano, esto es sólo
un sí o no preguntas. Entonces es un booleano y el
otro es apilable, entonces es este artículo apilable
en nuestro inventario, ¿podemos tener dos artículos
y la misma ranura, tres artículos y así sucesivamente? Y el último, voy a decir tamaño Max Stack. Entonces, ¿cuántos artículos podemos tener en una
ranura de inventario?
Por ejemplo, podemos tener 99 plátanos antes de crear
otro, otro stack. Entonces todo este tamaño Max Stack
es que es solo un entero. Muy bien, ahora hemos terminado
con la información del artículo. Y en lugar de
agregar la información del ítem al hielo y a la base
como variable, en realidad
voy a
hacerlo a través de una tabla de datos. Para que puedan ver aquí, no
me estoy reteniendo
con el conocimiento. Estoy tratando de mostrarte cómo lo haríamos
profesionalmente en un juego. No quiero
hacerlo de la manera fácil. De hecho, sigamos
adelante y aprendamos sobre las tablas de datos y
te mostraré una manera muy genial de
cómo agregar la estructura.
23. 4.06 Introducción a las tablas: Bien, ahora sigamos adelante
y hablemos de tablas de datos. Entonces, en la
carpeta Blueprints, hagamos clic derecho, hagamos una nueva carpeta, y llamemos a esta tablas
de datos. Dentro de aquí, vamos a
hacer clic derecho, ir a miscelánea. Y aquí podemos seleccionar
algo llamado tabla de datos. Puedes ver aquí tabla importante
de hoja de cálculo es lo que también se llama. Para que lo puedas hacer click aquí. Y ahora tenemos que seleccionar qué
estructura desea utilizar. Entonces necesitas una estructura antes de
que podamos hacer una tabla de datos. Recuerda que ya hicimos nuestra estructura en la lección
anterior. Así que ahora podemos
seguir adelante y seleccionar nuestra estructura de información del artículo. Y ahora podemos dar click en OK. Para esta tabla de datos,
podemos llamarla d t item info, data table, item info. Ahora vamos a abrir
esta tabla de datos. Y así es
como se ve, muy, muy simple. Es solo
mostrarte información. Puedes ver todas tus
variables que has creado dentro de tu
estructura aparecen aquí. Y ahora mismo está vacío. Así que puedes hacer clic en
Agregar si quieres, y podrás ver qué sucede
cuando haces clic en agregar. Aquí se agregará un ítem
a la tabla de datos. Para que puedas ver si
sigo agregando artículos, voy a seguir agregando
artículos aquí abajo. Lo que puedes hacer aquí, haciendo
clic en el primero, por ejemplo, puedes ver por
cada elemento de tu juego, puedes definir el nombre del mismo, la miniatura del mismo. Podemos definir la
descripción del artículo,
la categoría para
él, el vidrio, por ejemplo, es el plátano, y así sucesivamente. que pueda ver, puede definir información para
cada elemento y puede tenerla de una manera estructurada
agradable dentro de una tabla de datos. Ahora esto es básicamente,
esto es lo que es una mesa. Simplemente contiene información. Entonces tenemos la estructura. Y con esa estructura, hacemos una tabla de datos para que por cada elemento
realmente podamos especificar
información aquí. Y vamos a
hacerlo de una manera mucho más fácil. Por lo general no
lo usamos dentro de aquí. Entonces, en lugar de tablas Delta, no
solemos entrar
aquí y escribir el nombre, así como la miniatura y así sucesivamente. Te voy a mostrar una
manera más completa de hacer esto. Así que sigamos adelante y
simplemente haga clic en Eliminar para cada uno de ellos
aquí, eliminar, eliminar, eliminar. Entonces ahora vuelve a estar vacía. Y vamos a guardar todo. Vamos a cerrarlo y pasemos a
la siguiente lección y te
mostraré cómo podemos agregar la información para el artículo.
24. 4.07 Tabla de datos: Bien, entonces ahora quiero que
entres dentro de Google Drive. Si no tiene uno, por favor haga una cuenta. O puedes usar Excel
si tienes Excel, pero normalmente es la forma más fácil solo de usarlo dentro de aquí, que Google Sheets,
cuando tengas una cuenta aquí en Google, vaya a Google Drive, que puedes hacer aquí arriba. Y en realidad aquí arriba. Y puedes seleccionar Drive. Cuando estés dentro
de Google Drive, simplemente haz clic derecho aquí y
haz un nuevo Google Sheets. Y las hojas de Google,
solo
lo voy a llamar tablas de inventario RPG, si acaso tenemos un múltiplo. Entonces ahora tenemos este aquí, y sólo voy a
hacerlo un poco más bonito. Depende de ti cómo
quieres diseñar el tuyo. Bien, así que ahora
he estilizado el mío. Yo solo uso este
en el centro. Yo uso este y
uso este de aquí. ¿Bien? Entonces otro muy
importante, solo depende de
ti cómo quieres diseñarlo. Ahora, aquí arriba,
queremos escribir una identificación. Así que aquí arriba sólo voy
a hacer que todos ellos se desplacen. Tenemos un ID y ahora
realmente tienes que escribir cada variable
que hayas escrito aquí en tu información de elemento de
estructura. Entonces tenemos una identificación, hay que
tener esto para empezar. Y luego tenemos el nombre, luego tenemos la miniatura, tenemos la descripción. Y recuerda escribirlas exactamente como
las has escrito aquí en tu estructura. Por ejemplo, si tienes un espacio aquí, también tienes que tener un
espacio aquí. Entonces escríbelos exactamente
como
los has escrito en la categoría de estructura. Tenemos la pérdida de artículo, tenemos el está encendido al
móvil y tenemos el es apilable y el
último, tamaño Max Stack. Bien, entonces ahora
los tenemos a todos aquí. Y para el ID, la
razón por la que necesitamos un ID es porque
más adelante en el juego, le
decimos al motor que
le damos un ID aquí y el ID, si vuelves a
tu base de artículos,
recuerda en la base de artículos, creaste esta variable de nombre de
elemento. Entonces esto en realidad
será RID aquí. A partir de esto,
en realidad vamos a decirle al motor. Entonces por ejemplo para este plátano,
vamos a decirle
al motor de qué fila vamos a tomar
esta información. Entonces por ejemplo, si tienes
la idea del plátano, va a tomar
esta información aquí. Sabe que hay que
mirar esta fila donde están
las ideas del plátano. Y conoce la miniatura del plátano y la
descripción y así sucesivamente. Es por eso que hicimos el nombre de
este artículo y
escribimos el nombre del artículo en
cada plano infantil. Bien, así que
en realidad necesitamos agregar cada artículo aquí para que
no lo recuerde exactamente. Entonces déjame minimizarlo y abrir la hoja de Google así. Y ahora podemos
escribir palanca banana. Luego el siguiente es Cuchillo, manera, océano y carne y
resistencia, océano. Y recuerda escribir la
identificación exactamente como escribiste el nombre del artículo aquí para
cada uno de tus artículos. Así que recuerda escribir
lo mismo aquí. Entonces en realidad sabe qué información
debe extraer. Entonces, ¿de qué fila
debería extraer? Voy a copiar todas
esas y pegarlas. Aquí están las miniaturas. Puedes ir a la interfaz de usuario
y a los iconos. He incluido algunas de
las miniaturas para ti. Entonces para el plátano,
puedes hacer clic derecho, ir a Copiar referencia. Y ahora puedes ir aquí
y pegar esta referencia. Entonces así es como se ve. Se ve raro, pero ahora
el motor sabe dónde está
este icono banana porque has especificado
la ubicación del mismo. Yo haré lo mismo
por la cuchilla. Puede hacer clic con el botón derecho en la referencia
inteligente de API. Y ahora puedo pegarlo aquí. Pero el cuchillo de referencia lo
pega aquí. Y sólo voy a dar
click en No para éste. Y para el océano de la menopausia sube tu referencia y
para la carne también. Y para el océano de aguante. Bien, yo solo voy a
llenar el primero ahora aquí y luego tú puedes hacer
el resto porque lo
contrario va a llevar una eternidad. Para esta descripción, solo
puedes agregar una descripción para
tus artículos, por ejemplo para el plátano, puedo escribir un delicioso plátano o
algo así. Para la categoría, Recuerda, en la categoría de
ítem de enumeración, tenemos la categoría de
armas, comida y pociones. Y esto también es lo que
tienes en la info del ítem. Recuerda para la categoría
que utilizas esta enumeración. Entonces puede ser uno de estos tres ahora mismo. Si volvemos atrás, por ejemplo el plátano es un, es comida, por ejemplo la forma en que la poción es pociones. Recuerda escribirlo exactamente
como lo has escrito aquí. Y para la clase de artículo, la forma en que puede obtener
esta referencia no es yendo aquí y los artículos y haciendo clic derecho y
diciendo copiar referencia. Porque si haces esto, en
realidad esta no es una clase de artículo. Se trata de un actor de ítem. Así que vamos a eliminarlo de aquí. La forma en que suelo hacer esto es si solo voy a una tabla de
datos aquí. Y yo sólo voy a
hacer un artículo al azar aquí. Y vamos a seleccionar una
clase de artículo por ejemplo el plátano. Voy a hacer clic con el botón derecho en
esto aquí y dar clic en Copiar. Ahora puedo volver a mis
Hojas de cálculo de Google y pegarlo aquí. Y esta es la correcta para
las clases de ítem. Entonces aquí para la última
referencia aquí, correcta es si
ves blueprint clase
generada, esta
es la correcta. Bien, entonces ahora tenemos
el plátano aquí y lo que puedes hacer es simplemente copiar esto, pegarlo aquí abajo, y puedes simplemente cambiar el nombre del
plátano a cuchilla. Y éste de aquí también. Entonces dos veces palanca, palanca. Se puede hacer esto para que el
resto sea consumible. Es sólo un sí o un no. Lo que suelo hacer en
Google Sheets es ir a Formato y hacer formato
condicional. Y en vez de aquí,
selecciono para la regla de formato, selecciono texto es exactamente aquí. Podemos decir falso. Y apuntará al rojo, o el color será
rojo si es falso. Y agregaré otra regla
y la cambiaré a true. Y luego cambia el color a verde si es cierto,
así como así. Entonces ahora puedo ver si
escribo falso aquí, se vuelve rojo, pirita, cierto, se vuelve verde. Y esto es para los booleanos de aquí. Siempre que tomas un booleano, dice verdad, así. Siempre que lo tengas
desmarcado, dice falso. Entonces esto es muy genial. Ahora, permítanme simplemente eliminar
esto y en su lugar, en cambio, voy a hacer clic en
Insertar y voy a seleccionar una casilla de verificación. Puedo ver por esta casilla de verificación, si está desmarcada, es roja. Si está marcado, lo cual es cierto. En realidad es como este verde. Hay mucho más fresco
en mi opinión. Simplemente puedes arrastrar esto en todos tus artículos
así como así. En realidad déjame tenerlo a
falso antes de hacer esto, arrastrándolo a todos los
artículos así como así. Y creo que esto
es mucho más limpio. Bien. Ahora que tienes toda
la información llenada para cada ítem, puedes continuar y hacer clic en Archivo y seguir adelante y hacer clic en Descargar y
descargarlo como un archivo CSV. Ahora voy a dar click
aquí y mostrar en carpeta aquí en mi carpeta
Descargas. Ahora puedo cambiarle el nombre y
puedes cambiarle el nombre
al mismo nombre exacto que
le diste a tu tabla de datos. Por lo que llamamos al DT item info. Y ahora puedo abrir mi motor y aquí voy
a cerrar todo. Voy a ir
a mi tabla de datos. Y aquí lo que
quiero que hagas es importar es que sea
capaz de tu motor. Entonces, lo que puedes hacer
es simplemente hacer clic y arrastrar esto a esta tabla de datos. Y ahora va
a decir Importar. Está bien, genial. Demos click sobre esto aquí y
veamos si tenemos algún error. Ahora puedes ver Forma muy genial de
llenar toda la información. Así que ahora tenemos por ejemplo
para el plátano, tenemos el nombre, la miniatura, tenemos la descripción, la categoría, la clase de ítem. Si es consumible y apilable
y el tamaño Max Stack, entonces los tenemos para
cada artículo individual. Esta es la manera más fácil de hacer
esto aquí en la tabla de datos. Y la razón también, si tienes no programadores
en tu equipo, por ejemplo, diseñadores de
juegos y lo que sea. Es mucho más fácil para ellos solo cambiar la información de las hojas de datos y descargarla aquí y simplemente
importarla al juego. Y de esa manera automáticamente
cambian toda la información
de los artículos. Así que muy chulo. Si tienes un
diseñador de juegos que no sabe nada de programación, simplemente puede hacer esta información de
cambio, por ejemplo, podrías tener algo
como valor de moneda y puedes diseñar cuánto
cuesta comprar estos
artículos en la tienda. Y la gente puede simplemente
cambiar los valores aquí. Información importante,
y
los cambiará automáticamente dentro de aquí. Bien, ahora que esto está hecho, sigamos adelante y creemos una función de
biblioteca donde te
mostraré cómo extraer
información de cada fila.
25. 4.08 Referencia de artículo: Bien, así que sigamos adelante y hagamos clic en la carpeta de
apertura azul. Hagamos clic derecho y hagamos una
nueva carpeta llamada bibliotecas. Y dentro de aquí,
vamos a hacer clic derecho. Vaya a blueprints y seleccione el llamado,
Veamos aquí, biblioteca de funciones de
blueprint, una biblioteca aquí y llamarlo biblioteca de funciones PP, porque solo podemos tener una. La biblioteca de funciones
si la abres. Básicamente es una biblioteca
de funciones para que
podamos escuchar que solo puedes
agregar nuevas funciones. Básicamente tienes una biblioteca de funciones que creas aquí. Lo bueno de una biblioteca es que puedes usarla globalmente. Entonces por ejemplo aquí, digamos, jaja, no lo sé. Sólo vamos a llamar a
esta función jajaja. Y ahora en el jugador, solo
podemos ir
aquí al jugador ahora y hacer clic derecho
y decir, jajaja. Y ahora podemos ver,
en realidad podemos llamar a esta función desde la biblioteca de funciones
y podemos usarla aquí. Entonces, sea lo que sea que creamos una biblioteca de
funciones, podemos usar globalmente en cualquier
plano que deseemos. Entonces solo, solo para que sepas, tu juego puede llegar a ser muy lento si tienes cientos
de funciones aquí. Entonces, es una mala práctica simplemente
hacer funciones dentro de aquí en lugar de sus respectivos planos
si no los necesitas. Pero para la información del artículo, la información del artículo, realidad la necesitamos en
múltiples planos. Entonces así es como necesitas
usar las bibliotecas de funciones. Tienes que pensar, cuántas
veces vas a usar esta función si la
vas a usar en el reproductor y el controlador del
reproductor, tal vez la vayas a usar
en otra Clase Blueprint. Si vas a
usarlo varias veces, es mucho mejor simplemente
hacerlo en la biblioteca de funciones. Así que no lo tienes
para hacerlo una y
otra vez en
cada clase de Blueprint. Por aquí,
hagamos una nueva función. Vamos a hacer clic en F2
para cambiar el nombre. Voy a
llamarlo obtener información del artículo. Para esto obtener información del elemento, lo que quiero hacer
es hacer clic con
el botón derecho aquí y decir que se pone en una fila de tabla, fila tabla de
datos. ¿Bien? Entonces para esta de aquí, ¿
tenemos
que seleccionar de qué tabla de datos
estamos hablando? Estoy hablando de información del artículo DDT. Y cuál es el ítem o
cuál es el nombre de la fila. Entonces ahora puedes ver aquí, cuando seleccionamos un nombre de fila, por ejemplo el cuchillo, y
ejecutamos esta función. Sabe que aquí necesita tomar información de
la fila de cuchillos. Entonces, si vuelvo a abrir mi
Google Drive, toma información
de este ID, que es el cuchillo aquí. Y entonces conoce toda esta información
que sale aquí. Porque si lo tomas
aquí y dices break, entonces rompes esta información en todas estas
variables que creaste. Entonces, si seleccionamos el cuchillo de nombre de
fila, ahora sabe cuál es la miniatura del
cuchillo, la descripción de la
misma, la categoría, porque has definido
todos los que están aquí dentro de tu
tabla de datos en Google Drive. Y la razón por la
que sabe qué nombre de elemento de fila tiene
es porque en cada uno, recuerde en cada elemento, definió esta variable
llamada nombre de elemento. Entonces para la carne por ejemplo va a tomar
esta cosa que has escrito aquí y
el nombre del artículo se encuentran. Vamos a
pasarlo por aquí. Recuerda que esta es una variable
de cadena. Vas a esa misma base. Creamos esto como una variable de
cadena aquí. Y el item info, solo
voy a hacer una entrada de cadena que podremos usar más adelante
para meterla aquí. Y llamémoslo nombre del elemento. Bien, entonces tenemos esta. Y ahora si vas
a la tabla de datos, entonces hay un pequeño error
si no hacemos esto. Entonces en la tabla de datos, ves aquí el id
no tiene espacios. Entonces a pesar de que pones un espacio en tu Google Drive
o Google Sheets, puedes ver aquí tienes
un espacio, tienes un espacio, pero el espacio se elimina
automáticamente aquí. Entonces por ejemplo para la poción, si voy al ítem pociones de
resistencia y veo aquí has
escrito un espacio. Pero para las tablas de datos, no
pueden tener
espacios en el ID. De esta manera, en realidad
necesitamos hacer algo porque todos tus
artículos tienen espacio. Esta es la tabla de datos, no tiene espacios
y te dará un dólar y no sabes de lo
que estás hablando. Entonces necesitamos eliminar
los espacios de todas estas formas hacemos esto es
aquí en la función, solo conduzca desde aquí
y diga reemplazar. Entonces vamos a conseguir
el ítem del nombre. Vamos a reemplazar, solo escribe como espacio
aquí en el frente. Sólo un espacio. Y eso fue todo. Entonces
va a sustituir todos los espacios por nada, que significa que
elimina esta base. Y luego va
a obtener el nombre de la fila. De esa manera podremos eliminar
todos los espacios que hemos hecho
así mismo. Y eliminemos
éste por ahora de aquí y digamos nodo de retorno. Y arrastra esto a
la devolución ahora para crear
automáticamente una
salida aquí de la información del elemento. Y llamemos a esto información
de un artículo. Entonces esa era la función que
necesitamos para crear, compilar y guardar todo. Entonces, lo genial está aquí, por ejemplo, en el jugador,
ahora podemos decir obtener información del artículo. Esta es la función
que acabamos de hacer. Y puedes ver aquí, realmente no
necesitamos conectar
pines desde aquí porque en Blueprint usualmente lo conectas aquí porque estás
configurando información. Pero estos, estos
verdes, como puedes ver aquí, no
tienen esto y esto es porque solo están
obteniendo información. No están estableciendo
ninguna información. Pero no necesitamos
pasarlo por éste. Entonces para obtener información aquí, volvamos a la biblioteca de
funciones. Pueden obtener información del artículo, hacer clic en puro, y ahora compilar. Y volvamos al jugador. Ahora podemos decir obtener información del artículo. Y puedes ver aquí se pone, lo convierte en una función
get en su lugar. Entonces por eso presionas puro. Bien, así que ahora podemos
obtener la información de este artículo. Entonces sólo tenemos que especificar qué ítem estamos hablando. Vamos a hacer esto más tarde. Así que vamos a hacerlo
dinámicamente a través del inventario dependiendo de qué artículo selecciones o saquees del suelo. Entonces le va a dar
el ítem e.g aludimos al tallo en
una poción desde el suelo. Bien, va a
pasar por esto aquí. Aquí va a poner el
nombre del papel, pociones de aguante. Y ahora ya sabe de qué
información estás
hablando porque has definido toda esta información aquí. Entonces en la salida aquí, si arrastras y dices break, ahora conoce la
resistencia, pociones, categoría de descripción en
miniatura y así sucesivamente. Así que cosas muy, muy chulas. Te veré en la siguiente lección.
26. 5.01 Creación de un componente de inventario: Para hacer el inventario Componente, vamos a la carpeta
Planos. Y dentro de aquí, hagamos clic derecho y
hagamos una nueva carpeta, y voy a
llamarla componentes. Dentro de esta carpeta, hagamos clic con el botón derecho y hagamos
clic en Clase Blueprint. Entonces aquí lo que
vamos a crear es este componente actor
es este es básicamente el componente de inventario
que estamos creando. Así que vamos a hacer clic en él. Y le voy a dar un,
un prefijo de AAC para componente
actor y
llamarlo inventario. Muy bien, así que si haces
doble clic en
él, simplemente se ve
así y un plano ordinario
como ya estás acostumbrado. Entonces, por ahora, no trabajemos
aquí dentro de éste. Vayamos a los planos
y encontremos realmente al jugador. Entonces, dentro de la
carpeta del reproductor y del reproductor, y dentro del reproductor, ahora
podemos agregar los componentes del
inventario. Entonces aquí en los componentes, haga clic en Agregar y luego busque el inventario de AAC
que acaba de crear. Y aquí lo tenemos. Ahora
tenemos el inventario. Pero ahora mismo no podemos hacer
mucho con ello. Entonces esto fue para esta lección, solo agregando, creando y agregando estos
componentes de inventario. Entonces, sigamos adelante.
27. 5.02 Estructura de ranura de inventario: Antes de que podamos
seguir trabajando con se crean componentes de inventario. Sigamos adelante y creamos
dos estructuras más. Nos faltan esta
última estructura en la estructura de categorías. Entonces vamos a la carpeta
Trazos. Aquí creamos la información del artículo. Ahora volvamos a hacer clic
aquí y vayamos a planos y seleccionemos estructura. A este lo vamos a
llamar ranuras de inventario. Y vamos a entrar de aquí, saber cuál es la estructura de la
ranura de inventario. Básicamente se trata de mantener
información sobre lo que hay dentro de ese espacio de inventario
específico. Recuerda que aquí en la interfaz de usuario
creamos esta ranura de inventario. Así que básicamente estamos teniendo una estructura que
contiene información sobre lo que es la ranura específica en el inventario contiene. Entonces, antes que nada,
contiene el artículo. Entonces lo que sea que hayamos
cargado y el artículo, si haces clic aquí,
recuerda que hicimos una estructura llamada item info. Por lo que contiene este artículo
dentro de las diapositivas. En segundo lugar, también
contiene cuántos de este artículo tenemos cantidad de artículo, y esto es solo un valor numérico
entero. Entonces contiene
el widget en sí. Entonces voy a
llamarlo ranura de inventario. Luego seleccionando la interfaz de usuario, creamos la ranura de inventario WB, por lo que contiene la propia variable de
ranura de inventario. Y como último, quiero agregar un índice de slot, que podremos usar más adelante. No te preocupes por eso por ahora. Pero el índice de slot es justo ¿de qué ranura de inventario
estamos hablando? Porque recuerda, cuando
haces un inventario, tienes muchas, muchas
ranuras en el inventario. Así que siempre es agradable
darles un índice que podrás usar
más adelante si es necesario. Y eso fue todo para
el espacio de inventario. Entonces pasemos a
la siguiente lección.
28. Categoría de inventario y tabla de datos: Ahora sigamos adelante y creamos la estructura para
las categorías. Así que volviendo a la carpeta de
estructuras, haga clic de nuevo con el botón derecho y vaya
a la estructura de planos. Y llamemos a esta categoría de
inventario. Vamos a abrir este de aquí arriba. Este es muy sencillo. Simplemente va a contener qué categoría
estamos hablando. Y nuevamente, tenemos esta
enumeración llamada categoría de ítem, esta de aquí, categoría de ítem. Y lo segundo que necesitamos es el icono para la categoría. Entonces, ¿qué aspecto tiene? Oh, icono de categoría. Y tenemos un par de
íconos para la categoría. Ahora bien, este tipo aquí
es una textura 2D. Textura 2D,
simplemente una imagen. Esta textura 2D aquí de
vuelta en los activos, realidad aquí abajo en la interfaz de usuario, tenemos íconos y tenemos
íconos para las categorías. Entonces por ejemplo la
categoría de armas es este cuchillo aquí tenemos la categoría
y el icono en sí. A continuación, necesitamos crear
una tabla de datos para ello, tal como hicimos antes. Entonces voy a
abrir eso aquí arriba. Esta es la tabla de datos de
información del artículo. Y en realidad aquí abajo
voy a llamarlo DT item info. Voy a crear uno nuevo haciendo clic en el más aquí abajo. Voy a llamar a esta categoría de inventario
DT. Sólo voy a
arrastrar estas mesas. ¿Estos campos son un
poco más amplios aquí? Así como así. Bien, así que igual que antes aquí
arriba tenemos un id. y luego recuerda de
la estructura que hiciste, tenemos la categoría y luego
tenemos el ícono de categoría. Los voy a hacer
audaces aquí arriba. Entonces para la identificación, solo escribimos
el nombre de la categoría. Recuerden que tenemos armas, tenemos comida, y
tenemos cocientes. Sólo voy a
copiar esto aquí atrás. Nuevamente, recuerda
escribir esto exactamente como lo has escrito
aquí en la enumeración, lo
contrario no funcionará. Entonces, en la categoría de elemento
de enumeración numeradora, estas son sus categorías. Así que recuerda en la tabla de
datos tenemos
que especificarlos
exactamente así. Ahora para el icono de categoría, necesitamos copiar referencias. Entonces voy a volver aquí
en la interfaz de usuario y los iconos. Ahora para la
categoría de esta arma, tengo esta. Entonces, haga clic derecho, igual que
antes lo hicimos con los elementos, haga clic derecho, copie una
referencia, vuelva aquí. Ahora para la comida,
veamos cuál era. Era esta categoría de comida. Haga clic con el botón derecho en su
referencia, probado. Y para las pociones aquí,
consumibles, océanos. Haz clic con el botón derecho, copia tu referencia
y pegarla aquí. Ahora básicamente estamos
terminados con éste. Así que vamos a hacer clic en Archivo, descargar como un archivo CSV, voy a cambiar el nombre este archivo CSV aquí a la categoría de inventario
DT. Y antes de que
hagamos algo, volvamos al motor. Vaya a Tablas de datos, y hagamos clic derecho aquí, vaya a miscelánea y
luego seleccione Tabla de datos. Ahora tenemos que seleccionar de
qué estructura estamos hablando? Estamos hablando de la estructura de categorías de
inventario, como bien, y llamamos a esta categoría
de inventario DT. Ahora lo que puedes hacer es otra vez, ir a la carpeta de descargas. Podemos arrastrar esto encima de esta tabla de datos y automáticamente
importará todo. Ahora vamos a abrirlo y a ver
si todo es correcto y solo revisa todo lo
que puedas ver ha importado
todo correctamente. Y ahora vamos a guardar todo. Lo último que
tenemos que hacer de nuevo, necesitamos crear una función de
biblioteca. Entonces vayamos a la
biblioteca de funciones de la biblioteca. Y aquí igual que antes, vamos a crear uno nuevo
llamado Obtener información de categoría. O tal vez sea mejor llamarlo get's información de categoría de inventario. Entonces somos específicos de
lo que estamos hablando. Aquí de nuevo, voy a agregar una entrada de string
igual que antes. Y llamemos a este nombre
de categoría uno. Y al igual que antes, solo
voy a entrar en la información del ítem y solo
copiar y pegar esto aquí. Recuerda que
lo único que hicimos fue escribir un espacio aquí así que
eliminamos todos los espacios. Los estamos
reemplazando por nada. Entonces voy a la categoría de
inventario, pegándolo aquí, conectando la cadena fuente. Y desde aquí podemos
decir la fila Get Data Table. Al igual que antes, seleccionamos
nuestra categoría de inventario DT. Y por el nombre,
va aquí abajo. Y para la salida ahora podemos, podemos obtener un nodo de retorno en un
nodo de retorno. Y luego otra vez,
igual que antes, arrástralo a la devolución ahora
para crear automáticamente una variable aquí y
llamarla información de categoría. Bien, entonces ahora podemos
usarlo igual que antes. Ahora podemos ir a cualquier parte de cualquier Blueprint y obtener esta información. Entonces e.g. Puedo ir al jugador y aquí
podemos decir Información de categoría. Y como pueden volver a ver, esta es una función set, así que necesitamos volver a nuestra
biblioteca antes de que me olvide, haga clic en la información de la categoría, configurarla en pura. Y ahora se puede ver que es puro. Es sólo obtener información. Entonces necesitamos,
no necesitamos configurarlo. Entonces aquí necesitamos escribir
el nombre de la categoría. Esto se configurará
automáticamente más adelante. Entonces esto es lo que hemos
estado haciendo hasta ahora. Creamos una estructura
de inventario. Y luego por aquí, creamos una tabla de datos en Google Sheets e
importante está aquí. Y luego creamos una función de biblioteca que se llama obtener información de
categoría de inventario, que solo va
a obtener información sobre cualquier nombre de fila que
ingresemos aquí más adelante. Y podemos obtener esa información.
29. 5.04 Creación de las variables de inventario: Sigamos adelante y creamos las variables para el inventario. Así que volvamos a la carpeta de
componentes dentro del componente de inventario
que creamos anteriormente. Abramos el editor de
planos completo. Dentro de aquí, necesitamos
crear un par de variables. En primer lugar, necesitamos crear una variable llamada
cantidad de ranuras. Entonces, ¿necesitamos definir
cuántas ranuras tiene nuestro inventario? Y el tipo es un
entero porque es sólo un valor numérico,
como puedes ver aquí. Y lo siguiente que
debemos agregar es la categoría de inventario seleccionada. Entonces, más adelante, necesitamos establecer qué categoría
tenemos seleccionada. Esta es la
categoría e iGem, así como ésta. Entonces posteriormente podremos definir qué
categoría hemos seleccionado dependiendo de qué botón de
la categoría estemos presionando. Por ahora, sólo podemos
dejar que sea así. A continuación, necesitamos crear las
categorías que tenemos. Entonces necesitamos tener todos
los elementos que eluimos del suelo dentro de
variables que podamos contener. Entonces primero tenemos la categoría de
armas, y luego tenemos
la categoría de alimentos, y luego tenemos a los
océanos como consulta. Y recuerda para la
categoría aquí en las estructuras que creamos
este inventario ranuras. Esta ranura de inventario contiene
el artículo, la cantidad, la ranura de inventario en sí, el widget en sí
y el índice de diapositivas. Entonces estas son en realidad
las categorías. Entonces, hagamos clic aquí y digamos espacios
de inventario y seleccionemos
esta estructura aquí. Ahora si
lo compilas, puedes ver que tienes esta ranura aquí. Sin embargo, para una categoría
tenemos múltiples ranuras. Entonces para cada categoría tenemos 16 o cuántos cantidad de slots, en este caso, para este juego, vamos con 16 slots. Para las categorías. No solo
contienen un artículo. Recuerda que para cada
categoría contienen la cantidad de slots
que hemos establecido aquí. Entonces, por ejemplo, si tenemos 16 ranuras, la categoría de
armas tiene 16 ranuras, la categoría de alimentos tiene
16 ranuras y así sucesivamente. Entonces, en lugar de tenerla
como una variable normal, necesitamos cambiar el tipo de
variable a una matriz. Una matriz es simplemente un contenedor donde tenemos
múltiples de estas estructuras. Entonces haciendo clic en una
matriz y compilando, y ahora voy a compilar. Puedes ver aquí si
hago clic en el plus, ahora tenemos este singular slot dentro de estas categorías. Entonces aquí en esta ranura
contiene un artículo
y la cantidad. Y si vuelvo a hacer clic en Plus, contiene otro artículo
y la cantidad y así sucesivamente. Entonces te puedes imaginar
para una categoría, tenemos 16 artículos aquí, abajo de la fila aquí. Entonces ahora puedes ver que
tiene sentido que necesitemos tener una matriz porque no contiene solo un espacio de inventario. Contiene múltiples ranuras
de inventario. Voy a eliminar todas
esas ranuras aquí. Los vamos a sumar
dinámicamente en el juego. Tenemos que hacer lo mismo
aquí para la categoría de alimentos, buscar lotes de inventarios. Y por aquí otra vez, espacios de
inventario y recuerde
cambiarlos a una matriz. Entonces este también o una
matriz y los océanos
aquí abajo a una matriz
y seguir adelante y hacer clic en compilar y
guardar todo. Y ahora esto es lo
que tenemos hasta ahora. Entonces vamos a establecer
la cantidad de slots. De hecho
volvamos al jugador. El jugador lo abre. Y si haces clic en el componente de
inventario, ya
puedes ver que tenemos
estas variables que podemos jugar con la
cantidad de diapositivas. De hecho voy
a establecer 16 porque este es mi inventario
y tengo 16 ranuras. Si quieres más slots, puedes seguir adelante y agregar
más slots a tu juego. Y para el inventario seleccionado, vamos a
introducirlo dinámicamente en el juego dependiendo de qué
categoría estemos presionando. Lo mismo para las categorías las estamos estableciendo también
dinámicamente en el juego. Entonces esto fue por ahora. Solo recuerda
establecer la cantidad de lodo para tu inventario
y sigamos adelante.
30. 5.05 Cambia las variables de categoría de inventario: Aquí estamos dentro
del componente de inventario. Y antes de que podamos usar
estas matrices aquí, necesitamos cambiar el tamaño de las matrices. Entonces, cuando creas una matriz y una variable de un tipo de matriz, tienes que cambiar
el tamaño de la matriz antes de que
podamos usarla. Y para esta matriz, en realidad
vamos a
redimensionarla dependiendo cantidad de ranuras
para el inventario que tengamos. Voy a eliminar esto aquí, y voy a hacer clic derecho
y decir eventos personalizados. Y vamos a llamar a
éste inicializar inventario porque vamos a ejecutarlo como lo primero. Aquí abajo. Vamos a ejecutarlo a través
de los clientes. Por lo tanto, CL, inicializar el inventario para la replicación se ejecuta en
el cliente propietario y confiable. Y recuerde ejecutar el
cliente uno aquí arriba y los
eventos personalizados normales así como así. Así que muy, muy sencillo. Aquí vamos a tomar una
de las variables. Y para la matriz,
si quieres
saber qué funciones
puedes hacer para una matriz, puedes simplemente escribir array. Y luego puedes
ver que todos estos son para la matriz y puedes jugar
con esos como desees. Pero por ahora,
vamos a decir redimensionar, que estamos redimensionando esta matriz. El tamaño de la misma es
solo la cantidad de slots que
hemos creado aquí. Entonces va a redimensionarlo, esta matriz para tener 16 slots. Así que recuerda en el jugador, en el jugador bp aquí, si haces clic en el componente de
inventario, dependiendo de cuántas ranuras
hayas seleccionado aquí. Así que aquí para este juego, solo
estoy creando 16 slots. Así que va a cambiar
el tamaño de esta matriz para tener 16 ranuras también. Hagamos esto por la comida
también desde aquí y digamos
redimensionar y también para la poción, arrastremos aquí y digamos redimensionar. Ahora conecta todo. Y puedes arrastrar
de esta cantidad de slots y conectarte
aquí también. Si deseas estar más
organizado, de nuevo, puedes hacer doble clic en
esperar, redireccionar nodos. Y solo para que puedas seleccionar
todo y presionar Q y la palabra clave que
hará que todo sea
recto así. Y recuerda que tienes que ejecutar este evento en alguna parte
para que se ejecute, porque en este momento no ejecutamos este evento en ninguna parte de nuestro código. Así que vamos a ejecutarlo aquí para el jugador cada vez que
el jugador genere. Así que aquí en el
principio juega, vamos, vamos a ejecutarlo aquí y podemos derivar de
este inventario de AAC. Recuerda, este AC
hace un inventario de nuestro inventario, por lo que podemos llamar a esto eventos, así podemos llamar a
inicializar inventario y podemos hacerlo aquí
al principio. Si deseas ver
si esto está funcionando, porque ahora mismo si
haces clic en Reproducir, realmente no
puedes ver nada porque solo está redimensionando aquí. Pero a veces es muy
agradable usar nodos de impresión. Entonces cuando la cadena y aquí tal vez solo
puedas tomar este, por ejemplo y decir longitud. ¿Cuál es la longitud
de esta matriz aquí? Así que vamos a conectarlo
a esta cadena de impresión. Y ahora vamos a compilar.
Haga clic en jugar. Y aquí arriba se puede
ver que dice 16. Puedo hacer esto más largo
para que lo veas. Y déjame hacer el color rojo. Entonces si hago clic en
Reproducir, se puede ver la parte superior izquierda de la
pantalla dice 16. Entonces el tamaño de las
matrices son correctas. Ahora, ahora hagamos clic en compilar, guardar todo,
y sigamos adelante.
31. 5.06 Muestra de las categorías de inventario: Ahora vamos a mostrar los widgets
de categoría de inventario. Entonces volvamos a
la carpeta Blueprints y vayamos al controlador del
reproductor. Recuerda en el controlador
del reproductor, estamos trabajando con widgets. Dentro de aquí quiero que vayas
al Gráfico de Eventos y haz clic derecho y vamos a
crear un evento personalizado. Entonces, para este evento personalizado, lo
vamos a llamar
inventario de tarifas, widgets de categoría. Y también recuerda copiar el nombre y hagamos
uno para el cliente. Porque nuevamente, la interfaz de usuario se realiza
a través de los clientes. Así que haz clic derecho,
haz un nuevo evento personalizado y éste va a
correr a través del cliente. Entonces, para las réplicas, vamos a cambiarlo para que se ejecute en cliente de
clonación y confiable. Ahora vamos a ejecutar este cliente
uno de los ordinarios. Entonces ejecutamos el código y nos
vemos así. Entonces para los widgets de
categoría de inventario, si volvemos a nuestra UI y
dentro del inventario, aquí, hicimos una
caja vertical llamada categorías. Entonces esta es la
caja vertical y queremos
agregar las categorías a
esta caja vertical. Ahora para hacer esto primero, da clic en este cuadro
vertical y
necesitamos configurarlo en es variable. Así que en realidad podemos usar esta variable y agregar
elementos dentro de ella. Ahora, cuando sea variable, volvamos al controlador del
reproductor y ahora necesitamos acceder a él. Así que recuerda que está en el inventario de WB y
ya has hecho una
variable a partir de él antes. Así que vamos a arrastrarlo aquí, y vamos a conseguir esa variable. Ahora podemos arrastrar y escribir el
nombre de la caja de verduras. Así categorías VB. Antes de que hagamos nada, arrastrad de aquí y
digan niños claros. Porque vamos a redibujar cada categoría widgets y categorías slots
también cuando hagamos,
hacerlos más adelante, cuando volvamos
a dibujar, tenemos que eliminar los antiguos. Entonces, por ejemplo, cuando cargas un elemento, tienes que volver a dibujar
todo para actualizar la interfaz de usuario. Entonces tenemos que limpiar
los viejos antes de hacer nada. Entonces aclaremos que los niños
antes los agregamos nuevamente. Y para agregar las categorías, vamos a arrastrar desde aquí ahora y
decir que una fila de tabla nombra. Pero esto sí,
es que va dentro de
nuestra tabla de datos para la categoría
de inventario. Aquí va a conseguir cada una de las filas y podemos
imprimirlas en la pantalla. Entonces aquí están todos los nombres. Entonces aquí lo que quiero
que hagas es arrastrar desde aquí y decir por cada bucle. Así que vamos a
recorrer cada fila. Volvamos aquí
solo para mostrarte en los planos y tablas de datos
y categoría de inventario. Dentro de aquí
tenemos tres nombres de filas. Entonces las armas, la
comida, y las pociones. Y esto es lo que
va a pasar aquí. Va a hacer bucle para cada
uno de estos nombres aquí. Entonces tres veces para cada uno de ellos. Recuerde, hicimos una función dentro de la biblioteca de funciones, diciendo obtiene información de categoría. Así que vamos a obtener nuestra función de
información de categoría aquí. Y ahora vamos a enchufar este nombre
a esta cadena y
va a convertir automáticamente la variable name en una cadena. Entonces ahora estamos obteniendo
la información de la categoría. Y si no recuerdas
qué fue esto, qué fue esto, puedes hacer doble clic
sobre él y te
llevará a la función
y a la biblioteca de la función. Y puedes ver lo que
simplemente obtiene el nombre y luego obtiene esa
información de fila de tabla de datos y la genera aquí. Así que en realidad podemos usarlo
en el controlador del reproductor. Entonces aquí puedes
o bien hacer clic derecho y Dividir Struct pin y
puedes obtener la información o puedes arrastrar de
ella y decir break, esto es lo que suelo hacer. Y aquí también puedes obtener la
información. Entonces lo que estamos
tratando de hacer es para cada una de estas categorías de
inventario, estamos tratando de
crear un widget y agregarlo a este cuadro vertical. Ahora vamos a seguir adelante
y arrastrar desde aquí y decir Crear Widget. Entonces ya conocemos
esta función. Entonces vamos a
crear un widget. Y el widget que
vamos a crear es este
widget de categoría de inventario que creamos anteriormente. Recuerda en la interfaz de usuario, si vamos a la categoría de
inventario de categoría, este es el widget que creamos. Entonces este es el que
estamos creando. Y estamos creando y para
cada uno de estos nombres de fila. Entonces vamos a
crearlo tres veces. Por lo que es muy genial
trabajar con tablas de datos. Si decides agregar
una cuarta categoría, automáticamente la
tomará en cuenta aquí y automáticamente se
agregará al inventario. Así que muy genial hacerlo
dinámicamente así
porque te resultará mucho más fácil
más adelante. Bien, Así que aquí, cuando
creamos el widget, queremos decirle
cuál es la categoría. Y también queremos
enchufar este icono, porque recuerda
que tenemos este ícono estático y queremos
cambiarlo
dependiendo de cuál sea la categoría. Entonces volvamos a la categoría
de inventario. Aquí, ve a la gráfica. Y ahora vamos a hacer clic en el
más aquí para las variables. La primera variable que
vamos a hacer son las categorías. Entonces vamos a asignarle
la categoría. Y a continuación tenemos
el ícono de categoría. Y esta va
a ser textura 2D. Ahora lo que vamos
a hacer es dar clic en el primero y luego dar clic en Instancia editable
y exponer en spawn. Y puedes hacerlo
en ambos. Entonces el ícono de categoría también, instancia editable
y exponer en spawn. Lo que esto hace es que si
vuelves al
controlador del reproductor ahora, haces clic en archivo y
refrescas todos los nodos. Se puede ver que los hemos
expuesto aquí para que hecho
podamos enchufar
información en ellos. Así que vamos a arrastrar esta categoría
y asignarla aquí. Y vamos a arrastrar este icono
y asignarlo también. Entonces ahora hemos creado un widget, así que va a crear
un tres widgets. Entonces, hasta ahora lo que estamos
haciendo es que estamos limpiando los niños para esta caja
vertical para que quede limpia. Después de eso, estamos obteniendo
todos nuestros nombres de fila, que tiene todos
estos tres aquí. Lo que estamos diciendo es
para cada una de estas filas, vamos a tomar el nombre, vamos a tomar la información de la categoría de
inventario. Y a partir de aquí estamos tomando
el icono y la categoría y conectándolo a esta función
crear widget. Entonces ahora estamos creando
tres widgets, sin embargo, recuerden, solo los estamos
creando aquí. Tenemos que agregarlos
también a la caja vertical. Entonces voy a copiar esto aquí, las variables de inventario y caja
vertical. Y ahora lo que podemos hacer es
arrastrar desde esta caja vertical. Y podemos decir agregar
niño a cuadro vertical. Y vamos a conectarlo ahora. ¿Y qué niño debemos agregar? Simplemente este widget
que acabamos de crear. Ahora lo que puedes
hacer es hacer doble
clic en estas líneas para hacer notas de
ferrocarril y organizar tu código un poco mejor. Y ahora vamos a compilar. Entonces ahora mismo si hacemos clic en
Reproducir, no pasará nada. Y la razón por
la que no agrega. Entonces, si haces clic en I para abrir el inventario,
no pasará nada. Recuerda, no has
corrido este código en ningún lado, así que tienes que
escribirlo en alguna parte. Así que crea widgets de
categoría de inventario. De hecho, solo vamos a
ejecutarlo para el jugador. Entonces si vuelves a los planos y
vamos al jugador B,
jugador aquí en la jugada de
inicio, Digamos ahora Get Controller. Y vamos a conseguir el
controlador para este reproductor. Entonces podemos decir, recuerda aquí
hicimos una interfaz llamada int player controller. Entonces tenemos la referencia del
controlador del reproductor. Entonces podemos decir que es layout, control o referencia
porque esta es la interfaz
que hicimos antes. Entonces ahora como el controlador del reproductor, porque recuerden, hemos estado trabajando en el controlador del
reproductor, así que necesitamos la referencia
y ahora podemos llamar a los widgets de
categoría de inventario de tarifas. Así que dentro de aquí, Digamos crear widgets de
categoría de inventario. Y debería funcionar. Así que vamos a compilar y
guardar todo. Ahora nos va a dar un bicho. Entonces, si hacemos clic en reproducir
y yo hago clic en el ojo, se
puede ver que no pasa nada. Y si salgo de aquí, nos
va a dar un bicho. Y la razón es que si
volvemos al controlador del jugador, estás, estás
tomando información de esta variable de inventario de WB. No obstante, antes hacemos
clic en el ojo, así que éste, recuerda, lo
estás ejecutando instantáneamente
cuando el jugador está desove. Sin embargo, esta variable aún no
se ha creado. Esta variable solo se
crea cada vez que haces clic en el botón I porque
luego abres el widget aquí y
creas esta variable. Entonces, si puedes copiar esto aquí, creamos widget para el inventario y
vuelves al Gráfico de Eventos. Y aquí arriba en el
inicializar los widgets, solo
voy a
agregar el inventario
también porque la India Sheila is widgets se ejecuta automáticamente cuando empezamos a jugar el juego. Así que en realidad se
crea de inmediato y
podemos usarlo aquí en la jugada inicial también para
el jugador. Y la razón por la
que se crea más rápido en el controlador es porque el controlador del jugador se crea antes de que se cree el
jugador. Así es como es. Así que ahora vamos a hacer clic en play. Y cuando hacemos clic en la IA, se
puede ver, ya podemos
ver la información aquí. Podemos ver todos
los tres widgets. Sin embargo, los íconos no
han cambiado. Y porque este es el
último paso que nos falta. Así que volvamos aquí. Pasemos a la categoría de
inventario de WB. Aquí. Eliminémoslos y
mantengamos la construcción del evento. Para la
construcción del evento, esto es lo mismo que
la jugada de inicio. Lo que tenemos que hacer
es que tenemos que tomar esta categoría de imagen
porque recuerda, si haces clic en ella, esto es
como la nombraste aquí. Entonces este es mi icono, mi imagen. Entonces necesito tomar esta
variable aquí y decir, establece pincel a partir de textura. Y ahora podemos elegir a qué
textura configurarlo. La textura es simplemente este icono de
categoría que acabamos de establecer. Porque recuerda en
el controlador del jugador, cada vez que creamos
la categoría, le
asignamos el ícono de
categoría respectivo, en realidad ya
tenemos
lista esa variable y podemos
conectarla a la textura. Ahora vamos a compilar y
vamos a dar click en play. Y si hago clic en i
ahora se puede ver que todos los iconos de categoría se
asignan automáticamente. Así que solo un rápido recorrido a través. Si volvemos aquí, creamos estos widgets de categoría de
inventario de crédito. Y lo ejecutamos a través del cliente porque widgets para ejecutar
a través del cliente. Y luego eliminamos o limpiamos los niños aquí solo para
asegurarnos de que esté vacío, luego obtenemos todos los nombres de fila de la tabla de
datos. Y para cada uno de estos nombres que están obteniendo
su información. Y con esa información, podemos conectarla
al widget Crear. Así que estamos creando los widgets uno por uno a través de
esto para cada bucle. Y estamos enchufando
la información. También los estamos agregando
uno por uno con la pendiente. Entonces ahora hemos creado las categorías y las
agregamos a nuestro inventario. Así que pasemos a
las ranuras de inventario.
32. 5.07 Muestra las ranuras de inventario: Las ranuras de inventario,
volvamos al controlador del
jugador. Y al igual que antes,
las categorías, bajemos por aquí y
hagamos un nuevo evento personalizado. Y llamemos a esto widgets de tragamonedas
de inventario de tasa de eventos personalizados . Nuevamente, copiemos
este nombre porque tenemos que pasar uno a
través de los clientes. Así que vamos a hacer un evento personalizado y ejecutarlo a través del cliente. Recuerda hacer click en él. Corre en ser dueño del cliente
y confiable. Y para el cliente o
para el normal, tenemos que ejecutar al cliente. Recuerda que son los
widgets de slot, no la categoría. Entonces seleccionando los widgets de ranura. Entonces qué queremos hacer
con estos widgets, si volvemos a la UI y
damos click en el inventario. Así que aquí recuerda
para el inventario, creamos esta cuadrícula de variables
de inventario. Entonces para este inventario de cuadrícula, lo que tenemos que hacer de nuevo, que hacer clic
aquí es variable lo contrario no podemos usar esta variable. Entonces si no lo hago,
click es variable. Puedes ver aquí si consigo
mi inventario y como cuadrícula, simplemente no
podemos
ver esta variable. Pero si voy aquí y hago clic en la variable
S para este inventario de
cuadrícula, ahora
puedo arrastrar desde
aquí y decir cuadrícula. Y se puede ver como una variable y podemos
usarlo igual que antes. Despejemos a los
niños y asegurémonos no
haya
espacios de inventario dentro él cada vez que aludimos a un artículo más adelante o lo soltemos
del inventario, tenemos que volver a dibujar todas
las ranuras para actualizar
el inventario. Tenemos que
asegurarnos de que los viejos estén despejados antes
de agregar los nuevos. Así que limpiemos a los niños y asegurémonos de que esté vacío y limpio. Ahora vamos a hacer un bucle. Así que conduce desde aquí
y di por bucle, y selecciona éste. Entonces nuevamente, recuerda por
la cantidad de slots, ya
tenemos una variable
en el inventario. Entonces, si volvemos al componente de
inventario aquí, creamos este
llamado cantidad de slots. Necesitamos una referencia
a este inventario. Entonces aquí arriba, voy a
hacer clic en el más y luego encontrar mi variable de
inventario AAC. Y llamémoslo inventario. Y entonces hagamos lo
mismo aquí abajo. Déjame hacer clic en el Plus, seleccionar la
variable de inventario AAC y llamarlo inventario. Entonces ahora lo que podemos hacer
es enchufarlo aquí. Y para éste, crea widgets de slot de inventario. Vamos al jugador y hagamos
clic en el jugador DP. Y dentro de ella, otra vez, vamos a ejecutarlo
en el Begin Play. Podemos tomarlo aquí desde
el controlador igual que antes lo que hicimos con
las categorías de inventario. Así que vamos a arrastrar desde
aquí y decir para crear widgets de ranura de inventario. Entonces seleccionando este de aquí y necesitamos enchufar
el inventario. Recuerda, puedes
simplemente arrastrar desde aquí porque ya
tienes el inventario. Y también has definido cuántas ranuras tienes
en tu inventario. Entonces ahora puedes tener este número, este 16 aquí que escribimos. Entonces, si volvemos
al controlador del jugador, necesitamos bucle tantas veces
como lo que has escrito aquí
por la cantidad de slots, porque esta es la cantidad
de slots que queremos crear. Así que arrastrando desde aquí y diciendo cantidad de slots, este de aquí. Ahora para los bucles, parten
del índice de cero y no de uno. Si solo los enchufamos aquí, va a crear 17 espacios de
inventario y no 16. Tenemos que tomar este
y decir menos. Así restar y
restar por uno, luego conectarlo
al último índice. Entonces, ¿qué vamos
a hacer 16 veces? Simplemente vamos
a crear widgets. Y lo que quieres crear, queremos crear un inventario de
WB slots. Y así como
algo agradable más adelante, necesitamos tener el índice de slot. Así que volvamos a la interfaz de usuario y abramos el
espacio de inventario. Yo sólo voy a ir
a la gráfica y hacer una nueva variable
llamada slots index, y luego seleccionar el
entero y compilar. Y al igual
que antes, seleccionemos la instancia editable
y expongamos en spawn. Vuelve al
controlador del reproductor como en el archivo y actualiza todos los nodos. Entonces ahora podemos tomar esto y enchufar esto en el índice de slot. Siempre es bueno tener este índice porque
más adelante puedes necesitarlo cuando estés programando y necesitas un slot específico. Bien, así como lo
último ahora, al igual que antes de
crear el widget, ahora
necesitamos agregarlo a
la grilla que tenemos. Entonces tomando esto aquí, el inventario de WB y luego
la variable de inventario de cuadrícula. Y ahora arrastremos
desde aquí y digamos Agregar niño a la cuadrícula
y menos conectado. Entonces para la cuadrícula, aquí tenemos las
filas y las columnas. Ahora antes de hacer esto, el contenido que queremos agregar es simplemente este widget
que acabamos de crear. Y puedes hacer doble clic aquí nuevo para hacer un nodo de reencaminamiento. Ahora para las filas
y las columnas, Es muy, muy sencillo. Se puede arrastrar de aquí
y decir dividido por cuatro. Porque lo que quiero que
hagan es que el inventario sea de cuatro franjas horarias por la fuerza, mucha pérdida de bosque
por cuatro ranuras. Y esto es lo que puedes hacer. Entonces tenemos 16 slots
divididos por cuatro, eso nos dará
cuatro en la columna. Y también divididos por cuatro
no se dividen sino módulo cuatro y luego nos
dará cuatro por cuatro. Entonces si arrastramos de
aquí otra vez y decimos módulo y seleccionamos esto aquí, y luego cuatro nuevamente. Ahora podemos tomar esto y
conectarlo con la fila, y tomar esto y
conectarlo con la columna. Por lo que siempre se pueden
cambiar estos números. Es porque quiero tener
mis slots cuatro por cuatro. Pero tal vez quieras que tus diapositivas sean ocho
por ocho para que puedas cambiar estos números
dependiendo de cómo
se vea tu inventario. Ahora hagamos clic en
compilar y hagamos clic en una forma para
ver qué pasa. Si hago clic en, puedo ver mi inventario se está
agregando a mi pantalla. Entonces así es como se ve. Es muy enorme ahora mismo, y necesito reducir el tamaño. Pero vamos a eliminar todos
los iconos para
empezar por defecto, porque no quiero ver todos
los iconos que aparecen por defecto. Entonces voy a hacer click
en la ranura de inventario, volver al diseñador. Y aquí puedes dar
click en el icono y bajar aquí en la
visibilidad y configurarlo en oculto. Lo mismo con el
número haz clic en él, vuelve a la visibilidad y además configura este a oculto. Ahora bien, si hago clic en Reproducir de nuevo, y ahora hago clic en el ojo, puedes ver que todo está oculto y es más agradable de esta
manera porque
luego podemos mostrar los íconos más
adelante si realmente tenemos un elemento y no este ícono
predeterminado para el tamaño, podría quedar bien para ti. Si vuelvo aquí, pueden
ver aquí estoy
diseñando en 12 80 por 720. Entonces esta es mi pantalla de
diseño predeterminada aquí. Para esto lo estoy
diseñando. Las personas con monitores más pequeños lo
verán normalmente así. Se ve que no
es, no es enorme así. Si hago clic en jugar
y clic en aquí, puedes ver que aquí es muy enorme. Y realmente no se
ve así por aquí. Esto se debe a que tenemos
algo llamado escalado DPI. Ahora estoy trabajando en
esta resolución. No obstante, si haces clic aquí porque tengo un
tenedor, un monitor, es yo pienso algo
acerca de 3 mil aquí, 3 mil 800. Entonces al hacer clic en este pequeño icono, puedes ver aquí está escalando mi UI dependiendo de
cuál sea mi pantalla. Entonces ahora mismo lo estoy diseñando
para una pantalla por aquí. En realidad este de aquí. Sin embargo, mi pantalla
está por aquí. Entonces es en realidad,
se puede ver que la escala es para realmente escalarla
cuatro veces o 3.5 veces. Lo que puedes hacer es simplemente seleccionar esta y luego
puedes reducir la escala para
que no escale tanto. Al hacer clic aquí y simplemente
configurarlo en dos, por ejemplo y esto es solo si te
sucede a ti. Entonces esto suele ser cuando se
quiere cambiar el tamaño de interfaz de usuario de dos monitores diferentes y hacer que se vean bien
para diferentes monitores. Puede haber 2.5 y el
tamaño haciendo clic en Play, puedo dar click en el ojo. Se puede ver que
ahora es mucho más pequeño y me gusta
más así. Bien, entonces ahora agregamos
las ranuras de inventario. Vamos a guardar todo,
y sigamos adelante.
33. 5.08 establece la categoría de inventario: Tenemos que hacer ahora
es cuando hacemos clic en un botón de categoría
para el inventario, necesita configurarlo a
esa categoría seleccionada. Así que vamos a seguir adelante
y los planos, y vamos a crear esta lógica dentro del componente de
inventario. Bajemos aquí y
hagamos nuevos eventos personalizados. Y a este que vamos a llamar establecer categoría de inventario seleccionada. Y nuevamente, estamos
trabajando con UI. Entonces voy a
copiar esto y hacer un nuevo evento personalizado y
ejecutarlo a través del cliente. Así corriendo, siendo dueño del
cliente y confiable. Entonces, ¿qué necesitamos
hacer aquí para este conjunto de categoría de inventario seleccionada? Recuerde, hemos realizado
esta enumeración, la categoría de artículo E, conjunto, la categoría de
inventario seleccionada. Vamos a arrastrarlo desde aquí. Y mientras
mantienes presionado Alt, puedes soltarlo y
automáticamente se establece así. Así que simplemente estamos configurando esta variable y voy a arrastrar esta y
soltarla en el evento. Esto
creará automáticamente una entrada aquí. Puedes crearlo manualmente, o simplemente podemos hacer clic
y arrastrar y soltar. Y lo creará para ti. Ahora llamemos al
cliente uno aquí arriba, Establecer categoría de inventario Seleccionado. Voy a hacer click y
arrastrar esto nuevamente aquí, así que simplemente recorre todo
el proceso. Ahora, necesitamos ejecutar
este evento cada vez que hacemos clic en un botón
o en las categorías. Así que volvamos a la interfaz de usuario y hagamos clic en
la categoría de inventario. Ahora, vamos a hacer clic en este botón, la categoría del botón
y déjame bajar. Y luego en el evento OnClick. Entonces, ¿qué debería pasar
cuando haga clic en este botón? Simplemente quiero llamar a este conjunto categoría de
inventario seleccionada. Entonces, ¿cómo conseguimos este evento? Estamos dentro
del inventario y ahora mismo
estamos dentro de la interfaz de usuario. Esta puede ser una práctica
para que intentes averiguar cómo llegas
realmente ahí, cómo llegas a ese inventario. Ahora, hagámoslo juntos para que puedas hacer una pausa si
quieres hacerlo solo. Entonces aquí, lo que queremos hacer
es que haya una función donde se pueda obtener la capa
que posee esta interfaz de usuario. Entonces cada, cada interfaz de usuario que
se genera para un jugador es
propiedad del jugador. Entonces ahora mismo podemos
hacer clic derecho y decir Get Owning layer on. Entonces está tratando de encontrar la
capa que posee esta interfaz de usuario. Y aquí realmente necesitamos
una referencia al jugador, pero aún no hemos hecho una. Recuerda los planos
cuando vamos a interfaces. Aquí solo tenemos
una interfaz para el controlador donde tenemos el control de capa get,
nuestra referencia. Así que en realidad necesitamos hacer
uno para el jugador también. Entonces voy a volver
aquí a las interfaces,
haga clic con el botón derecho en Blueprint,
Blueprint Interface. Vamos a llamarlo capa int.
Haga doble clic sobre él. Y dentro de aquí
para la función, llamémoslo get's
layer reference. Y ahora aquí abajo, recuerda que tienes que seleccionar la variable a la que
quieres hacer referencia. Entonces quiero hacer referencia
a la capa BP, y llamémosla
capa aquí abajo. Vamos a compilar. Recuerda, muy
importante compilar aquí. Ahora vamos al reproductor
y agreguemos la interfaz. Entonces bp player Ir a la clase por defecto son
en realidad los Ajustes de Clase. Y aquí para las interfaces, vamos a hacer clic en él y
buscar int layer compile. Y ahora verás aquí en
las interfaces obtener Blair ref. Al igual que antes, necesitamos
definir quién es el jugador. Estamos dentro de
los jugadores B2B. Así que solo puedes
intentarlo, puedes decir auto. Entonces esta es la referencia de maquetación. Bien, entonces ahora tenemos
esto y ahora podemos volver a nuestra IU de categoría de
inventario. Así que consigue ser dueño del peón del jugador. Ahora dice, ¿de qué Jugador sobre estás
hablando específicamente? Estoy
hablando específicamente de jugador bp. Entonces podemos decir que ahora obtiene referencia de
jugador
que acabamos de hacer. Y es mensaje porque es
de una Interfaz de Blueprint. Entonces ahora tenemos la referencia
del jugador, y ahora como jugador, ahora
podemos obtener el
inventario porque todo
el proceso aquí
fue obtener el inventario. Así podemos llamar a establecer la categoría
de inventario seleccionada. Entonces aquí en el, en la categoría de inventario UI, vamos a arrastrar desde aquí
y digamos AAC, inventario. Y bajemos y
encontremos la variable. Las variables están
siempre al final aquí. Ahora como el inventario podemos llamar a establecer la categoría de inventario seleccionada. ¿Y cuál es la categoría? ¿Quieres configurarlo? Recuerda en el controlador
del reproductor, si vuelvo ahora, ahora va a ser un poco confuso
porque
vamos de ida y vuelta lo que estoy tratando de
explicarlo lo mejor que pueda. Recuerda en el controlador
del jugador cuando hicimos las categorías para cada uno de los nombres de fila
aquí de nuestra tabla de datos. Tomamos la categoría
y la enchufamos al botón creado aquí. Entonces aquí en el botón
ya sabe cuál es
la categoría. Así que simplemente puedes
hacer clic y arrastrar esto y conectarlo aquí. Entonces cada botón
tendrá su propia categoría, que ingresará aquí. Y la información correcta se
establecerá aquí. Bien, muy importante. Cada vez que establecemos la categoría, queremos volver a dibujar todos
estos botones. Entonces aquí en las franjas horarias de inventario, queremos volver a dibujar todas estas ranuras porque
estamos cambiando de categoría. Por lo que no queremos ver las viejas ranuras de
la categoría antigua. Ahora lo que tenemos que hacer, y
esto es en realidad por
lo que sí
declaramos niños porque queremos quitar
los botones viejos o los viejos slots de inventario ser
antes de agregar los nuevos. Tan grandes widgets de ranura de inventario. Tenemos que llamarlo en el año que establecemos la categoría
entera seleccionada. Y ahora necesitamos una referencia al controlador
del jugador
de este inventario. Entonces, ¿cómo hacemos esto? La forma en que hacemos esto primero, tenemos que conseguir al jugador. Así que realmente no podemos obtener el controlador del reproductor
directamente de este componente. Pero recuerden, este componente
está dentro del jugador. Entonces lo que podemos hacer es que
podemos hacer clic derecho y decir, sin embargo dueño, que va a
conseguir el jugador. Y nuevamente, igual que antes
tenemos que contarlo específicamente, somos onerosos o de lo que
estamos hablando. Estamos hablando
específicamente de este jugador de bp. Entonces podemos decir obtiene
referencia de capa que acabamos de hacer. Y ahora podemos conectar éste. Y aquí podemos conseguir
el controlador. Para que puedas rastrear aquí
y decir Get Controller. Sin embargo, se puede decir get
controller y luego se puede decir Get layer, la referencia del
controlador. Y de esa manera puedes
llamar a crear,
crear espacios de inventario, widgets. Puedes hacerlo así. No obstante, esto haciéndose muy largo que tenemos que hacer esto
cada vez. Entonces, en cambio,
volvamos al jugador. Y en lugar de hacer
esto get controller, vamos a
crearlo en una variable. Así que por aquí en la jugada de inicio, en vez de hacer esto, vamos a obtener el Controller
y digamos obtiene la capa de referencia de Controller. Y ahora podemos hacer clic
aquí y promover esto a una variable y
llamarlo controlador de diseño. Pero ahora tenemos el
controlador del reproductor y no tenemos que hacer esto cada
vez dentro de aquí. Entonces, cuando tengamos el control de
placa, en realidad
eliminemos este costo. Como ahora tenemos esta Interfaz de
Blueprint, podemos eliminar esto de vez en cuando solo podemos conectarlo aquí en lugar de
conectarlo juntos. Y vamos a arrastrar
todo más cerca. Y ahora este controlador de flujo también se
puede utilizar aquí. No tenemos que llamar a
este controlador de reproductor. Otra vez. Vamos a eliminarlo y
conectémoslos aquí. Ahora el objetivo aquí de nuevo es el controlador del
jugador de rol de las plataformas. Así que tomemos esta
variable de controlador de diseño que acabamos de hacer. Y vamos a conectarlo aquí arriba. A continuación vamos hasta aquí
y se puede ver que está mucho más limpio que antes. En lugar de llamar a la referencia
del controlador del jugador cada vez, solo
podemos hacer esto. Voy a
organizarlo un poco mejor, así que no es demasiado desordenado aquí. Bien, entonces ahora tenemos este controlador y
se ve genial. Y en realidad podemos
hacerlo aquí también. Para hacerlo más limpio, podemos tomar el controlador del
reproductor y simplemente iniciar sesión aquí. En realidad esto está mal. Entonces tomémoslo aquí, solo llámalo aquí, y solo podemos
conectarlo manualmente así. Y podemos eliminar este controlador
negro. Entonces ahora es mucho más limpio
de ver así. Y déjame arrastrarlos
más juntos. Entonces el código está mucho
más limpio aquí. Y si volvemos
al inventario de AAC, ahora en vez de llamar a esto, ahora
terminamos capa tener la variable
player controller. Entonces eso es mucho más limpio. Y podemos conectarlo aquí y llamar a los widgets de slot create
inventory. Y el inventario nuevamente, podemos tomar del jugador y llamar
a
la Variable de inventario AAC, bajar al fondo,
encontrar la Variable de inventario
y conectamos aquí. Bien, así que esto
ya está terminado. Entonces aquí, cuando estoy en el
juego y hago clic en el ojo, es realmente imposible hacer clic en el botón
porque en este momento no tenemos un mouse que
puedas ver o podemos
correr alrededor de eso. En realidad no tenemos un ratón. Así que vamos a arreglar esto. este momento me sale una
caja ya que x es nueve tratando de leer la
propiedad y está
hablando de que obtienes subsistema de nivel
local, el contexto de mapeo. Así que en realidad tenemos que
volver con el jugador aquí. Al contexto de mapeo no le
gusta esto. Habrá cuatro. De hecho lo configuramos
y lo enchufamos. Arrastremos desde el
controlador split y digamos que es válido. Solo asegurándose de que sea
válido antes de que realmente funcione. Este código es válido. Y si es válido, puedes seguir adelante
y ejecutar el código. Ahora puedes hacer doble clic
sobre esto para que sea más agradable. Y hagamos clic en Reproducir y
veamos si vuelve a fallar. Corriendo por ahí. Si corro en el cliente también, puedo quitarlo y se puede ver que ya no tenemos caja. Así que solo asegurándonos de que sea
válido antes de hacer esto. Bien, así que para el ratón, vamos al controlador del reproductor. Aquí en los valores por defecto de clase. Tienes show mouse, cursor. Ahora vamos a darle click aquí
y vamos a hacer clic en Reproducir. Y ahora puedes ver, puedo ver el ratón y ya no puedo
mirar a mi alrededor. Realmente no es importante para este curso no se
trata de movimientos, así que realmente no me importa, pero puedes sostener el mouse y puedes darle la vuelta al
jugador y mirar a tu alrededor. Pero no
es realmente importante por ahora, no te importa el
movimiento ni fijarlo. Centrémonos
en el inventario. Entonces, hacer clic en el
inventario no
funciona porque realmente no lo
hemos establecido. Tenemos que arreglarlo también. Cuando pongo el mouse sobre
los botones de categoría, tampoco
puedo
presionarlos realmente. Entonces veamos qué
pasa con eso. Entonces, vamos a cerrar esto. Volvamos a la categoría
de inventario y vayamos al diseñador. Entonces, mirando el botón, puedo ver que está configurado en azul
cuadrado hasta el final. Y eso está mal. No, para el Hubbard, tenemos que
cambiarlo a Hubbard. Y para los oprimidos
necesitamos cambiar para descansar. Y luego recuerda copiar el tamaño de la imagen porque
los botones han cambiado. Así que haz clic con el botón derecho
aquí y haz clic izquierdo para pegarlos
aquí para la imagen, solo asegurándote de que la visibilidad sea
ninguno que haya comprobable, así que no bloquea el botón. Y ahora si
pasamos al menú I, así que ahora mismo necesitamos tener este botón funcionando
también cuando hacemos clic en él. Entonces, si voy por aquí y
selecciono esto en me
gusta, necesita abrir el inventario. Entonces si solo compila y
vuelvo al jugador. Entonces aquí, cuando
abrimos el inventario, lo que podemos hacer es hacer otro evento personalizado
y vincularlo a aquí. Entonces funciona para el botón. Bueno, hagamos clic con el botón derecho
aquí
y evento personalizado, y digamos abrir inventario. Enchufa esto aquí. Entonces esto solo se dispara cada vez que se está
presionando
nuestro botón, abrir inventario. Así que volvamos a la interfaz de usuario principal. Y aquí para este botón
otra vez, al igual que antes, haz clic derecho y di
Get Owning, capa. Así que estamos consiguiendo
al jugador porque aquí es donde está nuestra lógica,
es Poseer Player sobre referencia de
capa. Y ahora vamos a
conectarlos juntos. Y aquí ahora podemos
decir inventario abierto. Entonces ahora debería funcionar. Vamos a compilar todo. Vamos a hacer clic en Reproducir. Y si hago clic en la interfaz de usuario aquí puedes ver
el inventario que se abre. Y si hago clic en
ojo, también se abre. Entonces lo es, Oh, está
funcionando correctamente. Y el hover sobre los
botones también funciona. Ahora no puedes ver
si estamos cambiando categoría porque
no tenemos ningún artículo. Entonces es muy difícil de ver. Entonces, si quieres
verlo solo rápido, puedes ir al controlador del
reproductor aquí donde agregas tus ranuras de
inventario. Muy buen método para
ver las cosas es usar la cadena de impresión de aquí en el bucle cuando estamos
creando los widgets, vamos a arrastrar desde aquí
y guardar la cadena de renta. Ahora lo que queremos
imprimir en la pantalla,
vamos a imprimir todos los
widgets que estamos creando. Entonces a partir de aquí, conectado aquí, y va a crear
este get display name. Entonces te va a mostrar el nombre para mostrar
de estos widgets. Ahora vamos a hacer clic en play. Y puedes ver que crea
los widgets para ambos jugadores. Cuando haces clic en
AI y luego haces clic en Categoría, crea widgets. Si haces clic en otro, puedes ver que aumenta
en número para los widgets, pero estamos recordando limpiar
a los niños. Entonces no es porque
haya 79 de ellos engendrados. Sólo están estos
engendrados ahora mismo. Esto está funcionando correctamente. Cada vez que hago
clic en una categoría, está creando nuevos widgets. Entonces, lo único que necesitamos ahora
es trabajar también con
los artículos. Así que compilemos todo, guardemos todo y
pasemos a la siguiente lección.
34. 5.09 Vuelve a añadir artículos existentes para diseñar: Bien, entonces ahora lo
que queremos hacer es
agregar artículos existentes
al inventario. Entonces en este momento realmente
no tenemos artículo alusivo ni
nada por el estilo. Pero lo que podemos hacer si vamos
al controlador del jugador, ahora mismo, solo estamos agregando
los widgets de slot de inventario. estamos creando, y luego los estamos agregando
a esa grilla aquí. Pero cuando cambiamos, cuando borramos a los
hijos y cambiamos categoría y
volveremos a dibujar los widgets de slot. También tenemos que volver a dibujar
todos los artículos, así que mostrando los artículos y
podemos hacer esto aunque no
tengamos
saqueos de artículos en este momento. Entonces antes agregamos los widgets aquí a los hijos o
al inventario de la grilla. Tomemos ahora esto
y solo voy a empujar esto aquí abajo solo por un poco para que
podamos agregar algunas
cosas más dentro de aquí. Entonces lo que queremos
hacer es que queremos obtener el borrado
del inventario. Entonces, si volvemos
al inventario, solo como recordatorio, vamos al inventario de
componentes. Aquí hicimos las
tres categorías. Entonces hizo la categoría de armas, y es una matriz de
la ranura de inventario. Entonces, si hacemos clic en el Plus,
podrás ver que consiste en un artículo y luego la
cantidad del artículo, la ranura de inventario
y el índice. Y si
volvemos a hacer clic en el plus, tenemos otro ítem. Entonces ahora tengo dos artículos. Y así como así. Entonces dependiendo
de todos los artículos que tengamos, necesitamos dibujarlos
también aquí para que
no los extrañemos durante
el redibujo aquí. Ahora primero vamos a obtener
todos estos tres. Borrar aquí. Así que vamos a
arrastrar del inventario. Y digamos categoría de armas. Como otra vez, digamos Alimentos
o categoría de alimentos. Y escribamos categoría
pociones. Entonces ahora tenemos todas
estas tres categorías. Ahora vamos a arrastrarlo aquí. Y lo que queremos hacer es
que queremos arrastrar de uno y decir conjuntos de elementos de matriz. Queremos establecer el elemento
array, queremos establecer el índice
del ítem que
ya está dentro de aquí. Y para hacer esto como podemos simplemente arrastrar
desde aquí y decir set array elements porque también
necesitamos hacerlo para esos. Entonces realmente depende de qué categoría de inventario
hayamos seleccionado. Aunque. Tenemos que seleccionar el de comida, entonces tenemos
que hacerlo por la comida. Seleccionamos una de las pociones, entonces tendríamos
que hacerlo para las pociones. Entonces aquí, arrastra nuevamente
del inventario y vamos a obtener la categoría seleccionada, categoría
de inventario aquí. Así que ahora en lugar de hacerlo aquí, déjame hacer clic en Alt y dar
click aquí para desconectarlo. Entonces déjame arrastrar desde aquí y
usar un nodo llamado Select. Entonces dejando esta, entonces cuál es la selección, inicialmente solo
selecciona una opción. Entonces depende de lo que
tengas enchufado dentro de aquí. Si enchufa un número,
éste selecciona un número. Si enchufa por ejemplo esta enumeración,
la conecta aquí, puede ver que es selecciona entre los elementos dentro de
esta enumeración. Así que vamos a enchufarlos. Entonces las armas con las armas, comida y las pociones. Entonces lo va a hacer aquí. Se va a tomar la categoría de inventario
seleccionada. Se va a echar
un vistazo a lo que depende
este valor. Aquí. Si recuerdas, si vuelves a la categoría de inventario de
UI. Y así aquí cuando hacemos
clic en la categoría, establece la categoría y luego
volvemos a dibujar. Aquí. Dice la categoría. Y luego redibujamos todos esos widgets
de tragamonedas. Entonces, dependiendo de esta categoría
seleccionada aquí en el controlador del reproductor, va a seleccionar ese valor. Entonces, si seleccionaste
la categoría de pociones, va a tomar esta categoría de
pociones y luego registrar esta
categoría de pociones dentro de aquí. este momento es genial.
No sé por qué. Es un poco buggy. Déjame simplemente desconectarlo aquí, enchufarlo de nuevo a aquí. Entonces funciona solo para
que tenga ese color. Bien, Entonces por ejemplo, si
seleccionamos la categoría de alimentos, va a tomar
esa categoría de comida aquí y sacarla de aquí. Y ahora es la categoría de alimentos. Entonces, ¿cuál es el artículo aquí? El artículo es que solo podemos conseguir, conseguir este de aquí y decir todavía. Y podemos obtener un elemento de la matriz y seleccionar
este llamado copia. ¿Qué artículo queremos obtener? ¿Qué elemento dentro de esta
matriz queremos obtener? Simplemente, solo queremos
obtener el índice de slot. Recuerde, estamos haciendo un bucle
a través de los widgets de ranura. Estamos haciendo un bucle 0-15, así que
creamos 16 slots. Y para cada una de esas ranuras, queremos obtener el artículo
de cada una de esas ranuras. Y luego queremos
ponerlos dentro de aquí. Entonces para el índice de slot, nuevamente, justo desde aquí
y agrégalo aquí. Entonces este es el índice. Recuerda que va
a circular 16 veces. Entonces va a establecer el índice. Entonces el primero va
a ser cero, luego uno, luego 2345, y así sucesivamente, hasta 15, así que crea 16. Ahora para el artículo, podemos tomar este artículo
aquí y decir descanso. Y ahora para esta matriz
aquí, esta ranura de inventario. Pero podemos hacer es que podemos
derivar de aquí y decir hacer ranura de inventario. Así que arrastrando este elemento aquí, así que solo vamos a restablecer el elemento dentro de esa matriz. No queremos perder nuestro artículo. Entonces, dependiendo de qué
ranura tengamos, por ejemplo, la primera ranura está en el índice cero. Vamos a conseguir ese
artículo y enchufarlo aquí. A pesar de que está vacío,
no importa. Solo estamos recibiendo toda
esa información y los estamos volviendo a
enchufar aquí. También estamos tomando la
cantidad, enchufándolos
aquí solo para asegurarnos no perdemos ninguna información. Y para el espacio de inventario, recuerda que estamos creando espacios de
inventario, así que voy a arrastrarlo
aquí, iniciar sesión aquí. Y para el índice de slot, de nuevo, solo arrastra desde aquí
y conéctalo a aquí porque realmente no queremos
usar el antiguo slot de inventario. Esta es la ranura que
se despejará. Cuando decimos niños claros, realidad
ya no
queremos usar eso así como
el índice de slot, nosotros limpiando todo aquí. Así que vamos a usar el nuevo índice de
ranura y luego inventario
widget de ranura y sólo para ocultar estos bolígrafos porque
no creo que se vea bien. Puedes hacer clic en él y hacer
clic en Ocultar pines desconectados, y ahora se verá
mucho mejor. Y eso fue en realidad. Entonces tomemos esta lógica aquí. Volvamos a agregar nuestra interfaz de usuario
a la cuadrícula aquí. Y para ello, estos
son los widgets. Para que puedas hacer clic y arrastrar desde éste y volver a agregar
los widgets aquí. Y todo se
ve perfecto. Ahora, en este momento
realmente no podemos ver una diferencia porque
realmente no estamos actualizando la interfaz de usuario. Así que en el inventario
las ranuras no estaban realmente configurando la imagen del artículo aquí
demasiado visible o cualquier cosa. Esto lo vamos a hacer
en la siguiente lección. Pero justo antes de hacer esto, en realidad
organicemos
todo aquí. Entonces voy a saltar adelante y te voy a mostrar
cómo lo organicé. Bien. Así que muy rápido seguí adelante
y organizé todo. Puede ver que están
teniendo todas las notas redireccionadas, así que solo asegúrate de hacer
doble clic en todas ellas. También puede seleccionar algunos elementos y hacer clic en
Q en el teclado. Esto
enderezará los elementos. Así que me aseguraré de
organizar tu código solo para que puedas
entenderlo mejor. Vamos a compilar todo por ahora y pasemos
a la siguiente lección.
35. 5.10 Muestra de artículo en el inventario: Bien, así que ahora sigamos adelante y
actualicemos la interfaz de usuario de la ranura de inventario. Cuando perdemos un artículo. Aquí para las ranuras de inventario, vamos a la gráfica y
eliminemos todo aquí. Ahora hagamos un evento personalizado. Y este, voy a
llamar a la interfaz de usuario de ranura de inventario de actualización. Lo que queremos hacer es
simplemente establecer esta imagen aquí dependiendo del artículo que saqueemos y la cantidad del mismo también. Entonces dando click aquí, agreguemos dos variables
distintas. El primero es el artículo, así es la información del artículo. Este es el ítem,
llamémoslo ítem. Y el segundo es la
cantidad de ese artículo. Vamos a cambiarlo en un
entero, y vamos a compilar. Entonces para este artículo aquí, tomemos de la
cantidad y digamos, ¿es igual a cero? Porque si el artículo
es igual a cero, lo que significa que no hay ningún artículo
en ese espacio de inventario. Realmente no queremos mostrar el icono del elemento o este texto aquí, porque realmente no
tenemos un artículo en esa ranura. Entonces si la cantidad
es igual a cero, tomemos esta imagen
aquí e ilustremos desde aquí y digamos establecer esta habilidad. Y pongamos la visibilidad a oculta si no
tenemos ningún artículo. Y hagamos eso
también para el texto. Y se puede ver que no tengo
una variable para el texto. Volvamos a Designer. Da click en el texto y ponlo esta variable para que
podamos verlo como una variable. Alice ahora toma ese texto, veamos si lo podemos encontrar. Y no lo encuentro. Y en realidad se llama cantidades
de artículos de imagen. Se supone que es texto. Entonces cambiemos esto en texto. Vuelve a la gráfica,
y es ésta. Así que vamos a arrastrarlo
aquí y digamos establecer visibilidad a oculto también. Bien, entonces ahora ambos
están puestos a ocultos si la cantidad es cero. No obstante, si la
cantidad no es cero, queremos establecer esta imagen. Entonces tomemos este icono
aquí, la imagen aquí. Y digamos Set
brush from texture. Y pongamos este icono. Entonces, si es falso,
si realmente, si no es cero, en realidad
tenemos un artículo ahí dentro. Vamos a configurar el icono de esta
imagen aquí en nuestro inventario. Entonces, ¿cuál es la imagen para ello? Recuerda que tenemos el artículo y vamos a arrastrar desde
aquí y decir break. Por lo que puedo ver la información
sobre este artículo aquí. Y vamos a arrastrar esta miniatura. Tenemos la miniatura, por lo que podemos usar eso como
la liga de texturas ,
mostrar, pines desconectados si
quieres ocultar el resto
de la información. Ahora recuerda establecer la
visibilidad a visible, porque ahora mismo está oculta. Sólo puedo copiar esto
aquí y conectarlo. Y ahora podemos establecer la
visibilidad no demasiado visible, pero a ninguno hit comprobable. Recuerda que si
lo configuras demasiado visible, entonces estás bloqueando
estos espacios de inventario. Tú, si lo configuras a
ninguno hit comprobable. Significa que no puedes
interactuar con este ícono. Y no creo que
necesitemos interactuar con nada de este ícono, así que solo voy a configurarlo
en ninguno hit comprobable por ahora. Lo mismo para el texto. Tenemos que establecer la cantidad. Entonces tomemos el texto aquí y arrastremos y digamos set text. Y pongamos el texto
a la cantidad aquí. Así que arrastra este inicio de
sesión de cantidad aquí, y va a crear
automáticamente esta función de dos textos para ti. Ahora hagamos doble clic
solo para
organizarlo un poco mejor. Y ahora para estos textos, ahora
hemos fijado la cantidad. Ahora para mi inventario, lo que me gusta hacer es
si este valor es uno, no
quiero
mostrar ese número, así que va a estar
oculto así. No obstante, si la cantidad es de dos, va a mostrar el número. Entonces si es uno,
realmente no quiero mostrar
el número uno. Ahora vamos a la gráfica aquí. Y lo
que podemos decir es que podemos arrastrar de la cantidad otra vez y decir, si esto es mayor que uno, entonces queremos
mostrar así rama. Si es mayor que uno, entonces queremos tomar este texto. Entonces déjame copiar
esto aquí arriba, el texto. Y queremos decir
ninguno golpeó comprobable. Entonces quiero mostrar
este texto si es, si el número es
mayor que uno, así como así. No obstante, si el número no es mayor que uno,
copiemos esto. Entonces quiero poner
éste a oculto. Entonces, si solo tenemos un ítem, no
va a
mostrar este texto. Si tenemos dos o más elementos, va a mostrar este
texto y eso fue en realidad. Entonces déjame hacer
doble clic y hacer que esto se vea mejor también. Asegúrate de que tu
código esté organizado. Se puede ensuciar muy rápido, y
te llevará mucho tiempo organizar todo. Entonces esto fue todo. Vamos a compilar. Y ahora tenemos que
llamar a esta función. Realmente no lo hemos
aguantado en ningún lado. Entonces ahora volvamos al controlador
del reproductor. Dentro del
controlador del reproductor aquí estamos agregando el ítem a esa matriz, y luego estamos
agregando los hijos. Y ahora también necesitamos
actualizar la interfaz de usuario porque sí, se está agregando
el ítem. Sin embargo, no estamos viendo
ningún cambio porque
no estamos actualizando la interfaz de usuario aquí
se actualizó la interfaz de usuario, estamos dentro de la ranura de inventario de
WB. Así que recuerda en el
controlador de jugador para cada una de las ranuras aquí estás
creando ese widget, estás creando espacio de
inventario WB aquí. Así que en realidad podemos usar esto. Podemos arrastrar desde esta ranura de
inventario y podemos decir actualizaciones, interfaz de usuario de ranura de inventario. Este es el evento
que acabamos de crear. Ahora hagamos doble clic,
hagamos notas de redirección. Voy a tomar esto
un poco aquí arriba. Entonces no está por encima de mi función, no dentro de mi
función, así como esto. Y ahora necesitamos
enchufar el artículo y la cantidad y el artículo. Recuerda, recuerda que ya dijiste esto aquí
llegamos al ítem. El artículo aquí, fíjelo, la cantidad
también, enchúfelo. Hagamos doble clic y
hagamos que se vea un poco mejor. Y así,
compilemos y guardemos. Ahora realmente no podemos probarlo con los artículos porque no
tenemos un sistema de saqueo. Pero lo que podemos
hacer es si vamos a los componentes
del inventario
y dentro del inventario, y solo para las armas por ejemplo simplemente
puedes hacer clic en el
signo más y agregar un artículo aleatorio. Aquí. En los artículos, solo
agreguemos algo, por ejemplo esto, no conozco
esta palanca aquí. Y podemos llamarlo realmente
no importa,
trabajo, lo que sea. Y ahora fijemos
la cantidad en uno. Y el índice de slot todo
es, realmente no importa. Así que solo recuerda, solo
asegúrate de tener el ícono y
tienes la cantidad. Así que vamos a dar clic en Reproducir
y ver si esto funciona. Entonces haciendo clic en el inventario, puedo ver a mi inteligente. Si cambio la categoría, puedes ver que la puedo ver. Vuelvo a las armas. Puedo ver mi carnicero. Entonces esto está funcionando correctamente. Ahora, también podemos
probarlo aquí en las pociones. Vamos, agreguemos una poción. Vamos a hacer clic en el ítem. Y ahora vamos a ir aquí, seleccionar una de las pociones, por ejemplo, esta poción de manera, establecer
la cantidad en cinco, por ejemplo para que podamos ver si aparece
el texto. Y si hacemos clic en Play, clic en AI, y damos
clic en las pociones. Ya ves, puedo ver
que tengo cinco cocientes. Si hago clic en las armas, puedo ver la comida de mi arma. No tenemos comida. Y ahora puedes ver que
está funcionando correctamente. Bien, así que sigamos adelante y eliminemos esta que acabamos de crear, y las armas
y los cocientes. Y ahora
compilemos todo, guardemos todo,
y sigamos adelante.
36. 6.01 Interactuando con los artículos: Comencemos ahora a
interactuar con los ítems. Entonces primero, vayamos a los
planos y al jugador. Y vamos a crear una nueva acción
de entrada donde
podamos hacer clic en un botón
y cargar los elementos. Entonces hagamos clic derecho, vayamos a
entradas y en protección. Y llamemos a este botín
o puedes llamarlo interactuar. Eso depende de ti. Pasemos a los contextos
de mapeo. Y dentro de aquí, vamos a hacer clic en el nuevo
plus aquí en las asignaciones. Vamos, voy
a minimizar todo esto aquí para el nuevo, agreguemos el laúd, laúd. Y voy a presionar aquí y presionar mi
botón EE en el teclado. Sólo voy a usar los artículos
IPA y soluto. Y para el disparador va
a dar click en el más. Y aquí, configurarlo en
presionado y presionado, solo se asegura de que no pueda enviar
spam a este botón e. Entonces, si la mantienes
presionada, no corre todo el tiempo. Así que presionar solo significa ejecutarlo
una vez cuando haga clic en E. Bien, Así que esto se hace aquí.
Ahora vamos a cerrarlo. Acude al jugador. Y aquí en el jugador, déjame solo esto
un poquito. Y aquí abajo, puedo decir IA carga y tener
este evento aquí. Ahora lo que podemos hacer es lo que aludiendo necesitamos para
ejecutarlo a través del servidor. Hasta el momento hemos estado trabajando con un cliente porque
todo esto era UI. Pero sin embargo, cuando
saqueas artículos, solo asegúrate de
ejecutarlo a través del servidor porque quieres
verificar si los clientes
realmente pueden perder los artículos. Así es como
evitas hacer trampa. Entonces cuando juegas aquí y
juegas como servidor, entonces este, este de
aquí es el servidor. Este de aquí es el cliente. Digamos que los clientes
son los clientes conectados a tus amigos
a tu servidor. Van a presionar E. A
pesar de que aquí no
hay artículos. Tenemos que verificarlo. Al hacer clic en E
aquí como cliente, esta información
va al servidor. El servidor comprueba si esta línea está parada
sobre un artículo o no, y luego va a enviar
esa información de vuelta
al cliente en este momento
no estoy parado en ningún artículo. Voy a dar click en
E. Esa información necesita ser enviada al servidor. El servidor va a decir: No, no
estás parado en ningún artículo, no
vas
a perder nada. Pero esa información va a ser enviada de vuelta al cliente. Le va a decir al cliente
que no estás parado sobre ningún artículo y aquí no voy
a perder nada. Siempre tomando el código, verificándolo con este servidor, y solo asegurándose de que
los clientes no estén engañando y enviando esa
información de vuelta al cliente. Entonces, hasta ahora hemos
estado trabajando con los clientes porque era UI, pero ahora
en realidad es lógica de juego. Entonces por aquí, en vez de simplemente escribir el código
directamente desde aquí, porque si solo escribes una cadena de
impresión aquí, de nuevo, muy bueno solo escribir
una cadena de impresión para ver qué pasa si hago clic en play. Y aquí hago clic en e como
servidor, dice Hola. Si voy al
cliente y hago clic en E como cliente, dice Hola. Para que el cliente y el
servidor puedan ejecutar este evento. Quiero ejecutar el código solo
a través del servidor, así que no voy a
escribir el código aquí. Sin embargo, vamos a hacer un nuevo evento personalizado
llamado botín de servidor. Y éste va a correr a
través del servidor confiable. Y luego voy a ejecutar
el evento del servidor aquí arriba. Entonces, cuando al cliente le gusta en E, también
va a correr a través
del servidor. Entonces, para los artículos, permítanme
simplemente colocar un artículo aquí. Entonces para los artículos, vamos a colocar, no sé, este plátano aquí,
algo al azar. Y coloquemos este Cleaver. Voy a colocarlos uno
encima del otro, así que me dice en cuántos
artículos estoy parado. Y voy a poner un
artículo
solo por aquí, así como esto para que
podamos probarlo. Entonces lo que podemos hacer aquí
para el saqueo es que podemos hacer clic derecho y decir que
se superpone. Actores, ¿solo buscando cuántos actores
estamos superponiendo? Y ahora te va a preguntar, ¿qué actores
quieres que sea? Quiero que sea la base de artículos
que creamos antes. Entonces vamos a tomar los actores
superpuestos de GED cuando
estabas parado en los ítems, va a comprobar cuántos
actores estamos superponiendo. Voy a tomar esto
y decir longitud y luego preguntar si esto está por encima de cero. Así que solo quiero ejecutar este
código cada vez que en realidad estoy parado sobre un elemento porque si la longitud de la actriz
superpuesta es cero, entonces no estamos parados en nada y no
quiero ejecutar mi código. Entonces, si está por encima de cero, en realidad
quiero ejecutar mi código. Esto es para este video. Simplemente hagamos clic en la cuerda naranja aquí y veamos si todo
está funcionando correctamente. Y lo que
quiero imprimir, Solo
vamos a imprimir la
longitud de los actores olímpicos, lo que significa ¿cuántos actores
estamos superponiendo en realidad? Así que haciendo clic en la obra. Y aquí como el servidor, voy a ir a estos
dos elementos haciendo clic en IE, se puede decir si llueve también, realidad
estoy parado
sobre dos elementos ahora, si voy aquí y hago clic en e, no pasa nada
porque recuerden que
solo estamos imprimiendo cuando
está por encima de cero. Si voy por aquí y laúd esto, dice un artículo así
que está funcionando correctamente. Y si hago esto como
el cliente también, se
puede ver que el servidor
imprime la información, lo cual es muy bueno porque
solo queremos ejecutar este código a través del servidor y
todo está funcionando correctamente. Entonces, eliminemos esto y sigamos en
el siguiente video.
37. 6.02 Inicial Añadir a la lógica de inventario: Bien, entonces aquí es donde lo
dejamos y agreguemos ahora la lógica inicial
para agregar el ítem. Entonces volvamos
a los componentes y al interior del componente de
inventario. Y aquí necesitamos hacer un evento personalizado llamado
add to inventory. Así que hagamos clic con el botón derecho en
el evento personalizado agregar al inventario. Y éste, podemos correr
a través del cliente porque
ya lo ejecutamos a través del servidor y estamos interactuando
con un ítem. Y ahora vamos a ejecutarlo a través del cliente porque
esto es en realidad UI y necesitamos agregar el
icono al inventario. Agregar al inventario que se ejecuta
a través del cliente y el servidor se están ejecutando propietario del cliente,
lo siento, y confiable. Ahora vamos a correr hasta aquí. Cl, agregar al inventario. Y lo que necesitamos
agregar es solo el artículo. Así que dando clic aquí, dando clic en el Plus, vamos a encontrar la base del ítem como el tipo de variable
porque queremos
agregar ese
ítem específico o un alusivo. Ahora podemos arrastrar de esto
y agregarlo aquí también. Y vamos a compilar. Y
ahora para el jugador, ya
podemos tomar este
inventario y podemos decir agregar al inventario,
así como esto. ¿Y de qué artículo
estamos hablando? Estamos hablando este ítem específico
que estamos superponiendo. Así que vamos a arrastrar aquí,
hacer algo de espacio. Ahora, a lo que queremos aludir, puedes hacerlo con dos métodos dependiendo de qué juego
estés creando. Entonces aquí, cuando haces clic en
E y quieres perder un artículo, puedes saquear todos los artículos a la vez. Puedes hacerlo así. Así que puedes tomar aquí
y decir For Each loop, y puedes, para
cada uno de esos artículos, puedes
agregarlos al inventario. No obstante, para mi juego, solo
quiero saquear
un artículo a la vez. Entonces voy a arrastrar de
aquí y decir que consigue una copia. Entonces no lo voy a hacer un bucle. Sólo voy a
conseguir el primer artículo. No necesitamos un plugin aquí. Entonces voy a tomar el primer artículo con el que lo estamos
superponiendo, y luego voy a agregar
eso al inventario. Entonces tomando este ítem aquí, ahora, realmente no
podemos
conectarlo directamente porque este es
un objeto actor. Y si lo enchufamos aquí, no
funciona
porque esta es
una referencia de objeto base de elemento BP. Entonces dos cosas distintas. Entonces ahora sabemos que
esta es la basada en ítems. Nosotros, lo hicimos aquí
en el filtro. Filtramos que lo
único con lo que
interactuaremos aquí es
el artículo basado para escuchar. Y ellos consiguen,
podemos arrastrar desde aquí, y podemos obtener la referencia
del artículo. Ahora, nuevamente, solo hicimos interfaces para el reproductor y
para el controlador del reproductor. Entonces hagamos uno nuevo. Hagamos clic con el botón derecho en
los planos y la interfaz de blueprint. Hagamos uno para
la base del artículo. Y aquí Hagamos
doble clic y para la función, obtenga la referencia
del ítem. Y ahora son las salidas. Recuerda que aquí escribes el plano al
que quieres hacer referencia. Quiero hacer referencia
a mi base de artículos, y voy a llamarlo ítem. Ahora vayamos a la
base de artículos y agreguemos esta interfaz. Vaya a items, item based here
in the Class Settings and here at the interface item base compile over here
in the interface, haga doble clic aquí
y establezca la referencia como la autorreferencia porque
estamos dentro de la base de item. Ahora volvamos al jugador. Y aquí podemos arrastrar ahora
y decir obtener referencia del artículo. Ahora tenemos esa
referencia de artículo y ahora podemos
conectarlo a esto aquí y
agregarlo al inventario. Vamos, vamos a
juntarlos aquí, hacer que se vea un poco mejor, algo así aquí incluso
puedes hacer doble clic aquí y hacer que se vea así. Estamos obteniendo el primer artículo que
estamos superponiendo el ancho y obteniendo esa referencia y luego agregarlo al inventario nuevamente, si quieres saquear cada artículo en el que estás parado con solo un clic. Hay que tomar esto, digamos para cada bucle. Y luego, para cada bucle,
obtenga la referencia del artículo. Y luego puedes enchufar
todos y cada uno aquí. Entonces va a
recorrer esto hasta que
no haya más artículos para saquear y
luego va a parar. Entonces solo quiero saquear
un artículo a la vez. Estoy satisfecho con eso, con todo, y déjame
volver al inventario ahora. Entonces por aquí, ahora tenemos
un ítem al que estamos aludiendo. Entonces, si solo haces clic en Imprimir
y solo conectas aquí, y solo conectas
esto con esto aquí. Así que en realidad
solo puedes ver qué, qué está pasando. Así que
vamos a hacer clic en Reproducir. Ahora. Aquí está el servidor. Voy a ir a esto aquí, como en E y
va a decir carne. Entonces sabe qué
elemento uno pierde. Ahora estoy parado en dos artículos, va a perder. El primero se
superpone con. Si hago clic en él,
va a decir Cleaver. Si voy aquí a un lado y sólo interactúo
con el plátano, va a decir plátano. Impresionante. Entonces todo está funcionando. Entonces aquí lo que quiero hacer es simplemente hacer clic derecho y
promover esto a una variable y
llamarlo ítem para agregar. Y para este también quiero obtener la información del ítem y
convertirla en una variable. Habrá mucho
más limpio para nosotros más adelante. Así que recuerda que hicimos
obtener información del artículo, sin embargo necesitamos un nombre. Y recuerda nuevamente,
en la base del ítem, ya
hicimos este
nombre del ítem, esta variable aquí. Y cuando lo hicimos en la base del artículo o en cada uno
de los niños, tuvimos que escribir el nombre
del artículo aquí arriba. Entonces, si solo lo abro
normalmente así, recuerda cuando
hagas una variable en la clase de blueprint padre, la basada en item, todos los hijos heredarán esta variable. Y ahora puedes ingresar aquí en los valores predeterminados de clase y poner los nombres para todos ellos aquí. Así que en realidad ya
tenemos ese nombre. Entonces vayamos al componente de
inventario. Y ahora derivemos
del ítem y obtengamos esa variable de nombre de ítem. Y ahora podemos
enchufarlo aquí y obtener la información de ese artículo. Solo para esta, solo
voy a hacer clic derecho promueve
una variable y solo
voy a
llamarla ítem para agregar información. Entonces tenemos la información
del ítem que queremos agregar, y eso fue todo por ahora. Así que vamos a compilar todo y pasemos
a la siguiente lección.
38. 6.03 Agrega artículo al inventario: Bien, entonces ahora necesitamos algo de lógica para agregar el artículo
al inventario. Entonces aquí hicimos este
complemento al inventario. Después de esta lección,
vamos a verificar si este artículo es
apilable o no. Si no es apilable, vamos a crear
una nueva pila en el inventario y agregar ese artículo. Si el artículo es apilable, vamos a verificar
si ya tenemos ese artículo en el inventario
y agregarlo a la pila. Si no, vamos
a hacer un nuevo stack. Vamos a hacer esto y
el siguiente, sin embargo, por sólo dos, entremos
en un mejor flujo. Necesitamos crear una función primero antes de poder
hacer todo esto. Así que vamos a crear una
nueva función aquí, llamarlo agregar artículo al inventario. Entonces esto es, esta función
aquí es el paso final. Entonces, cuando creamos una nueva pila, o encontramos una
pila parcial y agregamos ese ítem, esta función se
llevará a cabo. Entonces digamos que creamos una
nueva pila con éxito. Entonces vamos a
agregar ese artículo
al inventario después de
hacer una nueva pila. Entonces este es el paso final. Vamos a hacer éste antes
de hacer todo lo demás, porque esto va a hacer
las cosas mucho más suaves. Vamos a agregar el inventario de
Artículo dos. Aquí para la entrada, hagamos una referencia a la información del ítem. Entonces el artículo que queremos agregar y también la
cantidad del artículo. Entonces eso es un entero y
llamémoslo cantidad. Y luego recuerda
para los artículos
también tenemos las ranuras de inventario. Entonces si volvemos al controlador
del jugador y por aquí, para cada ítem, también
tenemos como si
tuviéramos el ISM, tenemos la cantidad de artículo, también
tenemos la ranura de inventario, y tenemos el índice de inventario, así podemos usar eso aquí también. Entonces volvamos al
componente aquí y cuatro aquí. Cambiémoslo a espacios
de inventario. Seleccionemos esta referencia de Widget
Blueprint, y llamémoslo,
llamémoslo ranuras de inventario. Y éste,
llamémoslo índice de ranura. Y también estoy haciendo uno nuevo. Y necesitamos saber a
qué inventario lo
estamos agregando? ¿Lo estamos agregando a
la categoría de armas? ¿Lo estamos agregando a esta categoría de alimentos o a
esta categoría de pociones? Así que hagamos
uno nuevo aquí también. Y busquemos espacios de
inventario. Debido a que estos son el tipo de estructuras de ranuras de
inventario. Entonces ranura de inventario, vamos a
cambiarlo en una matriz, y llamemos a este
inventario. Entonces depende de qué
categoría de inventario estemos dentro. Queremos agregar ese artículo
dentro de esta categoría. Bien, entonces tomemos
este inventario ahora y establecemos el elemento array. Ahora, fuera de esta función, se decidirá a cuál de estas tres se
sumará. Vamos a tomar
esa información y establecer el elemento array. Ahora, ¿cuál es el índice? El índice es simplemente
este índice de ranura. Muy sencillo. Ahora para
este ítem, nuevamente, igual que antes,
tomemos esto y escribamos make. Ahora para este artículo, queremos agregar este artículo aquí. Queremos agregar esta cantidad, queremos agregar esta ranura de
inventario y queremos agregar
este índice de tragamonedas. Entonces este es el artículo que
ahora estamos agregando al inventario. Y en realidad es
tan simple como esto, esta función está terminada. Hay un detalle muy
pequeño, pequeño. E imagínese si ya estamos
dentro de esta categoría. Entonces digamos que estoy saqueando un arma, estoy
cargando todos pasan. Y ya estoy dentro de eso. Al igual que ya tengo mis
categorías de inventario de armas seleccionadas. Entonces, cuando cargue un arma, debería
actualizar instantáneamente mi inventario. Así que en realidad puedo ver que
he cargado el arma aquí solo para asegurarme de que
el inventario esté actualizado. Entonces el inventario en el
que ya estoy, así que si pierdo un arma y ya estoy dentro
de la categoría de armas, queremos asegurarnos de
que la interfaz de usuario esté actualizada para que pueda ver ese cambio de UI. Entonces, lo que queremos hacer, queremos tomar ese ítem
y rompamos esto aquí. Y quiero tomar la categoría de ese artículo que estoy cargando. Ahora quiero ver
si este artículo que estoy cargando tiene la
misma categoría que la que he seleccionado. Al parecer. Si es así, quiero actualizar la interfaz de usuario. Si no es así, no
quiero actualizar la interfaz de usuario. Y la razón por la que no
quiero actualizar la interfaz de usuario es porque recuerden, si acabo de bucle esta comida aquí y se
carga aquí y estoy, estoy, he seleccionado
la categoría de armas. Realmente no necesitamos actualizar esta interfaz de usuario porque se
ha agregado a la comida y estoy
dentro de las armas así que realmente no necesitamos
actualizar nada en este momento. Recuerda que cuando haces clic
en nuevas categorías aquí, automáticamente
actualizará todas las ranuras que
ya estamos actualizando cuando hacemos clic en las categorías de inventario, sin embargo, solo queremos
actualizar si ya estamos dentro de esa
categoría porque
no se está actualizando
en ningún lado al instante. Entonces aquí voy a comprobar si esa
categoría de ítem aludida es igual aquí, igual enum, si es igual a la categoría seleccionada
que tengo ahora mismo. Y si es así,
tomemos una sucursal aquí. Si es igual, entonces recuerde en el widget de ranura de
inventario, hicimos nuestro teléfono, hicimos nuestro evento llamado
actualizaciones, interfaz de usuario de ranura de inventario. Y el artículo
tenemos que enchufarlo, es
decir este artículo
y esta cantidad. Entonces ahora va a actualizar esa interfaz de usuario cada vez que cargue mi artículo. Entonces, si ya estoy dentro de
esa categoría seleccionada y ese artículo se va a agregar a esa categoría de
inventario seleccionada. Va a
actualizar instantáneamente mi interfaz de usuario para que
pueda ver
el cambio, ¿verdad? Así que ahora creé
algunos nodos redirigir y así es como se ve, un poco más organizado,
organízalos antes, solo asegúrate de que tu
código esté más organizado. Y ahora cuando estés
satisfecho con el resultado, vamos a compilar ahora, guardar todo,
y sigamos adelante.
40. 6.05 Encontrar una pila parcial: Bien, bienvenido de nuevo.
Entonces ahora vamos a la segunda parte donde
vamos a crear una macro para encontrar una pila parcial que ya
existe en el inventario. Hasta el momento, lo
que hemos hecho es
tratar de ver si el artículo es
apilable o nueces. Y si no es apilable, estamos creando una nueva
pila y agregando, agregando ese artículo
al inventario. Entonces ahora si el artículo es apilable, intentemos encontrar en el inventario si
ya tenemos ese artículo. Ahora lo que podemos hacer
igual que antes aquí, donde tenemos el inventario. De hecho, vamos a
copiar todo esto aquí. Y voy a copiar
este bucle también. Sólo tienes que copiar esto,
volver atrás y pegarlo. Entonces básicamente, igual que antes, vamos a tomar esta
categoría para este artículo. Entonces vamos a
seleccionar la categoría. Porque dependiendo de cuál sea la
categoría para el artículo, queremos mirar dentro de
ese inventario específico, por ejemplo, si estamos aludiendo a una poción, vamos a seleccionar
la poción y
vamos a recorrer
el inventario de
las pociones para ver si
ya tenemos ese
artículo que estamos cargando. Entonces, si esto es cierto, solo
vamos
a conectarnos aquí al plan de ejecución y para encontrar si tenemos este
ítem específico que estamos aludiendo, podemos derivar de
esto y romperlo. Y aquí en este ítem, Vamos a romperlo de nuevo. Y recuerda aquí tenemos
un nombre para el artículo. Entonces voy a arrastrar
desde aquí y decir igual y seleccionar éste para
el texto igual exactamente. Ahora bien, si el nombre es exactamente igual a este
nombre para el ítem, incluso,
voy a tomar esto, romper esto también, y conectar el nombre aquí arriba. Ocultar pines desconectados
para este también. Y hagamos una rama también. Entonces ahora lo que estamos haciendo, estamos recorriendo
el inventario, por ejemplo, pociones. Entonces, para
cargar una poción, y luego por cada
elemento dentro de allí, en realidad
estamos comprobando si este nombre existe para el artículo. Estamos aludiendo. Si
el nombre existe, eso significa que el artículo
ya está en el inventario y aquí hemos encontrado una pila
parcial. Lo segundo que tenemos que hacer
solo para asegurarnos en este momento solo estamos comprobando si
el artículo es el inventario. Pero, ¿y si el artículo
ya ha alcanzado el tamaño
Max Stack? Entonces por ejemplo pociones,
digamos que puedo perder cinco pociones de salud. ¿Y si? Y si, sí, tengo el
artículo en mi inventario, así que encontré una pila parcial. No obstante, ya tengo pilas
llenas en eso, en ese escalonamiento que tengo. Digamos no solo
verificar el nombre, sino también verificar la cantidad que
tenemos en el inventario. Entonces, por aquí, hagamos clic
en este y mostremos la cantidad de artículo para ese
artículo dentro de nuestro inventario. Y esta
cantidad de artículo debe ser
inferior al tamaño máximo de pila de este artículo aquí. Así que vamos a mostrar el tamaño Max Stack y vamos a conectarlo aquí. Entonces, para encontrar una
pila parcial en el inventario, necesita tener
exactamente el
mismo nombre que el artículo dentro
de nuestro inventario. Y el artículo dentro de nuestro
inventario debe ser, la cantidad debe ser
menor que el
tamaño máximo de pila para el artículo. De lo contrario, necesitamos encontrar
una nueva pila y agregar edición a una nueva ranura
de inventario. Vamos a hacer clic aquí,
solo hay que esconderlos pines
conectados para
este también. Aquí, vamos a arrastrar y
decir final booleano. Entonces usamos éste y booleano. Entonces, si el nombre es
exactamente el mismo y la cantidad es
menor que el tamaño máximo de la pila, entonces podemos seguir adelante decir que hemos encontrado
una pila parcial. Así que vamos a crear un nuevo booleano. Y a éste que voy a
llamar tiene que crear stack. Voy a establecer este en
falso aquí porque ahora
encontramos una pila parcial
y la cantidad de,
la cantidad no es, no es mayor que el tamaño Max Stack. Es más bajo que
el tamaño Max Stack, lo que significa que podemos agregar elementos en la parte superior de la pila. Entonces tiene que crear
stack set a false y podemos seguir adelante
y editar el ítem. Entonces antes de hacer esto,
igual que antes, seleccionemos todo esto aquí. Vamos a hacer clic derecho y
convertirlo en una macro. Y a esta macro,
vamos a llamar a find partial stack, así aquí. Y para la salida otra vez, necesito agregar un,
un artículo de inventario. Así que arrastrando este año. Entonces para la salida,
necesito todos estos. De nuevo, al igual que lo que hice
con el create new stack. Así que sigamos adelante y hagamos clic
en Buscar pila parcial. Vamos a agregar un par
de variables aquí. El primero está equilibrado, así que encontramos un ítem y este
es un pin de ejecución aquí. Y vamos a arrastrar
esto por ahora. Entonces artículo encontrado aquí en
la pila parcial, nuevamente, al igual que
antes, artículo a agregar. Y entonces tenemos la cantidad. Para agregar, entonces
tenemos el índice de slot y el último aquí
tenemos la Variable de inventario. El primer artículo es la información del artículo. Este es el artículo que queremos agregar. Esa cantidad es
sólo un entero. El índice de ranura es solo
un entero también. Y la ranura de inventario, en realidad me olvidé de agregar. Permítanme agregar el espacio de inventario, que es el Plano
Widget. Así que las ranuras de inventario y la selección de
este widget blueprints. Poniéndolo aquí arriba, sólo
voy a
ponerlo por encima del índice de slot aquí. El inventario son las ranuras
de inventario, luego seleccionándolo como una matriz. Y éste, voy
a nombrar no encontrado. Entonces, si no encontramos un artículo, y esta es una pluma de ejecución. Y también quiero hacer
una nueva llamada loop completa, igual que antes, con la que
podemos hacer algo aquí. Así se completa el bucle, no se encuentra. Vamos a compilar y
guardar todo. Bien, así que volvamos
aquí y solo
reorganicemos las cosas un
poco dentro de esta macro. Entonces esto es lo que tienes hasta ahora. Y si no tenemos que
crear un stack, podemos seguir adelante y agregar
esto al inventario. Entonces, ¿qué queremos agregar? ¿Qué queremos añadir? Es este artículo aquí, artículo, artículo para agregar información. Vamos a copiar esto
y pegarlo aquí, la cantidad para el artículo. Arrastremos este artículo para agregar
igual que antes y digamos cantidad. Toma esta
cantidad para obtener artículo y agrégala aquí. Para el espacio de inventario. Tenemos este inventario
aquí para que podamos usar la
ranura de inventario y el índice. Vamos a
arrastrarlos a aquí también. Entonces tenemos de nuevo el
inventario. Es éste de aquí. Vamos a arrastrarlo y conectarlo. Bien, entonces aquí mismo estamos comprobando si la cantidad de artículo en el inventario es
menor que el tamaño Max Stack para el artículo de saqueo o
el artículo aludido aquí. Y si es así, hemos encontrado un ítem y no
necesitamos crear un stack. Entonces déjame salir aquí ahora
antes de que hagamos algo aquí, permítanme agregar otra
lógica para asegurarme. Entonces por aquí, ahora mismo hay algo que
no estamos comprobando. Si tomo esta cantidad para agregar el artículo y necesito preguntar, ¿es menor o
igual al año? Déjame tomar el
artículo para agregar información, romperla y tomar el tamaño máximo de
pila conectado aquí. Ahora, antes de que estemos revisando
el artículo de inventario, ahora mismo, estoy comprobando la cantidad que estoy
aprendiendo ahora mismo. ¿Es más de lo que puedo poner
dentro de esta pila? ¿O puedo llenar toda
esta cantidad en
esa pila que acabo de encontrar? Así que solo
asegurándome de que no voy a crear otra pila aquí. Entonces déjame conectarlo. Entonces, si esta cantidad a agregar es menor o igual
al tamaño máximo de la pila, entonces no vamos
a crear ninguna pila. Así que permítanme solo
agregarlo aquí también. Y permítanme en realidad solo
agregar el artículo primero. Y luego decir que tiene que crear
stack se establece en false. Y déjame seguir adelante
y romperla. Entonces en este momento no tenemos
ningún pin de ejecución de break, así que déjame
darle click y vamos a crear otro llamado break loop. Ahora vamos a conectarnos
al bucle de freno. Y así aquí abajo, si es cierto, como la cantidad de
artículos que necesitamos agregar, si en realidad no es
menor que el tamaño Max Stack, lo que significa que en realidad
necesitamos crear otra pila. Así que vamos a agregar lo que tengamos en esta pila actual. Y luego vamos a
crear otra pila. Así que de nuevo, igual que antes, recuerda aquí y
el nuevo stack de Craig, tu
calculaste lo que te quedaba aquí. Así que en realidad necesitamos
hacer lo mismo. Vamos a copiar y pegar esto. Entonces voy a copiar
todo esto aquí, yendo al Gráfico de Eventos aquí. Y podemos pegarlo aquí. Esto aquí lo que necesitamos
agregar al inventario
nuevamente, al igual que antes, necesitamos agregar la cantidad es
el tamaño Max Stack
para este artículo aquí. Y conectemos el artículo. Conectemos la ranura
de inventario, el índice de ranuras,
así como el inventario. Y entonces vamos a
establecer este booleano en true. Entonces tenemos que crear
una nueva pila para agregar esta
cantidad restante de artículos. Entonces, pongámoslo a verdad. Y entonces voy a arrastrar
y enchufarlo aquí porque esto se remonta
a este break loop. Hagamos doble clic aquí. Vamos a hacerlo limpio. Así que ahora volvamos a esta fina pila parcial y hagamos algo
aquí en el completo. Y también recuerda tomar este bucle de
descanso dentro de aquí. Así que nos estamos
asegurando de que en realidad estamos rompiendo el bucle
para el completo. Tomemos nuestras manos para crear
stack y hacer una rama. Entonces ahora estamos preguntando, ¿tenemos que hacer
una pila o nueces? ¿Qué lo configuramos
durante este bucle? Si tenemos que crear una pila, queremos
establecer esto en item not found, porque tenemos que
crear una nueva pila. Si no tenemos que
crear una nueva pila, entonces el loop se acaba de
completar, así como esto. Vamos a ponerlo
aquí abajo, así como esto. Entonces, si tenemos que
crear una nueva pila, significa que no se encuentra el ítem. Y si no se encuentra el ítem, vamos a arrastrarlo
aquí abajo y crear una nueva pila. Por lo que ahora no se encuentra el artículo. Tenemos que crear una nueva pila. Bien, así que si no se encuentra el
ítem, vamos a crear nuevo stack
y el loop
está completo, es justo si ya encontramos el stack y
no necesitamos hacer nada para poder tocar un
sonido o lo que nos guste. Entonces ahora volvamos a
la fina pila parcial. Nos falta un
último paso aquí. Digamos, dijimos aquí tenemos una pila que es igual al
nombre del artículo que aludimos, y la cantidad
del artículo dentro de ese inventario es menor que el tamaño Max Stack para
el artículo al que estamos aludiendo. Si eso es falso, tenemos que hacer algo
igual que antes. Vamos a tomar este bucle
aquí y decir más, más. Entonces vamos a
incrementar en uno. Y al igual que antes, nos estamos
asegurando de que esto aquí sea menor que la cantidad de slots que tenemos
en nuestro inventario. Hagamos una rama. Y si eso es cierto, si es menor que
la cantidad, en realidad, vamos, vamos a enchufarlo aquí. Y si en realidad es
menor que la cantidad de slots, vamos a seguir adelante y otra vez, simplemente bucle aquí y encontrar un, encontrar un ítem en el
siguiente índice, ¿verdad? Así que lo he organizado
sólo un poquito. Entonces ahora es
mayor que la cantidad de
slots que tenemos. Entonces tomaremos esto tiene que crear stack para que se
establezca en true porque realmente no
podemos encontrar
ningún elemento que
podamos agregar este ítem aquí
también que estuviera aludiendo. Entonces tenemos que crear un
nuevo stack y arrastrar de esto y seguir adelante y
enchufarlo al break. Porque ahora tenemos que
romper el bucle. Y ahora cuando sigamos adelante
y rompemos el bucle, recuerda cuando esté
completo, dice, sí, hay que crear una
pila y eso
pasará al ítem no encontrado, que luego repasa y
crea una nueva pila. Bien, así que
asegurémonos de que esto realmente funcione y veamos si tenemos
algún error como antes. Vamos a guardar todo. Ahora los plátanos tienen el conjunto
apilable a true, así que podemos probarlo
con los plátanos. Y pongamos esto aquí también. De hecho, vamos a comprobar lo
que dijimos de los plátanos. Entonces yendo a la
info del ítem que tiene el plátano, si lo maximizamos, tiene el tamaño máximo, tamaño pila de diez. Entonces vamos a duplicar este plátano aquí y sosteniendo
Alt y arrastrando, voy a duplicarlo aquí. Entonces para este, voy a establecer la cantidad del
artículo en cinco. Y para esta, voy a ponerla en cuatro. Y luego volvamos a copiarlo. Y pongamos de nuevo este
uno a cinco. Vamos a guardar todo. Intentemos reproducirlo
para el servidor. Si hago clic en AI,
hago clic en E aquí. Se le ha agregado
a la comida aquí. Sí, tenemos cinco plátanos.
Doy click en él aquí. Dice Porque hay
algo con la cantidad. Lo estamos poniendo mal aquí. Y si hago clic en la oreja, se establece en cinco, entonces
hay algo mal. Es solo establecer
la cantidad aquí. Volvamos. Y claro,
veo el bicho
enseguida aquí en el
hallazgo de pilas parciales. En realidad no estoy agregando
aquí en la cantidad. Entonces déjame borrar esto, en realidad solo déjalo ser. Lo que tenemos que hacer es tomar esta cantidad de artículo
y luego necesitamos
editar con lo que
ya esté dentro del
inventario, por supuesto. Entonces tomando esto aquí
y tomando diciendo agregar, así más pérdida, la cantidad que ya está
dentro del inventario. Entonces déjame enchufarlo aquí. Y déjame enchufar esto en el
uno a T2 ed y compilando. Y justo antes de probar el juego, así que aquí en el bucle, completa, vamos a destruir
el artículo igual antes porque estamos agregando
esto al inventario. Déjame alejar todo esto
un poco de aquí. Déjame pegar esto. Y para que se complete el bucle, sigamos adelante y
destruyamos los artículos. Entonces déjame redimensionar esto por ti. Déjame dar click en E aquí. Ahora estamos perdiendo cinco
o cargando nueve. Ahora debería decir diez
y por sólo 10.5. Y sospecho En realidad, esto es correcto ahora, pero sospecho que tenemos un
problema de nuevo con un retraso, igual que lo hicimos aquí con
la creación de una nueva pila. Y retrasamos el código. Si lo encuentro aquí, retrasamos el código. Hagamos
lo mismo porque
sospecho que en realidad está
haciendo lo mismo aquí. Entonces, cuando no
se encuentra el artículo y está creando una nueva pila, vamos a retrasarlo en 0.03, al
igual que antes. Vamos a
probarlo antes de reorganizar todo, vamos a hacer clic en Reproducir. Y voy a mirar esto. Voy a volver aquí,
voy a esto, voy a cargar esto también. Entonces ahora dice cinco
, sigue molestando. Y ¿y si trato de
aumentar el retraso? ¿Y lo intento otra vez? Ahora, está funcionando perfectamente. Entonces, en realidad es este retraso. Tenemos que arreglar este retraso
aquí, tal vez algo 0.05. No soy fanático de poner
esto a alto porque en
realidad puedes sentirlo en el juego
si lo pones demasiado alto. Sólo estoy tratando de que
funcione muy bien. Entonces 0.05 funciona bien, puedes tenerlo así, tal vez 0.04 semanas también. Pero ahora funciona perfectamente. Entonces ahora en realidad los estamos
agregando. Entonces si hacemos clic en play, y me encantaron
los que tienen cinco. Entonces éste, voy
a dejar éste
también el cual tiene cinco. Ahora bien, si cargo este, también
se agrega al
inventario. Y si aludiera esto y esto, los
consigo dentro
de mi inventario. Porque recuerden que teníamos dos
cuchillos y a cuchillas, esta necesita ser
incrementada en el retraso. Entonces tal vez 0.05 es
un número mejor. Cambiemos esto aquí en el stack
create new también, solo para que no obtengamos este error. Y como prueba final, volvamos a correr el juego. Déjame cargar esto
aquí, da cinco. Déjame cargar este medio. Esto es 2.2. Eso es correcto. Este glúteo esto, y
todo esto es correcto. Ahora, increíble. Entonces eso fue todo por
crear una pila parcial. Así que vamos a hacer esto un más organizado para
este retraso aquí son solo, vamos a colocarlo aquí abajo. Entonces lo que estamos haciendo aquí, ahora creamos una nueva pila
y también estamos encontrando una pila parcial si
ya la tenemos en el inventario y el
artículo es apilable, lo
contrario si no se encuentra. Entonces ya tenemos un stack completo. Vamos a crear
una nueva pila para ello. Y aquí en el bucle completo, puedes destruir el artículo. Incluso puedes tocar
un efecto de sonido, y lo haremos más adelante. Así que adelante y organiza tu código solo para que se
vea mejor, y eso fue todo por ahora, guarda tu trabajo y
sigamos adelante.
41. 6.06 Optimizar el inventario: Hola y bienvenidos de nuevo. Entonces ahora mismo quiero optimizar el inventario
antes de continuar. Entonces hay un pequeño bicho. Ahora bien, si aludo a éste de
aquí y a éste de aquí, son cuatro más cinco, deberían
ser nueve plátanos. Y eso es correcto. No obstante, si vuelvo a hacer
clic en Reproducir y los aludio sin
abrir el inventario, dice ninguno correctamente. Si pierdo el
último y dice diez, el primer mazo, y
para el siguiente stack, no
se nota de esa manera. Simplemente muestra cuatro. Debería ser 10.4. Entonces aquí
hay un error. Esto se debe a que
no estamos creando todos estos widgets a menos que
abramos el inventario. Para que puedas ver si
vuelvo a golpear play. Y si abro el inventario, lago en todas las categorías, cierro el inventario y
aludo a todo aquí. Se puede ver cuando abro el
inventario, en realidad funciona. Entonces, la razón por la
que está pinchando desde el principio es porque
no estamos abriendo el inventario. Y eso es porque además no
estamos mostrando todos los o creando todos estos espacios a menos que
abriéramos el inventario. Ese es un pequeño error que
queremos arreglar. Y también quiero arreglar y
optimizar el inventario porque sé que el
código puede ser mejor y hagámoslo de la mejor manera. Pero pasemos al controlador
del reproductor. Vayamos a PC **** aquí abajo. Y hasta el momento tenemos este llamado Create, widgets
de slot de inventario. Quiero separar
la creación aquí. Entonces, qué tenemos que hacer
en lugar de crearlo solo para la categoría de
inventario seleccionada. Necesitamos crear esto para todas las categorías aunque no
hayamos abierto
el inventario. Y luego quiero un evento
separado donde
mostremos los widgets de
slot de inventario. Así que en realidad creamos todo
esto
desde el principio. Entonces, cuando abrimos el inventario y
hacemos clic en
diferentes categorías, no seguimos creando nuevas. No necesitamos,
solo necesitamos crear esto una vez aquí y
agregarlos a la matriz. Y luego solo mostramos los slots ya creados cuando estamos dando clic
en las categorías. Entonces está esta optimización
que podemos hacer. Así que permítanme hacer clic derecho, ir a eventos personalizados
y crear uno llamado Display, inventory, widgets de
slot. Y hagamos uno nuevo aquí corriendo a través de
los clientes. Así que corre en ser dueño
del cliente confiable. Entonces para este, solo
queremos mostrar los widgets. Entonces, en realidad es esta
última parte del código. Déjame copiar esto aquí. Voy a hacer clic en
Control X para
cortarlo y pegarlo aquí abajo. Ahora necesitamos una referencia
al inventario aquí. Entonces voy a hacer clic aquí
y buscar inventario, inventario AAC, y
llamarlo inventario. Y este, claro niños también necesita estar
aquí abajo porque éste es solo para mostrar
las ranuras de inventario. Entonces esta es una
palabra específica que se muestra, y voy a
agregarla aquí abajo. Y también necesitamos este bucle aquí. También lo necesitamos aquí arriba. Así que solo voy a
copiarlo y lo voy a pegar aquí
abajo porque
necesitamos recorrer todos los widgets
y mostrarlos. Entonces necesitamos esto también. Y también necesito esta categoría
seleccionada. Voy a copiarlo, y voy a
pegarlo aquí abajo. Y conectemos el inventario. Ahora para estas filas y columnas, recuerden que acabamos de decir
aquí dividido por cuatro. Vamos a cortar esto aquí, pegarlo aquí abajo, conectarlos así, y también conectar el
índice a este año. Y por aquí para
este inventario, lo que podemos hacer es simplemente
derivar de esto y decir, consigue, ¿qué obtenemos? Apenas obtenemos este índice aquí. Y tomemos esto
y digamos descanso. Y ahora para el artículo que queremos actualizar aquí para
el inventario, vamos a arrastrarlo y enchufarlo. La cantidad es solo
esta también. Ahora para este contenido aquí, esto es recordar
ante el contenido o el hijo a grid aquí el contenido es
este widget que creamos. Sin embargo, recuerde este widget, lo
estamos guardando dentro
de esta matriz en la ranura de inventario y el índice de ranura aquí y
la ranura de inventario. Permítanme simplemente borrar esto aquí. Y puedo arrastrar desde la ranura de inventario y
agregarlo aquí al contenido, así
como actualizar
la interfaz de usuario del slot de inventario. Este índice de diapositiva aquí. Entonces déjame conectarlo y
agregar algunos nodos de reencaminar. Entonces es bueno mirarlo. Bien, entonces aquí
agregué nodos de reencaminar. Entonces, lo que estamos
haciendo como antes, estamos limpiando a los niños, y luego estamos recorriendo todos los widgets que creamos. Estamos obteniendo ese
índice dependiendo del inventario
que queramos
ver ahora mismo. Y luego estamos tomando esa cantidad de artículo,
iniciándolos sesión, actualizando la interfaz de usuario, y también mostrando todos estos widgets de lotes de
inventarios. Entonces ahora con este evento, solo
necesitamos crear
todos los widgets. Porque ahora cuando hacemos clic en la categoría de inventario, widgets. En realidad solo los estamos
mostrando sin
crearlos todo el tiempo. Entonces aquí arriba en realidad
queremos arreglar esto también, porque en este momento no está
creando todos los widgets. Se puede ver aquí. Se trata únicamente de crear el widget para la categoría
de inventario seleccionada. Entonces, lo que podemos hacer aquí, podemos alargar así. Y justo lo que hicimos
aquí arriba con las categorías, acabamos de conseguir todas las categorías. Vamos a copiar esta. Obtiene que los nombres de fila de una tabla
para todas las categorías. Entonces estas son las tres
categorías que tenemos. Y vamos a obtener la longitud
de las categorías. Entonces ahora va a imprimir tres porque tenemos
tres categorías. Permítanme hacer clic aquí, ascendido a una variable y
llamarlo un monte de categorías. Y esta es la cantidad
que vamos a recorrer. Así que vamos a hacer un bucle que muchas cantidades para crear
todos los widgets. Así que déjame crearlo. Entonces no es demasiado confuso. Y en cuanto a la longitud de
cantidad de categorías, en realidad
voy a arrastrar
de aquí y decir menos uno porque vamos a bucle
a partir de cero. Entonces 01.2, así que no necesitamos
esto para decir tres l, Así vamos a rentar cuatro veces. Entonces tenemos tres categorías. Empezamos a
imprimir desde cero. Entonces 01.2, por eso
estoy restando por uno. Y permítanme hacer otra variable aquí llamada contador temporal. Entonces vamos a usar esta para saber cuántas
veces vamos a hacer un bucle. Entonces si esta cantidad de categorías, tomemos este contador
temporal, ponlo en un entero,
digamos cortar aquí. Entonces, si el
contador temporal es menor o igual a la
cantidad de categorías, así que recuerde que el
contador temporal comienza desde cero, el valor predeterminado es cero. Entonces si es menor o igual, la cantidad de categorías, que es dos, entonces podemos seguir adelante y recorrer
las categorías. Por aquí. Solo conectémoslo y
recorremos y bajemos aquí, en lugar de usar la categoría de inventario
seleccionada, voy a eliminar
esto y
usemos nuestro
contador temporal en su lugar. Puede hacer clic con el botón derecho en esto aquí, y puede hacer clic en
Cambiar tipo de pin, y puede
cambiarlo a un número entero. Ahora estamos usando un entero y vamos a
conectar esto aquí. Entonces como pueden ver aquí, permítanme arrastrar esto. Permítanme borrar todo esto. Arrastra esto aquí, también solo
desconecta esto por ahora. Entonces lo que va a pasar es
que vamos a empezar con cero porque las cuentas
temporales son por defecto el valor es cero. Vamos a seleccionar esta
opción aquí, las armas. Y ahora se va a preguntar, es la cuenta temporal
o menor o igual, la cantidad de categorías, que es dos en este caso. Entonces primero va a hacer un
bucle al primero, luego vamos a agregar
uno a este contador, entonces dice uno. Y luego va
a recorrer esto, luego va a
recorrer esto. Y cuando llegue a tres, cuando llegue a tres, entonces ésta en realidad será mayor que la cantidad de
categorías, que es dos. Y entonces ya
no va a hacer bucle. Entonces esto es lo que estamos haciendo. Entonces conectemos este inventario a estas tres categorías. Y por aquí,
volvamos a conectar esto a la matriz. Y también volvamos a conectar
esto a las consigue por aquí. Vamos a compilar. Ahora cuando completemos el
bucle para el primero, tomemos el contador
temporal, dragón y digamos más, más. Entonces estamos agregando uno
al mostrador. Y luego vamos a
recorrer esto de nuevo. Así que vamos a llamarlo desde aquí, crear widgets de ranura de inventario. Crear widgets de ranura de inventario. Y tenemos que volver a establecer
el inventario. Podemos simplemente arrastrar de
éste y enchufarlo a aquí. Entonces ahora está funcionando. Y si echamos un vistazo aquí,
esta no queremos, así que simplemente eliminemos las aquí y voy a
crear algunas notas de reencaminamiento, así que es mejor mirar eso. Entonces ahora lo he organizado
aquí como pueden ver, para que puedan ver el código aquí. Entonces primero estamos obteniendo ¿
cuántas categorías tenemos? Y estamos restando
por uno porque el contador temporal
empieza en cero. Por lo que tenemos tres categorías
en total a partir del 01.2. Entonces estas tres categorías, las
vamos a
recorrer aquí. Y cada uno
vamos a recorrer
la categoría. Vamos a crear widgets. Y vamos a
agregar, al igual que antes, las categorías o
las ranuras de inventario a esa matriz de categorías que
hemos seleccionado. Y nuevamente,
ahora estamos seleccionando
tan pronto como un contador temporal. Y cuando terminamos el
loop para el primero. Entonces cuando terminamos el bucle
para la categoría de armas, vamos aquí
al completo, estamos agregando uno
al contador temporal. Entonces empieza en cero, luego llega a uno. Y luego estamos recreando los widgets de tragamonedas de inventario aquí. Entonces va a ejecutar esto otra vez. Y ahora el
contador temporal es igual a uno. Y entonces
realmente va a crear todos
los widgets para
la categoría de comida. Y luego cuando esté terminado, lo va a poner en dos. Y luego va a
crear para las pociones. Y cuando llegue a tres aquí, entonces va a decir falso. Y lo que podemos hacer
aquí al final, cuando hayamos creado todos
los widgets aquí, podemos mostrar el inventario, así podemos llamar a este llamado Inventario de Display, widgets de slot. Así que permítanme llamar
al cliente uno aquí arriba antes de que me olvide de exhibir aquí. Y el inventario lo
podemos arrastrar aquí. Y llamémoslo por
aquí cuando se pliega. Cuando hayamos creado
todos los widgets, Digamos display,
inventario, widgets de slot. Y para el inventario, vamos a tomarlo aquí arriba, conectado aquí con
los nodos de reencaminamiento y vamos a compilar y
guardar todo. Entonces tenemos esta lógica
también para el jugador. Así que vamos en realidad no aquí, vamos a ir al jugador de planos. Y dentro de aquí, recuerden al principio
dijimos inicializar inventario. Estamos redimensionando su
raza. Eso está bien. Y por aquí estamos creando los widgets de categoría
que está bien. Y las ranuras de inventario también. Entonces esto es correcto. Ahora
volvamos al inventario. Creo que tenemos alguna lógica
que necesitamos cambiar ahí. En el inventario de componentes. Tenemos este
cuando hacemos clic en una categoría en el inventario. Y en realidad puedo volver
solo por aclaración. Para la categoría de inventario
cuando la presionamos, recuerda, cuando la presionamos, establecemos
la categoría de inventario. Y si haces doble clic
aquí, es este código aquí. Estamos creando los widgets
de slot de inventario. Ahora hemos optimizado
el inventario, así que vamos a eliminar esto y en su lugar
simplemente vamos a mostrar widgets de slot de
inventario. Así que ahora solo podemos mostrarlos y el inventario está optimizado. No tenemos que hacerlo, no
tenemos que
crear esos widgets una y
otra vez. Bien, así que vamos a probarlo
antes de hacer otra cosa. Y creo que lo tenemos todo. Todo se ve bien. Vamos a compilar, vamos a ahorrar. Vamos a hacer clic en Reproducir y
ver si tenemos algún bicho. Así que déjame repasar y
saquear todo
igual que antes y ver si realmente
puedo cargarlos ahora. Entonces si hago clic en
abrí mi inventario, se
están cargando correctamente. Lo mismo para
estos de aquí. Ahora, cuando cambias
la categoría de inventario, en realidad
es solo mostrar lo que
ya hayamos creado. Entonces esto es mucho
para optimizar ahora. Está muy optimizado con el error de inventario corregido y
con el inventario optimizado. Pasemos a
la siguiente lección.
42. 7.01 Agrega la operación de arrastre y solta: Bien, así que ahora estamos listos para arrastrar artículos del inventario. Así que pasemos a la interfaz de usuario
y vayamos a la ranura de inventario. Entonces lo que
vamos a hacer ahora es que
queremos arrastrar
del inventario. Entonces si hago clic en Reproducir, quiero, si tengo un ítem aquí, quiero arrastrar este ítem y
puedo soltarlo en el suelo. Entonces esto es lo
que estamos tratando de hacer. Entra en el espacio de inventario. Vamos a la gráfica. Y dentro de esta gráfica, vayamos a funciones y hagamos clic
en este botón Sobrescribir. Ahora aquí vamos a
bajar y veamos aquí, vamos a elegir esta llamada
en el botón del ratón hacia abajo. Y crea esta
función aquí. Y aquí lo que queremos hacer simplemente es simplemente
arrastrar de aquí y decirlo secta, arrastrar si se presiona. Entonces tienes que hacer
esto para que pueda detectar el botón de
tu mouse
y pinchando aquí y voy a hacer click
en mi botón izquierdo del mouse, o simplemente lo puedes encontrar aquí. Y para el evento mouse, conectémoslo con
los eventos puntero. Y para el valor de retorno, conectémoslos aquí. Bien, vamos a compilar ahora. Y nuevamente en las
funciones de aquí arriba, haga clic nuevamente en la anulación. Y busquemos
en arrastre detectado. Entonces es aquí arriba
en arrastre detectado. Seleccione este aquí. Y aquí, vamos a imprimir cadena y ya se puede
ver lo que está pasando. Así que sólo voy a saludar. Vamos a compilar y
vamos a hacer clic en play. Y si abro mi
inventario y hago clic aquí, puedes ver que dice Hola. Si hago clic y arrastre, ahora realmente detecta
que estoy arrastrando. Y dice aquí bajo. Así que ahora podemos agregar algún
código dentro de aquí. Entonces, antes de hacer algo, consigamos una referencia
al jugador y al controlador del
jugador. Así que de nuevo, estamos dentro
de una interfaz de usuario y para nosotros se
puede decir capa Get Owning. Esto te conseguirá el controlador
del reproductor. Y si usas get Owning
Player Pawn, esto te conseguirá, el personaje del jugador obteniendo
este de aquí para que el controlador del jugador
arrastre de él
diciendo que obtiene controlador de capa. Y nuevamente, esto es desde la Interfaz
Blueprint que podemos usar. Vamos a hacer clic derecho promocionado a una variable y llamarlo controlador de
diseño. Y nuevamente, haga clic con el botón derecho
diciendo Get Owning layer en este momento. Para que podamos sacar al jugador
y justo desde aquí y decir consigue capa Eric top. Éste obtiene su referencia. Y obteniendo la
referencia del jugador podemos hacer clic derecho, promover tu variable
y guardar la capa en. Bien, entonces lo que estamos tratando de hacer aquí ahora cuando hacemos clic en play. Entonces lo que quiero que hagas
es lo que tengo este artículo. Solo quiero obtener
la información dentro de este ítem
porque cuando arrastre aquí, quiero mostrar el ícono que estoy arrastrando
desde el peón del jugador. Volvamos a conseguir el inventario
, inventario. Vamos a desplazarnos hacia abajo y
seleccionar este inventario. Y al igual que antes, necesitamos todas las categorías. Entonces, si escribes categoría, puedes obtener la
categoría de armas y la categoría de alimentos, y luego la categoría de poción. Y al igual que antes, necesitamos el inventario seleccionado
porque necesitamos saber qué inventario
hemos seleccionado actualmente. Así que al igual que antes, hagamos clic derecho y escojamos
la función de selección aquí, seleccione nodo, cuello,
el inventario selecto. Y nuevamente, solo conecta
todos estos inventarios. Entonces dependiendo de lo
que hayamos seleccionado aquí, vamos a arrastrar y decir consigue. Y ahora te va
a preguntar qué índice de franjas horarias de
inventario
quieres obtener. Recuerda que estamos en
la ranura de inventario. Entonces ya tienes este índice de ranura
variable. Así que vamos a conectarlo aquí. Entonces ahora estamos obteniendo el
índice en el que estamos dando clic. Ahora antes de ejecutar el código de arrastre de
detección, solo
asegurémonos de que
tenemos un artículo porque no quiero que el arrastre funcione para las ranuras de inventario
hay vacías. Así que tomando aquí diciendo descanso. Y así para esta cantidad de artículo, no
es igual. Para que podamos escribir esto. Si no es igual a cero, entonces quiero que el código
siga adelante y corra. Sin embargo, si es cero, no
queremos que se
ejecute el código porque el espacio de
inventario está vacío. Pero ahora lo más
importante, esta es la función
que es muy importante. Vamos a hacer clic derecho y a la derecha crea la operación de arrastrar y soltar. Entonces éste va a arrastrar el icono y te
va a preguntar, cuál es el drag visual predeterminado, que es el icono que
estamos arrastrando. Recuerda de nuevo, estamos dentro
de la ranura de inventario. Así que solo podemos tomar
este de aquí, el inventario de imágenes o
en realidad el artículo de imagen aquí. Conéctalo a aquí. Y ahora tenemos el
artículo enchufado, solo asegurándonos de que la ranura desde la que
estamos arrastrando no esté vacía. Así que en realidad tenemos un
icono que estamos arrastrando. Bien, así que eso fue todo. Ahora conectemos aquí. Y para la operación, conectémosla
así. Puedes dar click aquí, dar
click en el pellizco
desconectado de altura solo para hacerlo más limpio y déjanos probarlo. Así que vamos a compilar,
vamos a hacer clic en Reproducir. Y si arrastro
así, no pasa nada. Si voy por encima y
cargo esto, arrastre. Ya puedes ver que estoy
arrastrando el icono. Se ve genial. Si hago
esto para el plátano e.g y arrastre, ahora, estoy arrastrando el plátano. Entonces ya puedes ver
que está funcionando. Pero ahora necesitamos que el código
funcione donde realmente dejamos
caer el ítem.
43. 7.02 Disminuye el artículo de un inventario: Bien, entonces ahora queremos dejar
caer el ítem y para hacerlo, vamos a la interfaz de usuario principal aquí. Y dentro de aquí,
vamos a la gráfica. Y nuevamente, igual que antes, y las funciones dan
click en la anulación. Y vamos a seleccionar este
llamado en drop. Porque inicialmente, cuando
estás jugando el juego aquí y tomando un artículo y
soltándolo del inventario, realidad lo
estás dejando caer
encima de tu interfaz de usuario principal. Vamos a escribir este
código dentro de aquí. Ahora antes de que pueda funcionar, puedes ver aquí si
imprimo una cadena en la UNDRIP para la
interfaz de usuario principal, necesita hola. Para que veas que el
código está funcionando. Sin embargo, en este momento
no es por arrastrar y soltar. Se puede decir que
no es decir hola. El código que estamos escribiendo
aquí en realidad no está funcionando. Entonces para que funcione, puedes ir a la ranura
de inventario. Y dentro de aquí, en la gráfica aquí, para que se detecte el on drag, necesitas tomar el controlador
del reproductor. Ya hicimos esa referencia. Toma el controlador del reproductor,
llévalos a la variable principal de la interfaz de usuario. Y en realidad necesitas establecer la visibilidad del Canvas. este momento si haces
clic en el lienzo, puedes ver que la visibilidad no
es comprobable, y en realidad necesita ser visible aquí
para que funcione. Pero no queremos
cambiarlo por defecto porque visible significa que bloquea tu
mouse cuando juegas. Así que solo queremos cambiarlo cada vez que estemos
dejando caer el artículo. Así que volvamos a
la ranura de inventario. Y aquí, tomemos esto
y digamos establecer visibilidad. Y queremos establecer
la visibilidad a visible. Entonces eso es correcto. Tomémoslo aquí y déjelo caer justo antes de que
terminemos la operación. Estamos haciendo visible este
menú I. Y vamos a crear
algunos nodos de
reencaminamiento y
conectémoslo así. Bien, así que vamos a compilar y volvamos
a la interfaz de usuario principal. Y ahora si tratamos de caer, vamos a saludar. Así que vamos a jugar aquí. Vamos a este Cleaver. Vamos a arrastrar y soltar. Y puedes ver que dice Hola. Entonces ahora el código está
funcionando aquí en la función Andhra
para la interfaz de usuario principal. Entonces aquí antes de empezar, igual que antes quiero una
referencia a mi jugador. Así que hagamos clic derecho y
digamos Obtener capa de posesión sobre, vamos a arrastrar y decir
Obtener referencia del jugador. Y vamos a conectarlo juntos. Y vamos a hacer clic derecho
y promover esto a una variable y diciendo capa en. Ahora lo que debería
pasar cuando dejo caer el icono aquí al nivel, necesita volver a generar elemento. Entonces ahora necesito generar el artículo. Necesitamos alguna lógica de desove. Por lo general, el desove
lo hacemos en el controlador del jugador. Entonces vayamos al controlador del
reproductor. Y en el
controlador del reproductor, por cierto, puedes ver que creé
comentarios para todo solo para ti cuando
te doy todo el código. Entonces eso es muy agradable de ver
y de crear comentarios. Si no lo sabes,
puedes un poco más,
sobre algunos de los elementos y
hacer clic en C en tu teclado, y eso crea comentarios. Así que muy agradable estar
organizado así. Bien, así que
bajemos aquí y hagamos un nuevo evento personalizado con el botón derecho del ratón. Y llamemos a este artículo
de una sola gota. Y para dejar caer el artículo, necesitamos
generarlo en el nivel. Así que arrastra aquí y di
engendrar actor de plus. Y ahora necesitamos el último
del ítem que estamos desove. Vamos a arrastrar esto, enchufarlo aquí, esta
transformación de bonos también. Y para el manejo de colisiones, solo
puedes decir trata de ajustar la
ubicación pero siempre engendrar. Y cuando generamos el artículo, también
queremos generar
la cantidad para él. Así que arrastrando de aquí, ahora esto es un, un actor se opone. Así que no podemos simplemente decir
set item quantity, como lo tenemos aquí en el, si recuerdas
en la base de artículos, si voy a la base de artículos, tenemos esta cantidad de artículo
establecida. No obstante, solo necesito una
referencia al ítem primero si puedes decir
get item reference, la que hicimos antes
con la interfaz. Y ahora se puede decir
set item una vez a t Ahora también necesitamos establecer la cantidad cuando
generamos la misma dependiendo de cuantos dejamos
caer del inventario. Voy a arrastrar esto
y conectarlo aquí. Y solo voy
a arrastrarlo justo
arriba o justo debajo de la clase, la clase solo voy
a llamarla ítem en su lugar. La cantidad de artículos es buena
y la transformación de desove también
es buena. Bien, así que normalmente
cuando generamos cosas, pasamos por el modo de juego. Y la razón por la que
pasamos por el modo de juego, si recuerdas el compendio
multijugador, ese modo de juego siempre
existe en el servidor, nunca existe en el cliente. Así que pasando por el modo de juego, nos aseguramos de que
el cliente no genere cosas al azar
y haciendo trampa. Entonces tenemos que
pasar por el modo de juego. Este, en realidad
ahora estamos trabajando al revés. Necesitamos generar a partir
del componente de inventario. Sin embargo, empecé aquí. Entonces en realidad está más
claro dónde está
la cosa, el objetivo principal aquí
es usar este llamado actor spawn y
estamos respondiendo al ítem. Entonces ahora vamos a trabajar al revés. Pasemos al modo juego, porque el modo de juego necesita
llamar a este evento.
Así que volvamos. Planos de un modo. Abramos el editor de
planos completo. Y aquí hagamos un nuevo evento
personalizado llamado request. Dejar caer el artículo. Y este necesita llamar a esto desde el controlador del reproductor. Así que permítanme hacer clic aquí y hacer una variable para
el controlador del reproductor. Y es PC **** abajo, así es como lo llamamos. Y digamos controlador de diseño. Y desde el controlador del reproductor, vamos a arrastrar y llamar a esta función de elemento de
caída. Somos evento que hicimos. Para los artículos. Vamos a
hacer clic y arrastrar y soltar. Y para esta
transformación de bonos, en realidad
vamos a arrastrar de
aquí y decir hacer transformar. Por lo general, hago la transformación
en el Modo de Juego y más ubicación nuevamente y
simplemente hago clic y arrástralo y lo
suelto en el elemento de solicitud. Ahora, aquí no necesitamos
replicar y ejecutar en Servidor,
porque recuerda de nuevo, porque recuerda de nuevo, ese modo de juego siempre
se ejecuta en el servidor. No puedes ejecutar ninguna
cosa de clientes dentro de aquí, el cliente no puede
acceder al modo de juego. Todo o crear aquí
siempre se ejecuta en el servidor, así que no necesitamos configurarlo para replicarlo al servidor aquí. Bien, entonces el último paso, esto solicita el
artículo de caída debe ejecutarse desde los componentes, el Componente
de inventario. Volvamos a los componentes. Y todo, todo empieza aquí, así que en realidad estamos
trabajando al revés. Así que aquí vamos a hacer clic derecho y
crear un nuevo evento personalizado. Llamémosle a éste, baja. Hola Tim. Aquí. Hagamos
uno nuevo corriendo por el servidor llamado drop item. Así como así, corre
en servidor confiable. Y a este
vamos a llamar
al servidor un elemento de caída del servidor. Y aquí tenemos que llamar
al del Modo Juego. Entonces voy a
hacer clic derecho y decir que obtiene un modo y luego arrastra desde aquí y necesitamos obtener
la referencia del modo de juego. Sin embargo, no creo que hayamos
creado ninguna interfaz, Interfaces
Blueprint
para el modo de juego. Entonces hagámoslo aquí. Puedes hacerlo solo si
quieres o hacer ejercicio, y puedes hacerlo conmigo. Ahora, hagamos clic con el botón derecho,
vayamos a planos, creamos una
Interfaz de Blueprint, un modo. Vamos a abrirlo y aquí hacer una nueva función llamada
gets Game Mode reference. Ahora bien, aquí tenemos que decir ¿a qué
estamos tratando de hacer referencia? Estamos tratando de hacer
referencia a la ciudad de los bichos. Este, este es nuestro modo de juego, y llamémoslo modo. Ahora vamos a compilar
y guardar todo. Y volvamos al Modo Juego,
yendo
a la Configuración de Clase y luego agregando esa interfaz, modo de juego de
interfaz. Ahora hagamos clic aquí
y las interfaces, y llamemos a la
autorreferencia. Entonces ahora hemos definido
lo que es esta variable. Ahora podemos volver al componente de
inventario nuevamente. Podemos arrastrar aquí y decir
obtiene una referencia de modo. Ahora vamos a conectarlo. Y desde aquí queremos ejecutar el
evento request drop item que hicimos. Bien, así que ahora
vamos a conectarlos aquí. Conectemos el controlador
del jugador, el artículo, la
cantidad de artículo y la ubicación. Y ahora los tenemos
aquí arriba en el drop item. Y vamos a
hacer lo mismo. El controlador del jugador, el artículo, la cantidad de artículo y
la ubicación también. Y ahora podemos usar esta dentro
de la interfaz de usuario principal. Entonces usemos esto. Entonces, lo que va a
pasar es que
vamos a llamar a
través de la interfaz de usuario principal. Y va a
pasar por aquí, pasando por el servidor solo para asegurarse de que no esté
declinando ejecutarlo. Y va a correr
por el modo de juego. Se va a solicitar que se suelte el artículo aquí en el Modo de Juego. Y entonces cuando eso sea posible, va a dejar caer el ítem, el controlador del jugador,
donde se une el ítem así
como la cantidad. Entonces vamos a la interfaz de usuario principal aquí. Entonces dentro de aquí
desde el peón jugador, tomemos el inventario, porque ahora queremos
llamar aquí a este evento. Entrarás aquí tomando la variable de inventario AAC
aquí abajo en la parte inferior. Ahora podemos decir soltar artículo
y seleccionarlo aquí. Ahora necesitamos un plugin
para el controlador, así que podemos simplemente
arrastrar desde el play on y guardar el controlador del reproductor. Ya hemos hecho una
variable dentro de aquí, enchúfala aquí, y ahora
necesitamos la clase de ítem. Entonces, ¿cómo conseguimos este? Al igual que antes, voy
a la ranura de inventario y voy a copiar
todo esto aquí. Entonces copiando todo esto
y copiando esto también. Voy a volver a la interfaz de usuario
principal, pegándola aquí. Voy a eliminar
este índice de babosas, así que solo tengo esto aquí. Y para el inventario, solo
podemos conectarlo. Tomemos el Peón Jugador
solo para hacerlo más limpio. En lugar de conectar esto aquí, tomemos de nuevo aquí el
peón del jugador llamado la variable de
inventario AAC , y luego
conectándolo a todo esto. Y ahora para el índice, necesitamos saber qué
estamos arrastrando. Porque ahora cuando
estamos arrastrando un ítem, realmente
necesitamos saber de qué es este índice de slot del que
estamos arrastrando. Entonces voy a
volver a la interfaz de usuario y
voy a abrir el inventario
y voy a la gráfica. Y aquí voy a
agregar una nueva variable, esta variable voy a
llamar índice de ranura arrastrada, y voy a
ponerla en un entero. Y vamos a compilar. Ahora, volvamos a
las ranuras de inventario. Así que aquí en la ranura de inventario, cuando estamos arrastrando de eso, vamos a establecer el índice de ranura de
drogas aquí. Entonces voy a empujar
esto un poco aquí. Tomemos el controlador
del jugador, llamemos a la variable de
inventario WB. Y a partir de aquí hicimos
el índice de slot Dragged. Voy a poner eso aquí y simplemente
arrastrarlo hasta aquí, configurarlo. ¿Y a qué
vamos a fijarlo? Simplemente
vamos a establecerlo este índice de ranura aquí porque este es el índice de ranura
que estamos arrastrando. Si compilo ahora y
vuelvo a la interfaz de usuario principal, puedo tomar el controlador
del reproductor. Entonces va a tomar
el peón jugador, va a tomar el controlador
del jugador. Y a partir de aquí podemos tomar
la variable de inventario de WB. Y ahora podemos llamar al índice
de ranura de arrastre. Podemos conectarlo al aquí
arriba para obtener la información
del artículo. Entonces ahora podemos tomar
esto y decir descanso. Voy a tomar
todo esto y simplemente empujarlo hacia atrás aquí. Entonces, para la clase de artículo, lo
tenemos dentro de este artículo. Entonces si lo tomas y dices
break y lo abres aquí, tenemos esta clase de ítem. Podemos enchufarlo en el artículo en cuanto a la
cantidad que lo tenemos aquí. Así que vamos a enchufarlo y
pregunta por la ubicación. Vamos a ponerlo donde esté
el jugador actualmente. Así que tomando el
refrán de Jugador Peón obtiene la ubicación del actor. Tomando esto aquí y puedes
enchufarlo a la ubicación, haciendo clic en
éste, presionando ocultar bolígrafos
desconectados así como éste ocultar cosas
desconectadas. Bien, así que ahora
en realidad estamos dejando caer el artículo. No obstante, también necesitamos
actualizar el Inventario. Así que voy a
tomar este de aquí y decir set array elements. Y vamos a conectarlo aquí, o el artículo que necesitamos para eliminar el artículo
del inventario. Entonces digamos aquí y digamos make. Y vamos a hacer
ese espacio de inventario. Entonces, para el artículo, no
vamos a agregar nada que
elimine el artículo
del inventario así como la cantidad que no
vamos a agregar nada. Sin embargo, todavía necesitamos mantener nuestro espacio de inventario y nuestro índice de tragamonedas para que
no se eliminen. Entonces, haciendo clic aquí en
el espacio de inventario, mostremos nuestro
inventario, ranura de inventario e
índice también. Vamos a arrastrarlos hasta aquí. Y lo único que
vamos a eliminar el artículo
además de establecer la
cantidad a cero. Ahora da clic aquí,
ocultando pines desconectados. Y ahora para el
índice podemos simplemente arrastrar desde este índice de slot
arrastrado. Sólo podemos copiarlo si quieres. Y puede pegarlo
aquí arriba solo para hacerlo más limpio y puedes
enchufarlo aquí. Ahora también necesitamos
actualizar la interfaz de usuario también. Recuerda hacerlo también. Entonces, directamente desde
el espacio de inventario, diciendo actualizar inventario, hay lógica
que lo conecta para el artículo. No vamos a
enchufar nada que elimine el artículo
del inventario además de
establecer la cantidad a cero. Ahora recuerda hacer
esto ahora tenemos actualizado todo lo que
necesitamos actualizar, y vamos a conectarlo aquí ahora. Y recuerda hacer click en
el boleto booleano aquí. Entonces es cierto y vamos a compilar y probemos
ahora el juego. Así que guarda todo,
haz clic en Reproducir. Ahora sigamos adelante
y perdamos algo. Y vamos a hacer clic y
arrastrarlo al mundo. Y se puede ver que está
desove, increíble. Y voy a arrastrar
éste también. Es desove. Y si
solo hago clic en el plátano, lo
tomo,
lo arrastro y suelte, lo. Gotas aquí. Si hago clic en él, aludido de nuevo, carga
la cantidad correcta. Si hago clic aquí, se me
cae este es diez. Este es para,
me encantó este. En realidad debería
mirar primero a éste. Dice cuatro. Voy a cargar este
va a sumar seis aquí y luego
decir cuatro aquí. Entonces en realidad está funcionando
como se supone que debe
hacer ahora que estamos soltando
artículos del inventario, vamos a agregar algo de física, así que se ve bien
cuando
los estamos dejando caer y no están
flotando en el mundo.
44. 7.03 Habilitar la física de armas: Para habilitar la física
de los elementos, sigamos adelante y hagamos clic en
los Ítems y los planos. Vamos a abrir la base de artículos. Y dentro de aquí, si
haces clic en la clase, los valores predeterminados están en realidad en
la malla y el ítem aquí, puedes ver aquí en
el panel Detalles tenemos algo
llamado Física. Y aquí puedes
hacer click en simular física para que pueda
caer en el suelo. No obstante, en este se puede
ver no podemos darle click. Entonces lo que podemos hacer es que
podemos hacer clic aquí. Y al principio
como eventos, podemos arrastrar este ítem desde
aquí y decir simular física. Así que establece simular la física y vamos a
establecerla en true. Entonces, cada vez que
un arma genere o un objeto genere, va a establecer que la
física sea cierta. Ahora vamos a hacer clic en Reproducir
y ver qué pasa. Y ahora mismo si hago
clic aquí y lo dejo caer, se
puede ver que sigue flotando y tiene algo que
ver con la colisión. Entonces haciendo clic en el ítem. Y si bajamos aquí
a la colisión, se
puede ver que está
configurado en ninguna colisión. Y en lugar de no
colisionar, da clic en Personalizado. Y aquí, la religión habilitada, hagamos clic en ella y
digamos que la religión habilitada. Entonces es consulta y física, necesitamos la física aquí. Por lo que la colisión está habilitada. Y vamos a
ignorar todo excepto la dinámica mundial
y la estática mundial. Y este es el suelo para que no caiga por el suelo. Vamos a compilar ahora y
vamos a hacer clic en play. Y déjame simplemente perder algo. Y si hago clic y caigo, se
puede ver que cae, pero es falso
a través del suelo. Y si esto te pasa, hecho descubrí por qué estaba pasando
eso cuando
intenté lograrlo. Y eso es porque
la colisión es realmente mala para estos
artículos que descargué. Entonces, si solo abres uno
de los activos, por ejemplo artículo que inteligente,
arreglemos este. Entonces este artículo inteligente, si haces clic en mostrar, tal vez esto también le pase a
tu proyecto. Entonces, mostrando aquí las simples
colisiones, esta es una simple colisión. Y lo que tienes que hacer es aquí en las colisiones
necesitas
agregar una caja de colisión simplificada. Se puede ver este
sencillo bichos que se le agregaron. Si haces clic en él. Ahora voy a presionar
R para la herramienta de escala. Y voy a escalarlo. Voy a reducir mi
escalado a éste en su lugar. Redujamos un poco la velocidad de la
cámara. Voy a escalarlo un poco. Entonces podemos ver que aquí tiene un
poco de colisión. Esta es la caja de colisiones
que escalamos hacia arriba y hacia abajo. Yo sólo voy a escalar
algo así y a los lados así también. Voy a probarlo
aquí para el cuchillo. Sigamos adelante y hagamos clic en cuadro de
colisión simplificado. Ahora puedes hacer click en él
y aumentarlo de esta manera. Y también arriba palabras
así. Yo también lo hago. Déjame hacerlo también por
el plátano. Déjame ir a colisión
y luego caja simplificada. Y voy a escalarlo. Y la razón es esta, la colisión es realmente mala, así que está cayendo por
el suelo así. Así que ahora vamos a guardar
todo y
vamos a probarlo con los
artículos que ya tenemos. Ahora, puedes ver que está
flotando un poco, y eso son solo los artículos. Son realmente mala colisión. Así que vamos a recogerlo,
vamos a bajarlo. Y ya se puede ver que no está
cayendo por el suelo. Para que puedas arreglar la
colisión en tu artículo, hazlos más
específicos ahora mismo. Estos se hacen muy rápidamente. Entonces voy a agregar la colisión
también para mis pociones. Pero ahora se puede ver que
no están cayendo por el suelo y todo
está funcionando a la perfección.
45. 8.01 Obtención de información de las ranuras: Bien, entonces ahora es el momento de mover los artículos entre
las ranuras de inventario. Entonces cuando perdemos un artículo aquí y la cantidad
se fija en dos, por
eso estoy aludiendo a. Pero la puedes ver
no puedo moverlas entre las diferentes ranuras de inventario porque no lo hemos hecho. Podemos simplemente arrastrarlos
y soltarlos
al mundo y volver a cargarlos. No obstante, no podemos
arrastrarlos a nuevos espacios de inventario, y esto es en lo que
vamos a estar trabajando. adelante y vayamos a la interfaz de usuario y presionemos en la ranura de inventario. Y dentro de la gráfica, sigamos adelante y
hagamos dos funciones. Entonces aquí arriba en las funciones, vamos a hacer clic en el
más y llamemos
al primero, se
arrastra slots. Y agreguemos otro
llamado consigue nuevos slots, slot y consigue los nuevos slots. Por lo que queremos obtener alguna
información sobre estos dos slots porque los
estaremos actualizando. Vamos a entrar en el
primero, que nos arrastren ranura. Y dentro de aquí,
tomemos el controlador del jugador o el jugador y el inventario
AAC, variable de inventario. Entonces ahora queremos obtener las tres categorías,
buscando categoría. Primero, conseguir la categoría de
armas, obtener la categoría de comida, y conseguir la última,
la categoría de pociones. Y además consigue que este obtenga la categoría de inventario
seleccionada. Y al igual que antes, seleccionemos el
negativo aquí y conectemos todas nuestras
categorías, inventarios. Y lo hemos estado
haciendo muchas veces ahora. Entonces ahora solo queremos obtener alguna información sobre
el slot Dragged. Entonces dependiendo de qué
inventario hayamos seleccionado, queremos obtener ese artículo. Y ahora, ¿qué artículo es? Es de la ranura de la droga. Y recuerde que ya hicimos en el índice de tragamonedas de inventario
arrastrado, y está dentro del controlador
del jugador. Entonces lo que podemos hacer es aquí, el peón jugador y
el controlador del jugador, en realidad
volvamos de no detectado y
los hicimos dentro de aquí. De hecho voy
a cortarlos de
aquí y ponerlos en el evento de juego
inicial en su lugar, simplemente arrastre
al jugador
así y conéctelo aquí. Bien, entonces eso está conectado. Y volvamos
al Gráfico de Eventos y hagamos que empiece a jugar. Y aquí vamos a añadir esos dos aquí para que se definan cada vez que comencemos a
jugar el juego. Bien, volvamos a
las ranuras que se arrastran. Y dentro de aquí,
tomemos el controlador del jugador, digamos inventario de WB, así que la variable de
widget de inventario. Y aquí tenemos este
llamado índice de slot arrastrado. Y vamos a enchufarlo aquí. Entonces ahora estamos obteniendo
el índice de tragamonedas Dragged. Y a partir de esa ahora
podemos decir break. Y esta información,
vamos a agregarla a un nodo de retorno. Así que arrastrando desde
aquí diciendo retorno, agregando un nodo de retorno. Y vamos a arrastrar todas
las variables dentro del nodo devuelto
para que podamos usarlas posteriormente. Ya que apenas estamos obteniendo
alguna información, podemos dar click en esta
función y dar click en pure. Entonces esto lo está convirtiendo
en esa función verde, que es simplemente
obtener información. Para que puedas ver el Gráfico de Eventos. Si arrastro esto aquí
al mundo, es solo esta función Get
verde la que no tiene pines de ejecución porque la configuramos en pure. Bien, así que ahora vamos a hacer que
este obtenga un nuevo índice de slot. Entonces en el ser arrastrado, solo
estoy copiando todo
esto. Voy a conseguir un nuevo índice de slot. Estoy pegando
todo el asunto aquí. Y ahora podemos volver a
arrastrar desde aquí, hacer un nodo de retorno. Y vamos a conectarnos,
igual que antes, conectemos todas las variables aquí. Y en lugar de hacer el índice de slot
get dragged, solo
tomemos este índice de slot. Este es el nuevo
slot, el índice de slot. Así que vamos a compilar
todo y ahorrar. Y eso fue todo para
el índice de
slot se arrastra y consigue
nuevo índice ****. Y los estaremos usando
para actualizar el inventario.
46. 8.02 Actualizar la información de las ranuras: Bien, entonces ahora hicimos
el
slot get dragged y obtuvimos nuevas funciones de slot. Ahora mismo vamos a
hacer la actualización una vez más, ve aquí y crea nueva función. Llamemos a las
primeras actualizaciones, arrastramos slugs y
hagamos una nueva llamada update new slots. Vamos a entrar en la ranura de
actualización arrastrada. Y nuevamente, solo necesitamos la información de la ranura
Arrastrada. Así que voy a volver aquí y
se les arrastran ranura. Voy a copiar todo
esto y voy a
volver a la ranura de arrastre de actualización
y pegarlas dentro de aquí, y para actualizar la ranura
otra vez igual que antes, arrastre desde aquí establece elementos de
matriz. Y ahora vamos a conectarlo aquí. Entonces ahora queremos actualizar el índice de ranura Arrastrado
y para el artículo, Vamos a arrastrarlo aquí y
digamos make inventory slot. Y por aquí, vamos
a hacer nuevas variables. Vamos a crear dos aquí. Pero el primero se va a llamar artículo de ranura arrastrado, y el segundo se
llama nueva cantidad de artículo. Cambiemos este a un
entero y el primero
a una estructura de información de elemento. Entonces este es el artículo, ese artículo de medicamento simplemente
va a entrar en este artículo aquí para esta matriz
así como la cantidad. Arrastremos eso y lo
usaremos más adelante. Pero déjame arrastrar
todo hacia abajo. En cuanto a la
ranura de inventario anterior y el índice de ranuras, no
queremos cambiarlos. Se quedan igual. Entonces vamos a tomarlo aquí desde el índice de slot directo. Sólo vamos
a enchufarlos
de nuevo porque no
queremos cambiarlos. Lo único que queremos
cambiar en la ranura del medicamento, es el artículo y la cantidad
que viene de este insumo. Y en cuanto al índice de ranura
aquí para la matriz, podemos simplemente arrastrar este
índice de ranura y conectarlo. Y ahora estamos actualizando
el inventario. Pero recuerda que también
necesitas actualizar la interfaz de usuario. Así que voy a arrastrar desde esta ranura de inventario
y decir actualización,
actualización de interfaz de usuario de ranura de inventario. Y vamos a enchufarlo
. En cuanto al artículo, vamos a enchufar este
artículo y otra vez, así
como la cantidad para ello. Entonces voy a
crear algunas notas. Puedes dar click en
éste y hacer clic en Ocultar pines desconectados, ¿verdad? Entonces agregué algunas
notas de reencaminamiento y lo organicé. Entonces ahora lo que estamos
haciendo es simplemente obtener el índice de lote drags
u obtener el ítem. Y aquí solo necesitamos
el slot de inventario y el índice de slot y conectarlos de nuevo
al nuevo porque
no queremos perder
esa información. Lo único que estamos
cambiando es el artículo así
como la cantidad para el índice de ranura Arrastrado
o artículo que cuando lo estamos arrastrando
en el inventario y recordamos actualizar
la interfaz de usuario también. Al final, aunque, para la actualización nueva ranura, en realidad
voy a
eliminar esto y vamos a
hacer clic aquí y hacer
clic en duplicar. Y vamos a
llamarlo actualizar mu ranuras. Y lo único que en realidad
vamos a cambiar dentro de aquí. Vamos a eliminar
este medicamento como índice, y vamos a usar este
nuevo índice de ranura en su lugar. Déjame empujar un
poco el código y organizarlo. Y eso es en realidad Es todo, todo lo demás permanece igual. Este sigue siendo el
artículo de la ranura de drogas que verás más adelante, y todo es igual. Lo único que
estamos haciendo aquí es obtener este nuevo índice de
tragamonedas y estamos guardando la información sobre el widget de lotes de inventarios
y el índice de tragamonedas también. Ahora, compilemos
y guardemos todo. Entonces ahora tenemos estos. Si vuelvo al Gráfico de Eventos,
tenemos éste. Indexe la ranura de las unidades, obtenga un nuevo índice de ranura. En realidad este,
nuevamente haga clic en puro. Entonces lo tenemos así. Y luego tenemos la ranura de arrastre de
actualización y actualizamos la nueva ranura. Entonces ahora los tenemos y podemos utilizarlos para actualizar
el inventario.
47. 8.03 Artículo de caída en la ranura de inventario: Bien, así que ahora estamos listos
para dejar caer el artículo en las ranuras de
inventario nuevas y antiguas. Así que volvamos a
la ranura de inventario. Vamos a la gráfica. Y aquí, al igual que antes de
hacer clic en la anulación, baje y seleccione esta
llamada al soltar. Así que ahora solo vamos a imprimir una
cadena y ver qué pasa. Ver si el código se ejecuta. Entonces debería decir
Hola si arrastre, así que si hago clic en play y
arrastre de aquí a aquí, ahora mismo, no pasa nada
porque no hay artículos. Entonces si arrastro aquí y lo dejo
caer aquí, puedes ver que dice Hola. Pero para las ranuras de inventario
donde no tengo artículos, no dice nada,
así que eso es bueno. Pero si arrastro aquí, lo suelte, dice Hola, así que todo está funcionando como se supone que debe hacerlo. Entonces ahora vamos a hacer una
nueva variable aquí, y es una booleana, y voy a
llamarla es apilable. Entonces ahora lo que queremos
hacer es verificar por nosotros una cosa y establecer esta si el artículo es apilable o si el
artículo no es apilable. Vamos a pasar por aquí y conseguir el nuevo slot y también
conseguir el slot directo. Primero, lo que queremos
verificar es si estamos arrastrando el mismo artículo uno
encima del otro. Entonces tomando este
ítem diciendo break, así
como este ítem diciendo break para el nuevo ítem al
que estamos arrastrando. ¿Este nombre está en
la ranura del nuevo artículo, es el mismo que el artículo que estamos arrastrando desde
la ranura del controlador? Si lo es, eso significa
que es el mismo artículo. Y también tenemos que comprobar
si ese artículo es apilable. Si haces clic derecho
y derecha y B, ves éste
y el booleano. Entonces primero aquí, el primer elemento, Vamos a arrastrar esto es apilable
y enchufarlo aquí, como aquí, y
saludar a los pines no conectados. Entonces, ¿este artículo es apilable? ¿Y el nombre es el
mismo que el de arrastre? Esto significa que
en realidad es el mismo artículo. Y también solo para
asegurarme voy a click en este plus aquí
y agregar otro. Y justo aquí abajo, asegurándose
también de que la ranura de elementos de arrastre también
sea apilable, ocultando pines no conectados aquí. Entonces ahora lo que estamos diciendo aquí, estamos comprobando si
el nombre es el mismo en la nueva
ranura y en la ranura. Así que estamos comprobando si es
el mismo artículo y
también estamos comprobando si ese
artículo es apilable. Y si lo es,
vamos a hacer una sucursal. Y vamos a conectarlo y
decir que sí, es apilable. Ahora hay otra cosa
que tenemos que verificar. ¿Y si arrastramos este artículo de la
ranura para medicamentos a la nueva ranura? Y la nueva ranura está vacía. Pero la trama sigue siendo apilable. En este momento estamos comprobando
si tiene el mismo nombre, no
va a tener el mismo nombre. Si esta ranura aquí está vacía
y no tiene un artículo, también
tenemos que verificar
eso. Entonces, lo que vamos a hacer, vamos a tomar esta cantidad de artículo de la
nueva ranura a la que estamos arrastrando, y estamos diciendo igual. Entonces, si esto es igual a cero, lo que significa que no hay elementos
dentro de esa ranura. Sin embargo, este
artículo de ranura para medicamentos es apilable. Entonces rompiendo de aquí
y diciendo y booleano, si es cero y las drogas, ese artículo es apilable, entonces en realidad
también es apilable. Éste puede ser cierto y
éste puede ser cierto. Entonces para hacer esto, podemos arrastrar desde aquí y decir O booleano y luego
conectar este de aquí arriba, y luego conectar
este de aquí. Entonces ahora estamos diciendo si esto
es cierto o si esto es cierto, entonces podemos seguir adelante y decir
que el ítem es apilable. Y aquí en el falso, sólo
vamos
a ponerlo a ninguno apilable y vamos
a usar esto un poco más tarde. Y luego vamos a crear
una nueva función que usaremos
en la siguiente lección. Así que no te
preocupes por eso ahora mismo. Pero llamémoslo
actualizar las ranuras de inventario. Y
volvamos al Gráfico de Eventos, en realidad a la DNUDRIP aquí. Y vamos a arrastrar este,
actualizar las ranuras de inventario. Vamos a conectarlo
con los dos aquí. Y recuerda aquí cuando arrastras, así que en drag detectado
que hicimos antes, dijimos que la
interfaz de usuario principal sea visible, el lienzo principal,
necesitamos recordar configurarlo de nuevo a none
hit comprobable también. Ellos van a seguir adelante
y copiar este código, volver a la Andhra, y vamos a pegarlo aquí abajo. Y menos conectados también conectan este y configuran
este para que sea cierto. Ahora también hay que recordar cambiar este a festival
no oculto. Y también tenemos que
volver a la interfaz de usuario principal, esta de aquí, e
ir a la gráfica, ir a la DNUDRIP. Y también aquí cuando
lo dejamos caer encima del menú I, tenemos que
volver a ponerlo en no comprobable. Debido a que este de aquí
y el espacio de inventario, este solo funciona
si lo dejamos caer encima de otro espacio de
inventario. Este año, también
lo estamos volviendo a cambiar cada vez que
terminemos de dejar caer
el artículo encima del lienzo. Entonces en lugar de este
control de placa Ellis eliminó. Tomemos el Peón del Jugador, llevemos el controlador del jugador
de esta jugada en adelante. Y ahora podemos conectarlo
aquí arriba y simplemente empujar
el código así, conectarlos, y recuerda
tomar esto y configurarlo
a ninguno odio comprobable. Entonces ahora estamos
cambiando y volviendo a cambiarlo también. Bien, así que ahora terminamos
con la función unwrap. Simplemente estamos
comprobando si el artículo que estamos arrastrando es
apilable o no. Y esto es algo
que usaremos en la siguiente lección cuando
hagamos esta función aquí. Así que vamos a guardar todo y pasemos
a la siguiente lección.
48. 8.04 Actualización de las ranuras de inventario: Hola y bienvenidos de nuevo. Entonces ahora hagamos que esta
actualice las ranuras de inventario. Así que por aquí para empezar, déjame arrastrar las nuevas babosas
y que me arrastren ranura aquí. Primero, estamos comprobando si
no estamos arrastrando el artículo
en el mismo lugar. Entonces, si hago clic en Reproducir y acabo
de sacar, toma un artículo aquí. Si lo arrastro, solo
quiero ejecutar el código. Si lo estoy arrastrando
hasta esta ranura de inventario, no
quiero ejecutar
el código si lo estoy arrastrando y luego soltando
en el mismo espacio de inventario. Entonces primero estamos comprobando si el nuevo índice de diapositivas de
ranuras de inventario es igual al anterior, lo que significa que simplemente
lo dejamos caer en la misma ranura de inventario. Si eso es cierto, en realidad no
queremos hacer nada, sólo por mi propia lectura. Voy a probarlo a
partir de esto y decir que no y elegir este NO booleano. Entonces, si no es el
mismo índice de slot, entonces seguiremos adelante
y ejecutaremos el código. No obstante, si es falso, si es el mismo índice de slot, no
queremos hacer nada. Entonces después, entonces vamos a preguntar si el artículo es
apilable o no. Porque si es apilable, vamos a sumar
juntos. Si no son apilables, sólo
vamos a
cambiarlos entre sí. Entonces primero bajemos aquí. Digamos que el artículo no
es apilable. ¿Qué pasa? Tomemos este, actualicemos, arrastremos ranuras y actualicemos el nuevo boletín
y la diapositiva de drogas. Y vamos a conectarlos aquí
y conectarlos así. Entonces, para la nueva ranura, recuerda que estamos
tomando el artículo de la ranura del conductor y lo estamos dejando caer encima
de la nueva ranura. Entonces el nuevo elemento de ranura es el elemento arrastrado aquí
desde la ranura directa. Entonces tomemos el slot
get dragged. Tomemos el artículo
aquí y lo dejemos caer, así
como la cantidad del artículo. En cuanto a la ranura directa, necesitamos poner el artículo de la nueva ranura,
el lodo seco. Entonces estamos cambiando
entre estos dos. Vamos a tomar el artículo de la ranura para medicamentos y ponerlo en el nuevo espacio. Y luego necesitamos
el nuevo artículo de slot y lo ponemos en la ranura de borradores. Ahora, acabamos de actualizar
el nuevo ítem de slot. Por lo que es imposible
obtener esta información. Ahora no podemos simplemente tomar
esto y hacer así, porque aquí acabamos de
actualizar este ítem. Este artículo aquí es en realidad
ahora este artículo aquí. Entonces no podemos hacerlo así. Lo que podemos hacer es que
solo podemos tomar este get new slot. Y antes de hacer esto aquí, vamos a hacer clic con el botón derecho remoto
a una variable local. Una variable local es solo
una variable temporal. Llama a este, nuevo artículo de ranura. Y podemos hacer clic derecho
en esta, promover a
variable local y llamar esta nueva cantidad de artículo de ranura. Ahora vamos a conectarlos entre sí y conectados juntos
con éste también. Y ahora puedes usar esas
variables para agregarlas aquí. Entonces, el nuevo artículo de ranura y
luego la nueva cantidad de artículo de ranura. Bien, entonces ahora eso es correcto. En realidad puedes simplemente jugar el juego y ver si eso funciona. Entonces esto es si el artículo no
es apilable. Así que vamos a hacer clic en play. Y voy a laúd
esto de aquí, esto de aquí. Y si acabo de cambiar
estos dos juntos, ya pueden
ver que
son conmutables. Si los arrastro hasta aquí, eso también funciona. Bien, así que
aquí todo funciona y también puedo
cambiarlos juntos. Eso es lindo. Se lo puedo dejar caer. Puedo cambiar esos y
dejar esto también. Se puede ver que funciona perfectamente. Ahora. Sin embargo,
no funciona con los artículos apilables porque no
hemos hecho este código. Por lo que puedes ver aquí
el artículo es apilable. No pasa nada porque aquí no
hemos hecho nada. Entonces esto está funcionando ahora, vamos a subir aquí. Entonces, antes de hacer algo
por los artículos apilables, queremos sumar las
cantidades juntas. Porque te puedes imaginar si
tienes cuatro plátanos en la primera ranura y tienes cinco plátanos en la segunda ranura, necesitamos agregar cuatro
más cinco porque estamos arrastrando el
artículo apilable al siguiente. Así que vamos a tomar la ranura de la droga y también la nueva ranura de aquí arriba. Ahora tengo esos y tomemos la cantidad de la nueva ranura. Vamos a agregarlo junto
con la ranura directa. Y ahora acabamos de hacer esta nueva cantidad de artículo de ranura. Así que déjame
arrastrarlo por aquí y configurarlo aquí,
conectado aquí arriba. Y lo siguiente que
tenemos que verificar es esta nueva cantidad de artículo. ¿Es mayor que el tamaño máximo de pila para
este artículo en la nueva ranura? Así que vamos a romper aquí y comprobar
si esto es mayor que el tamaño máximo de la pila
porque no queremos
agregar todo si
se pone mayor que
el tamaño máximo de pila, vamos a arrastrar aquí y
hacer un booleano. Entonces digamos primero, No, no es mayor que
el tamaño máximo de pila. Así que sólo vamos a agregar por ejemplo para plátanos junto
con cinco plátanos. Entonces esto es falso. No es mayor que
el tamaño máximo de la pila. Arrastremos la ranura de actualización del
nuevo elemento, y arrastremos la actualización, ranura
arrastrada y las
conectemos juntas. Entonces, para el nuevo slot,
nuevamente, al igual que antes, el nuevo ítem de slot es
solo
el del slot directo porque
simplemente lo arrastramos por allí. Entonces tomando esto, enchufándolo y preguntando por la
nueva cantidad de artículo, los
acabamos de sumar aquí. Así que puedes. Toma esto y conéctalo
y crea nodos de reencaminamiento. Y ahora podemos para el
falso conectado aquí, realidad, en lugar de hacer esto, en realidad
podemos
simplemente usar este. Eliminemos esto
y solo tomemos esta de aquí para que podamos
usar esta variable acabamos de hacer Eso es un poco más limpio usar
algo como esto. Y ahora para la ranura directa de
actualización, ahora acabamos de agregar el elemento de ranura directa en la
parte superior de la nueva ranura. Así que arrastra mucho más, en realidad ya no
tenemos un artículo. Sólo vamos a
dejar que sea así, la cantidad cero y el artículo se eliminará
de la ranura anterior. Bien, entonces, ¿y si el artículo
que estamos poniendo encima de la nueva ranura obtiene
más que el
tamaño Max Stack para ese artículo Ahora copiemos esto de nuevo
y peguémoslo aquí arriba. Entonces, para el boletín nuevamente, es como el
artículo es solo el artículo de la ranura de medicamentos
y la cantidad para la nueva ranura es solo el tamaño Max Stack porque
no puede ser mayor que eso. En cuanto a la ranura de drogas aquí, el elemento de lodos secos
es solo este de nuevo. Entonces solo voy a copiar
esto, pegarlo aquí. Ahora, para la nueva cantidad de artículo, necesitamos restar esta nueva cantidad
del tamaño Max Stack. Entonces tomemos la cantidad aquí, digamos menos el tamaño
máximo de la pila. Entonces digamos por ejemplo la ranura de droga era diez y la nueva ranura era
cuatro, eso nos dará 14. No obstante, para los plátanos, el tamaño de Max Stack es de diez, así que va a
decir 14 menos diez. Eso nos da cuatro. Recuerda que acabamos de arrastrar
diez a la nueva ranura. Entonces tenemos los cuatro que
quedan en el lodo seco. Así que aquí vamos a
decir menos, y voy a crear algunas notas de reencaminamiento para que
quede un poco más claro. Y conectemos esta verdad aquí
arriba con esta, y ahora debería funcionar. Así que vamos a compilar todo. A ver si tenemos algún bicho. Vamos a hacer clic en Reproducir. Déjame seguir adelante y
saquear algunos de los artículos. Y ahora tengo 10.4. Si les arrastro una nueva ranura, en
realidad desaparece. Así que en realidad necesito
ver qué está pasando. Déjame volver aquí y
haciendo clic en la actualización de la nueva ranura y solo
comprobando que esto es correcto y esto me
parece bien. Entonces ahora si volvemos
a la Andhra y
volvemos a las
diapositivas de actualización de inventario, la función IF aquí. Y puedo ver en realidad
el error está aquí. Necesitamos el tamaño Max Stack
de las ranuras drogadas. Porque no necesitamos el tamaño Max Stack
de la nueva ranura. Porque si me arrastro aquí, ves la nueva diapositiva
ahora mismo tiene ceros. Así que el tamaño Max Stack
es cero porque no
hay ningún artículo que
sea realmente el dólar. Así que en vez de aquí,
vamos a conectarlo, conectar éste en su lugar, y crear notas de reencaminamiento. Entonces se ve bien. Ahora vamos a compilar
y debería funcionar. Esto fue solo un pequeño error. Volvamos a saquear todo. Y ahora tenemos el tamaño
correcto de Max Stack. Así que vamos
a arrastrarlo al siguiente, y ahora funciona. Y si arrastro este
diez a los cuatro, debería decir 10.4. Entonces esto debería cambiar entre
sí así así. Entonces funciona ahora los artículos
apilables están funcionando. Y si lo dejo caer aquí, me cae éste, los cargo. Cfi, vamos, déjame dibujar
realmente éste, recogeré esto, lo
pondré por aquí, debería llenar esta
ranura aquí primero. Entonces va a poner las
cosas que son más aquí. Los pondrá
en la primera ranura. Bien, entonces todo
está funcionando ahora. Estamos actualizando todo. Voy a seguir adelante y
colocar todos los artículos en el suelo y vamos a
probar el producto final.
49. 8.05 Agrega efectos de sonido: Para que sea un poco
más interesante antes de terminar este curso,
sigamos adelante y agreguemos
algunos efectos de sonido. Entonces en la carpeta de audio, he incluido algunos efectos de
sonido. Por supuesto podemos agregar más, pero probemos esos por ahora. Entonces esos efectos de sonido, puedes hacer clic en el
primero y mantener presionado Mayús clic en el
último y hacer clic con el botón derecho. Sigues adelante y creas
múltiples colas. Entonces estamos creando
esas señales sonoras. Voy a cambiarles el nombre. Por ejemplo, yo. Se puede cambiar
el nombre del primero. En lugar de llamar a
una cola por aquí, voy a llamarlo
el SC para señal de sonido, y luego el nombre
del efecto de sonido. Ahora los he renombrado a todos, así que solo ve para
empezar para obtener una señal de sonido. Y puedo tocarlos ahora, pero son muy ruidosos. Creo que se
le permitirá. Entonces, antes de hacer esto, abriré el primero. Y ahora para esto aquí arriba, para el multiplicador de volumen, se
puede reducir el sonido. Este es el fondo Hoover. Entonces déjame escribir 0.5
y jugar la cola. Y tal vez 0.4 es mejor. Vamos a cerrarlo. Vamos a abrir la siguiente
pulsación de un botón, digamos 0.4. Creo que esto está bien. Ahora para el
inventario de los, Probemos 0.4. Eso está bien. Nuevamente,
yendo por el drop item, tal vez 0.5 para este, esto es muy silencioso y los
luditas le 0.50, 0.4. Creo que es mejor. Bien. Y el último,
el inventario abierto. Probemos 0.4 como muy fuerte. 0.3. Creo que el 0.25, tal vez, algo así. Vamos a guardar todo ahora que
hemos reducido el sonido. Ahora como pequeño truco si
quieres diferentes sonidos. Entonces ahora mismo se puede ver
así es como suena. Pero si
quieres que suene un
poco diferente cada
vez que abres, solo
puedes arrastrar desde aquí y
escribir modulador aquí abajo, este modulador
y conectado aquí. Entonces ahora tienes un
modulador en el medio. Y se puede decir el mínimo, que es 0.9, y el tono
máximo es 1.1. Y si lo tocas cada
vez que puedes escuchar, es un
efecto de sonido diferente. Cada vez. Cambia ligeramente en
el tono hacia arriba y hacia abajo. Entonces depende de usted, por ejemplo, los sonidos del laúd, el elemento de caída. Puedes hacerlos ligeramente
diferentes cada vez que cargues. Entonces eso está bien por ahora. Así que vamos a agregar el botón hover
y botón para empezar. Entonces vamos a la interfaz de usuario. Y primer año para la
categoría. Vamos a darle un click sobre él. Y aquí, vamos a hacer clic
en la categoría del botón. Puedes bajar
aquí y tienes sonido
deprimido y
el sonido rondado. Ellos darán click por aquí,
seleccionando el botón hover y
presionar el botón para éste, vamos a compilar y
guardar lo que podamos hacer. También podemos agregarlo a
los botones de inventario. Por lo que haciendo clic en la interfaz de usuario principal, si
hacemos clic en este botón, podemos agregar lo mismo aquí. Botón presione el botón, pase el cursor. Vamos a compilar y guardar
todo. Puedes probarlo. Puedes intentar hacer clic en Reproducir y ver qué pasa
aquí para el cliente. Si hago clic ocupado,
ahora está funcionando. Entonces es un poco
más interesante que ningún sonido en absoluto. Bueno, vamos a cerrarlo y lo siguiente que tenemos que agregar es el inventario cerrado y abrir inventario que
vamos a los planos. Y probemos primero. Tenemos aquí y el jugador, estamos abriendo y
cerrando el inventario. Entonces podemos ponerlo aquí, o podemos jugarlo dentro
del controlador del reproductor. Si vamos al controlador del
reproductor y eres libre de hacer lo que
quieras aquí,
entonces depende de ti. También podemos relacionarnos aquí
cuando abres el widget, el
inventario de apertura, o cuando
cerramos el widget,
cerramos el inventario. Entonces puede
hacerlo aquí o allá. Déjame jugarlo aquí en
el reproductor arrastre de aquí, diga sonido tardío a D, y también copiar y
pegarlo aquí abajo. Entonces aquí estamos cerrando
el inventario. Entonces haciendo clic aquí y
seleccionando el inventario de mínimos. Y aquí abajo estamos
abriendo el inventario. Entonces voy a seleccionar
Abrir inventario y vamos a incluirlos aquí
en el comentario también. Bien, vamos a compilar y hagamos clic en Reproducir y veamos qué pasa. Entonces si hago clic en él para
abrir el inventario, y hago clic en Aceptar para
cerrarlo de nuevo. Bien, ahora eso también funciona. Lo último que aquí
en el audio nos falta es el
elemento drop y el elemento laúd. Para el artículo de cargas estamos
presionando E para saquear el ISM y va a pasar por el servidor y agregarlo al inventario. Sin embargo, aún no hemos
cargado aquí. Así que pasemos al
inventario y vamos jugarlo aquí
en el bucle, completo. Cuando destruimos el artículo, lo
hemos cargado aquí. Arrastremos de aquí y
digamos tocar sonido a D. Y lo que queremos
tocar es como el aludido. Entonces es artículo lascivo. Y vamos a copiar y
pegarlo aquí arriba. También estamos cargando aquí arriba. Bien, entonces el sonido
final que nos
falta aquí es el drop item. Entonces, para el drop item,
si recuerdas, vayamos a la UI y
vayamos a WB main. Dentro de aquí tenemos esta función Andhra
o dejando caer el artículo. Y tenemos este artículo de
una sola gota
del inventario y
termina, si recuerdas, en el controlador del jugador, responderá igual
cuando lo dejemos caer. Sin embargo, si lo juegas aquí, recuerda que este evento se está
ejecutando a través del servidor. Por lo que nunca corre
a través del cliente. Entonces, si agregas
sonido lay a d aquí, no
va a funcionar. El cliente no lo escuchará. Así que vamos a hacerlo en realidad
dentro de WB main aquí. Cuando estemos listos
para dejar caer el artículo,
sigamos adelante y dejemos
caer el artículo. Incluso puedes simplemente colocarlo
aquí al actualizar la interfaz de usuario. Juguémoslo aquí antes
de hacer esto final. Y recuerda seleccionar
la señal de sonido de elemento de caída. Y vamos a compilar
y hacer clic en play. Entonces ahora cuando andaba por ahí,
aludía a un artículo. Abrir el inventario aludido. Bien, suena bien. Y cuando deje caer el artículo, se
puede escuchar eso también. Así es como agregas efectos de
sonido. Esto puede por supuesto,
solo ser escuchado por usted mismo porque esto es
un inventario después de todo. Y no queremos que
todos estos sonidos
sean escuchados por la
otra capa también. Entonces ahora todo suena bien. Y sigamos adelante.
50. 8.06 Prueba el producto final: Bien, así que ahora
estamos listos para probar el producto final y
ver si tenemos alguna caja. Entonces si hacemos clic en
jugar aquí y ahora es el servidor
y le preguntamos al servidor, voy a aludir a un
arma y la estoy cargando. Estoy cargando el siguiente. Esta es la navaja. Todo está funcionando.
Puedo moverlos y si vuelvo a aludir, se cargará aquí arriba. Entonces, ¿eso está funcionando correctamente? Así como así,
voy a perder una poción y voy
a presionar aquí. Y se trata de tres pociones
en el suelo cargando estas 13 pociones de resistencia cargan
más pociones de resistencia. Este fue uno en el suelo. Mirando aquí, va a
poner más pociones. Creo que el tamaño máximo de
pila es diez para la poción es en realidad
seis para los cocientes. Y ahora puedes ver que se
agregan encima de una nueva pila. Y puedo mantener esto como cinco, creo, para las
manipulaciones. Entonces va a
hacer una nueva pila. Entonces todo está
funcionando perfecto. Voy a cargar los plátanos. Estos funcionan como sabes, los
hemos probado muchas
veces así así. Perfecto. Entonces estos están funcionando. Voy a perder la carne. Y se puede ver la carne. Esta es, creo que seis piezas. Y en realidad no esta. Esta es de seis piezas,
por lo que va a sumar 5.1. Y eso funciona. 5.1. Eso es correcto. Y ahora puedes ver que
esto funciona perfectamente. Y si solo sigo
contaminando armas,
bien, así que todo está
funcionando como se supone que debe hacerlo. Puedo moverlos por ahí. Si muevo piezas que
no son apilables, no
se apilarán. Entonces este cinco foráneo, puedo cambiarlos
entre sí y puedo
dejarlos caer si quiero. Ahora, como cliente, tenemos que saber que
podemos hacer lo mismo. Entonces haciendo clic en Play,
este es el servidor. Entonces volviendo al cliente, voy a
minimizar esto un poco. Acudiendo al cliente, presionando en ojo para
ver el inventario. Puedo mirar esto,
esto funciona muy bien. Las carnes están aquí en la comida. Eso es genial. Voy a aludir a todas estas cosas y está
funcionando perfectamente también. Ahora para el cliente, si me caigo, el servidor debería
poder verlos. Y puedo ver esto, ese declive acaba de caer. Entonces esta es, si aludiera, son cinco pociones. Entonces, si lo dejo caer
aquí, los artículos pueden, el cliente puede verlo, y el cliente puede cargar
estos cinco océanos también. Se apilará aquí antes de
que se apile por aquí. Bien, entonces lo último, vamos a probarlo
entre dos clientes porque no queremos
la lógica del servidor, así que también debería ser correcta. Si dos clientes
están juntos, digamos en un servidor dedicado. Así que sigamos adelante como
este primer cliente. Vamos a saquear y dejemos
caer estos cinco plátanos. Yo también los puedo ver. Y el nuevo cliente aquí los
va a perder. Y estos son en realidad
cinco plátanos, Digamos que
los dejé caer aquí en su lugar. Y los puedo ver en
los otros clientes. Entonces todo está funcionando bien tanto
para el cliente
como para el servidor. Esto fue para el inventario. Espero que hayas
disfrutado del curso. Fue muy divertido de hacer. Si te
interesan mis otros cursos, por favor visita pixel helmet.com. Voy a seguir lanzando
cursos todos los meses. Así que adelante y echa un
vistazo si quieres alguna ayuda. También
te puedo ayudar en mi página web o si quieres unirte a
nuestro servidor de discordia, eso
te agradecerá por estar aquí y te veré
en la siguiente.