Cómo agregar multijugador en Steam – Unreal Engine Blueprint | Pixel Helmet | Skillshare

Velocidad de reproducción


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Cómo agregar multijugador en Steam – Unreal Engine Blueprint

teacher avatar Pixel Helmet, Game Developer & Publisher

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      Introducción

      0:55

    • 2.

      1.01 VS, . Núcleo NET, . NET Framework y DirectX

      2:32

    • 3.

      1.02 Convertir el proyecto a C++

      2:47

    • 4.

      1.03 Añade el complemento para sesiones avanzadas de Steam

      1:22

    • 5.

      1.04 Construcción en Visual Studio

      2:40

    • 6.

      1.05 Habilitación del complemento para sesiones avanzadas de Steam

      0:48

    • 7.

      1.06 Edición del archivo DefaultEngine.ini

      3:01

    • 8.

      1.07 Crea el mapa del menú principal

      1:03

    • 9.

      1.08 Modo de juego del menú principal y controlador de jugadores

      2:13

    • 10.

      2.01 Introducción a los planos de widgets

      4:51

    • 11.

      2.02 Importación de una fuente personalizada

      2:52

    • 12.

      2.03 Diseño del menú principal

      18:57

    • 13.

      2.04 Animación de la interfaz de usuario con nombre del jugador

      4:15

    • 14.

      2.05 Crea la enumeración

      2:37

    • 15.

      2.06 Función de mostrar y ocultar los widgets

      10:36

    • 16.

      2.07 Comunicación con planos - Casting

      3:59

    • 17.

      2.08 Comunicación con planos - Interfaces

      7:32

    • 18.

      2.09 Programación del menú principal

      3:12

    • 19.

      2.10 Programación del nombre en Steam

      3:10

    • 20.

      2.11 Diseño del fondo del menú principal

      7:25

    • 21.

      2.12 Adición de Button SFX

      3:14

    • 22.

      3.01 Creación del widget para crear el servidor

      3:11

    • 23.

      3.02 Diseño del widget para crear un servidor

      26:09

    • 24.

      3.03 Cómo obtener el nombre del servidor y el mapa seleccionado

      11:13

    • 25.

      3.04 Cómo jugar a las tragamonedas, el idioma y la privacidad

      7:23

    • 26.

      3.05 Programación del Button trasero

      3:10

    • 27.

      3.06 Crea una sesión avanzada

      8:43

    • 28.

      3.07 Programación del servidor Button

      2:37

    • 29.

      3.08 Adición de animación de la interfaz de usuario de Create Server

      4:37

    • 30.

      4.01 Creación del widget del navegador para servidores

      2:25

    • 31.

      4.02 Diseño del widget del navegador para servidores

      13:05

    • 32.

      4.03 Diseño del widget de la tarjeta de servidor

      18:24

    • 33.

      4.04 Cómo agregar el servidor a la lista

      7:47

    • 34.

      4.05 Cómo agregar un indicador de servidores refrescantes

      7:28

    • 35.

      4.06 Función de resultado de sesiones

      4:52

    • 36.

      4.07 Filtrado para el idioma del servidor

      8:08

    • 37.

      4.08 Filtrado solo en servidores LAN

      6:04

    • 38.

      4.09 Cómo ocultar los servidores vacíos

      1:25

    • 39.

      4.10 Filtrado para el nombre del servidor

      6:47

    • 40.

      4.11 Cómo obtener la configuración adicional para la tarjeta de servidor

      3:40

    • 41.

      4.12 Actualización de la información de la tarjeta de servidor

      8:40

    • 42.

      4.13 Cómo unirse a la sesión

      0:50

    • 43.

      4.14 Navegador de servidores Back Button

      4:15

    • 44.

      4.15 Prueba del resultado final

      6:42

    • 45.

      4.16 Empaquetado del proyecto

      7:43

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

45

Estudiantes

1

Proyectos

Acerca de esta clase

¡Aprende cómo agregar el multijugador en Steam a cualquier juego!

¿Quieres agregar el modo multijugador en Steam a tus proyectos de juego, pero no sabes cómo empezar? Nuestro curso te guía a través del proceso paso a paso, comenzando con la instalación del plugin de Sesiones avanzadas de Steam y terminando con el proyecto de juego para que tus amigos y familiares lo prueben. Nuestro curso en profundidad garantiza que tendrás todo el conocimiento que necesitas para agregar con éxito el multijugador de Steam a cualquiera de tus proyectos de juego.

Para principiantes completos y aspirantes a desarrolladores de juegos

Tanto si eres un principiante como si eres un desarrollador de juegos experimentado, este curso completo te guiará paso a paso sobre cómo agregar Steam Multiplayer a tu proyecto. No necesitas ningún conocimiento previo para empezar. Este curso no solo demuestra cómo integrar Steam en tu juego, sino que también te enseña cómo utilizar Unreal Engine 5 en general, incluido el lenguaje de programación visual Blueprint.

Practica con Unreal Engine 5 y Steam: ¡aprende haciendo!

Aprende cómo implementar Steam en Unreal Engine 5 con estos tutoriales en video fáciles de seguir. Comenzarás con los conceptos básicos del complemento de sesiones avanzadas de Steam y avanzarás hacia temas más avanzados, como la creación del navegador de servidores, el menú de host y los filtros de servidor. Este es el curso más completo disponible sobre cómo usar Steam con Unreal Engine 5, y proporciona instrucciones detalladas y una experiencia fácil de usar.

En este curso, aprenderás lo siguiente:

  • Instala el plugin de sesiones avanzadas de Steam
  • Crea el menú principal para juegos en línea
  • Crea el menú "Crear servidor" para alojar servidores en línea
  • Crea el navegador de servidores y muestra los servidores en línea
  • Añade una opción de filtro de servidor para filtrar el idioma, el nombre del servidor, la LAN y más.
  • Cómo crear, buscar y unirse a servidores de juegos en línea.
  • Cómo empaquetar el proyecto para que amigos y familiares jueguen juntos.

¿Qué me hace estar calificado para enseñarte?

Mi nombre es Moustafa Nafei, y soy el director y desarrollador de Farmtale en Steam, hecho solo con Blueprints. Con años de experiencia en el desarrollo de juegos y la enseñanza con 30.000 estudiantes en todas las plataformas, te mostraré las mejores prácticas para lograr un rendimiento optimizado y listo para el juego.

Únete a una comunidad de apoyo con desarrolladores de ideas afines.

Colabora, comparte ideas y obtén inspiración de otros estudiantes a medida que emprenden este viaje juntos.

¡Nos vemos en la lección 1!

Conoce a tu profesor(a)

Teacher Profile Image

Pixel Helmet

Game Developer & Publisher

Profesor(a)

Pixel Helmet is a video game developer and publisher based in Denmark. We have recently released our first game Farmtale on the Steam platform.

We decided to get on Skillshare to create high-quality courses and share our knowledge with the game development community. Learning can be tedious at times and we aim to create a fun learning experience.

We offer to create courses within Modeling, Texturing, Unreal Engine, Blueprints, C++, Game Design, and much more. If you need any help during a course, please let us know through Skillshare or connect with us on Discord, Twitter, or LinkedIn.

Ver perfil completo

Level: All Levels

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. Introducción: En este curso, aprenderás a agregar multijugador de Steam a cualquier proyecto de juego usando planos en Unreal Engine El curso cubre todo lo que necesitas saber de principio a fin, incluyendo cómo instalar las sesiones de Steam Advanced. Conecte cómo crear el menú principal para los juegos en línea. Cómo crear el menú Crear Sera para alojar servidores en línea. Cómo crear el navegador del servidor y mostrar servidores en línea. Cómo agregar una opción de Servo Filtro para filtrar por idioma Servo Nombre tierra y más. Cómo crear, buscar y unirse a servidores de juegos en línea. Y por último, cómo empaquetar el proyecto para que amigos y familiares jueguen juntos. Al final de este curso, obtendrás las habilidades y la confianza para integrar Steam sin problemas en cualquiera de tus proyectos de Unreal Engine Five Y recuerda que estaré aquí para brindarte apoyo lo largo de tu viaje de aprendizaje y espero verte pronto. 2. 1.01 VS, . NET Core, . NET Framework y DirectX: Antes de que empecemos, tienes que descargar un par de cosas para que funcione. Lo primero que debes descargar es algo llamado Dotnet Core Si escribes eso en Google y lo buscas, puedes ver desde Microsoft el primer sitio web diciendo descargar Net. Dentro de aquí tienes un botón para éste, DoesDK, tienes que descargar el último que veas en tu pantalla Podrías ver esto en el futuro, no importa, solo tienes que descargar el último. Ahora, cuando hayas hecho Core, también tienes que descargar el.net Framework. Si haces clic en él y solo vuelves a descargar el último que ves en tu pantalla. Adelante y descarga el Net Framework. Entonces tienes que descargar directamente X. Así que sigue adelante y descarga directa X, selecciona el idioma, y pulsa Descargar. Lo último que tienes que descargar es Visual Studio 2022. Adelante y da click en él. Para Visual Studio sólo tienes que seleccionar la Comunidad 2022. Y adelante y descarga eso también. Ahora para Visual Studio 2022, hay que instalar algunas cosas específicas. Es muy importante que prestes atención aquí haciendo clic en Modificar para mi instalador, veas lo que tengo instalado y puedas instalar las mismas cosas dentro de aquí. Lo que quiero que instales es el que se llama.NET Desktop Development Descarga, la que se llama Desarrollo de Escritorio con Plus Plus. universal de plataformas Windows, desarrollo móvil con Plus Plus. También el desarrollo de juegos con Plus Plus. Lo último, no creo que lo necesites, pero yo lo tengo. Desarrollo Linux y embebido con C Plus Plus. Además, asegúrese en el componente individual. Y es mejor si hago clic en este Sap para que lo veas y voy al fondo. Tenemos el SDK de Windows. Tengo el SDK de Windows Ten. Muy importante para descargar eso también. Incluso puedes descargar la misma versión yo si la puedes ver en mi pantalla. También puedes descargar el SDK de Windows 11. Dos SDK es muy importante tener. Entonces solo tienes que seguir adelante e instalar un estudio visual 2022. Cerremos esto y volvamos a mí una vez que lo hayas terminado. 3. 1.02 Convertir el proyecto a C++: Sigamos adelante y lancemos el motor En este curso, estoy usando el último motor, 5.3 Ahora, si estás viendo este curso y tienes una nueva versión, no importa. Sigue siendo el mismo proceso. Para que puedas seguir adelante y verlo también. Sólo voy a lanzar Unreal Engine 5.3 En esta ventana, puedes o bien crear un nuevo proyecto haciendo clic en juegos y puedes seleccionar una plantilla desde la que trabajar Ahora ya tengo un proyecto. Voy a mis proyectos recientes, y aquí los puedo ver. Realmente no puedo ver mi proyecto reciente en el que quiero trabajar. Voy a dar click en Navegar. El que voy a trabajar se llama Counterstrike. Voy a seleccionar este proyecto aquí y presionar Abrir. Ya que mi proyecto está hecho con Unreal Engine 5.2 y no 5.3 solo voy a dar click en abrir una copia del mismo para que no elimine mi copia anterior acaso algo sale mal Ahora para este curso, de nuevo, estoy usando el Proyecto Counterstrike y es un curso que he lanzado. Si deseas tomar este curso, puedes por supuesto, ir a la página web Game Instruct.com Dentro de aquí puedes tomar el curso También tengo muchos otros cursos. Tengo un mercado de activos donde puedes comprar activos listos para el juego. Tengo tutoría privada y así sucesivamente. Puedes seguir adelante y visitar esto. Déjame cerrar esto. Ahora, abrió mi proyecto aquí, voy a establecer la escalabilidad a Epic También se puede hacer eso en la configuración de aquí arriba. Escalabilidad, suelo hacerlo en Epic. Ahora estamos listos para trabajar con esto. En esta lección, vamos a convertir el proyecto a C plus plus. A pesar de que estamos trabajando con blueprint, no vamos a trabajar con C plus plus, pero tenemos que convertirlo a un proyecto C plus antes de que el plugin de Steam pueda funcionar Sigamos adelante y hagámoslo muy fácil. Vamos a hacer clic en. Antes de hacer eso en realidad déjame ir a Herramientas e ir a Bug. Y nosotros solo reflectores, voy a UI porque estoy grabando desde un monitor de cuatro K y podría parecer pequeño en la grabación. Ahora vamos a hacer clic en Herramientas. Siga adelante y haga clic en el nuevo archivo C plus plus, luego haga clic en Siguiente. Simplemente haga clic en Crear clase. No es realmente muy importante darle un nombre, ahora está convirtiendo el proyecto en un proyecto C plus plus. Cuando esto está terminado, técnicamente se trata de un proyecto. Ahora solo sigue adelante y pega bien aquí. Y te pregunta si quieres editar el código. Ahora adelante y haz clic en No. Ahora ya estamos listos. Sigamos adelante y cerremos este proyecto, y pasemos a la siguiente lección. 4. 1.03 Añade un complemento de sesiones avanzadas en Steam: Ahora sigamos adelante y agreguemos el enchufe de las sesiones de vapor. Para ello, quiero que vayas a Google y busques Si Steam. Cuando buscas esto, ves el primero en Github llamado Sense Steam, y este tipo tiene el enchufe aquí. Adelante y haz click en el código aquí arriba y descárgalo. Ahora, ya descargué este archivo, y lo puedo ver aquí, el steam master. Voy a abrir mi expediente. Abre aquí, haz clic en los inicios de sesión. Abre las sesiones avanzadas de Steam. Enchufe. Estos son los dos archivos que avanzaste sesiones y las sesiones avanzadas de Steam. Así que permítanme seguir adelante y minimizar el navegador. Puedes seguir adelante y encontrar tu archivo de proyecto con el que estás trabajando. Este es, de nuevo, el proyecto de contraataque en el que estoy trabajando aquí Lo que quiero que hagas es quiero que hagas click derecho, adelante y crees una nueva carpeta y la llames plug ins. Abre la carpeta de plugins. Quiero que arrastren las sesiones avanzadas hasta aquí, y también las sesiones Advanced Steam. Tienes estas dos carpetas dentro de la carpeta plugins. Esto es todo lo que necesitábamos hacer, ahora tenemos el plug in dentro de nuestro proyecto. 5. 1.04 Creación de sitios en Visual Studio: Antes de que podamos continuar y abrir el proyecto, tenemos que construir en visual studio. Además, antes de hacer esto, eliminemos algunas de las carpetas para que no nos dé ningún error. Si tiene la carpeta VS, continúe y selecciónela y seleccione la carpeta de caché de datos derivada. Ahora bien, si hay algunas carpetas que no tienes, está bien, las vamos a eliminar de todas formas. Adelante y selecciona también la carpeta intermedia. Carpeta guardada VS config y también theIslnFile. No borres el archivo del proyecto, es tu proyecto, pero este Eliminar. Este es L y archivo y elimina en tu teclado y va a eliminar todos esos. Estas son las carpetas con las que nos quedamos. Si tienes una carpeta llamada binarios, también puedes eliminar esa carpeta Si no lo tienes, está bien. Ahora lo que tenemos que hacer es que tenemos que escribir, dar clic en el archivo del proyecto, seguir adelante y dar clic en Mostrar más. Tenemos que dar click en el Generar archivos de proyecto de Visual Studio. Cuando hagas esto, se va a generar aquí. Ahora es por eso que era tan importante descargar el framework Visual Studio.Core.net Esto se debe a que tenemos que generar este archivo SLN. Si obtienes algunas épocas mientras haces esto, por favor lee cuando está generando. Te va a dar una época. Si tiene y te va a describir por qué hay una época. Intenta leerlo, mira si puedes buscarlo en Google y arreglarlo. Si no puedes, claro que puedes, también escribirme, yo te ayudaré. Tenemos una gran comunidad aquí en Discord, así que por supuesto, puedes usar este enlace de Discord para unirte a Somos mucha gente sentada aquí ayudándonos unos a otros. Estamos cerca de mil o 2000 en este momento. Sigamos adelante y abramos el archivo SLN. Entonces, si hago doble clic en este archivo, se abrirá un estudio visual. Y cuando abra un estudio visual, continúe y haga clic en la carpeta Juegos y haga clic con el botón derecho en su juego, y podrá hacer clic en Construir. Ahora vamos a construir un proyecto. Puede tomar algún tiempo, a veces toma 5 minutos, a veces lleva diez, a veces 1 minuto. Sólo tenemos que esperar a que se construya. Se puede ver aquí dice tres de 17. Sólo voy a hacer una pausa en este video hasta que este haya terminado de construir. Ahora ya ha terminado de edificar. Es importante ver que ha tenido éxito y tienes cero errores aquí abajo. Esto es exitoso. Vamos a cerrarlo, y pasemos a la siguiente lección. 6. 1.05 Habilitación de plugins de sesiones avanzadas de Steam: Ahora estamos listos para abrir el proyecto una vez más. Vamos a abrir tu archivo de proyecto. Dentro del proyecto, necesitamos asegurarnos de que el plugin de Steam esté instalado correctamente, haciendo clic en Ventana o Editar, más bien, y haciendo clic en Plugins dentro de aquí. Vamos a hacer clic en este Plug de Sesiones Avanzadas que ves aquí. Vemos que tanto las sesiones avanzadas como las sesiones avanzadas de Steam están habilitadas. También quiero que baje y haga clic en plataforma en línea. Y si te desplazas hacia abajo, solo asegúrate de que el subsistema en línea también esté habilitado. Ahora podemos ver que todo esto está habilitado. Ahora puedo cerrar mi proyecto una vez más, y pasemos a la siguiente lección. 7. 1.06 Edición del archivo DefaultEngine.ini: Como lo último, antes de que todo funcione, tenemos que agregar algún código dentro del archivo motor predeterminado. Si solo vas a Google y buscas algo como subsistema en línea de Steam, o subsistema en línea, Unreal Engine, lo ves Unreal Engine llamado Subsistema en línea Si lo abres dentro de aquí, tienen algún código que necesitamos agregar. Desplázate hacia abajo, tienes algo aquí en la configuración terminada Motor predeterminado, sigo adelante y copio todo esto. Realmente no necesitas entender este código. Simplemente haga clic derecho en Copy It. Y luego quiero que vuelvas a tu carpeta de proyectos aquí. Quiero que abra el archivo de configuración y luego abra Default Engine. Y adelante y abre esto. Ahora dentro de aquí, desplácese hacia abajo y en la parte inferior, continúe y haga clic en el control V para paginarlo en. Lo único importante dentro de aquí en este momento es este ID de desarrollador de aplicaciones Steam. Ahora bien, este 480 es un ID de prueba que puedes usar para que básicamente puedas implementar Steam sin subir tu juego a Steam Steam nos ha hecho una ID de aplicación de prueba que podemos usar mientras desarrollamos. Sin embargo, si ya has subido tu Steam o tu juego a Steam, tienes que cambiar este ID de 480 app a tu propio ID de app de juego. Así que aquí estoy logueado en Partner dot Steam games.com De nuevo, tengo un curso sobre esta página. Si vas a Game instruct.com si quieres aprender a subir tu juego a Steam, yo tengo eso, pero solo quiero mostrarte que aquí puedes ver tu ID de app Simplemente sigue adelante y toma este número si lo has subido a Steam y agrégalo aquí, y funcionará en tu propio juego. Pero por ahora, en realidad no tenemos que subirlo a Steam si aún no estás listo. Entonces esta idea de 480 va a funcionar bien. Solo recuerda seguir adelante y hacer clic en Guardar. Por lo que se salva. Vamos a cerrarlo. Y ahora vamos a abrir el proyecto. Así que voy a doble mirada aquí. Cuando estamos dentro del proyecto, tenemos que asegurarnos de que Steam esté funcionando. Tienes que ejecutarlo como un juego independiente. Si no haces esto, no va a funcionar. Además, también hay que correr vapor. Asegúrate de que Steam se esté ejecutando en tu computadora. Sólo estoy revisando el mío, no lo es. Entonces voy a abrir Steam y también iniciar sesión en tu cuenta, asegurarme de que Steam esté listo y funcionando. Antes de que hagas esto, estoy encerrado en el vapor. Voy a dar click aquí y dar clic en Juego Autónomo, y va a abrir el juego cuando abra el juego. Se puede ver aquí abajo abajo a la derecha, ese vapor está funcionando. Y de esta manera sabemos que Steam ha sido implementado y el plugin está funcionando. Ahora estamos listos para pasar a la siguiente lección. 8. 1.07 Crea el mapa del menú principal: Para comenzar, sigamos adelante y creamos el mapa del menú principal. Ya tengo una carpeta llamada maps. Puedes seguir adelante y crearlo. Siempre puedes hacer clic derecho aquí, crear una nueva carpeta y llamarla mapas dentro de aquí. Vamos a hacer clic derecho a hacer un nuevo nivel. Sólo le voy a dar un prefijo de mapa y llamarlo Menú Principal. Adelante y haz doble clic en esto. Adelante y guarda los seleccionados. Ahora estamos dentro del mapa del menú principal. Nada está aquí en este momento, pero lo que queremos hacer es presionar Editar, y dar clic en Configuración del proyecto, y dentro de aquí dar clic en Mapas y modos. Queremos cambiar el mapa de inicio de Editores para que sea el menú principal y también los valores predeterminados del juego Cámbielo al menú principal. Ahora cada vez que el jugador inicia el juego, aparecen en el menú principal Y esto es también lo que queremos. Sigamos adelante y cerremos esto. Guarde todo y pasemos a la siguiente lección. 9. 1.08 Modo de juego del menú principal y controlador de jugador: Antes de que podamos comenzar, tenemos que crear un controlador de jugador y un modo de juego. Hagamos eso. Ya tengo una carpeta llamada blueprints. Ahora realmente no hay que prestar atención a todo esto. Esto es de mi juego. Si eres nuevo aquí, solo presta atención a las nuevas cosas que creamos. Además, si tienes un proyecto en blanco, no muy importante para todo esto, hagamos clic derecho y hagamos una nueva carpeta. Voy a llamarlo Menú principal. Vamos a trabajar dentro de aquí. Vamos a hacer clic derecho, ir a la clase Blueprint. Dentro de aquí, queremos crear un controlador de reproductor dentro de aquí. Aquí es donde Crear o el menú, cosas de la interfaz de usuario y así sucesivamente. Entonces sigamos adelante y creamos esto. Y lo voy a llamar EC para controlador de jugador como prefijo. Y luego lo voy a llamar Menú Principal. Volvamos a hacer clic derecho. Crear una clase de plano. Aquí podemos crear el modo de juego. Y llamémoslo modo de juego GM como prefijo y llamémoslo Menú Principal. Ahora los tenemos, abre el modo de juego. Dentro de aquí tenemos que asignar el controlador del jugador. Si vas a los valores predeterminados de clase aquí para la clase de controlador de jugador, vamos a hacer clic aquí y cambiarlo al controlador de jugador que creamos Adelante y pulsa Compilar, y cerremos esto . Sobre y Editar Ajustes del Proyecto. Volver a Mapas y Modos. Dentro de aquí, también tenemos que cambiar el modo de juego predeterminado aquí a nuestro menú principal. Ahora abrimos el menú principal, modo juego. Siempre que abrimos el juego, si haces clic en la flecha pequeña aquí abajo, solo asegúrate de que la clase de controlador de lugar sea el menú principal de nuestro PC que creamos. Vamos a cerrarlo. Y lo último que tenemos que hacer también checar en la configuración del mundo. No tienes el mundo poniendo puñalada abierta. Siempre puedes hacer clic en Ventana arriba aquí y abrir la configuración del mundo. Pero dentro de aquí en el modo de juego anular. Asegúrate de tener tu Menú Principal GM seleccionado también. Así que adelante y haz clic en Archivo y Guardar Todo. Y ahora se implementa el modo de juego y el controlador del jugador. 10. 2.01 Introducción a los planos de widgets: Ya estamos listos para diseñar el menú principal. Pero antes de hacer esto, echemos un vistazo a los planos de widgets Ahora bien, si ya sabes qué es un blueprint de widget y cómo navegar dentro de ahí, puedes saltar a la siguiente lección Pero si eres nuevo aquí, sigamos adelante aquí en la carpeta UI. Si no tienes uno en tu proyecto, simplemente haz clic derecho aquí en la carpeta de contenido, Haz una nueva carpeta llamada UI. Siempre es agradable mantenerse organizado. Vamos a entrar en esta carpeta. Nuevamente, no te preocupes por toda esta interfaz de usuario. Esto es de mi proyecto Counterstrike que ya hicimos en mi otro curso Pero vamos a hacer clic derecho aquí, hacer una nueva carpeta. Vamos a llamarlo Menú principal. Sólo vamos a trabajar dentro de aquí. Hagamos clic derecho ahora y hagamos una nueva interfaz de usuario y creemos un plano amplio Hazlo aquí. En realidad lo puedes llamar WB, Menú principal. Voy a crearlo más tarde. Por ahora, sólo voy a mostrarles lo que es un blueprint de widget Vamos a abrirla. Dentro de aquí ves una gráfica aquí y puedes mantener pulsada con el botón derecho del ratón para navegar por aquí. A la izquierda tienes una paleta, y aquí tienes los botones, tienes el texto, y así sucesivamente. Entonces tienes un par de elementos que puedes usar para diseñar la interfaz de usuario. Aquí abajo en la jerarquía, puedes ver lo que has agregado a tu UI. Por ejemplo, puedes dar click sobre esta imagen, dar click y arrastrarla aquí. Aquí puedes ver la imagen que es blanca porque no tenemos nada en ella. Pero también se puede ver que se agregó a la jerarquía aquí abajo. Por lo general, cuando creamos UI, siempre comenzamos con un lienzo. Si buscas un lienzo, haz clic y arrástralo aquí. Y ahora tienes este lienzo aquí en el lienzo. Ahora puede hacer clic y arrastrar la imagen. Puede hacer clic y arrastrar el texto aquí. O puedes hacer clic y arrastrarlo aquí abajo en el lienzo también. Eso también lo agregará y siempre podrás hacer click sobre él y moverlo. Puedes hacer clic en él y redimensionarlo como desees. Puedes intentar practicar dentro de aquí. Siempre es agradable , por ejemplo, si no has visto antes la parte del progreso, también puedes arrastrarla. Puedes redimensionarlo si quieres, puedes hacer click en él aquí en el panel de detalles Aquí es donde ves detalles sobre los elementos en los que estás dando clic. Entonces por ejemplo, si hago clic en la barra de progreso, puedo ver elementos como la posición en la X e Y. Y puedes hacer clic y arrastrar el mouse para ajustarla. O puedes escribir un número, por ejemplo, 1,000 Puedes ajustar el tamaño en la X e Y. También puedes jugar con el porcentaje, porque recuerda que esta es una barra de progreso. Puedes dar click y rike aquí o establecer un número, por ejemplo, 0.2 Tú también aquí en el estilo puedes estilizarlo este momento no tenemos mucho, no puedes agregarle nada, pero puedes agregar tu propia imagen de fondo, tu propia imagen de relleno, y así sucesivamente. Lo mismo con el texto, si haces clic en el texto, puedes editar el tipo de fuente. Puedes editar el tamaño del texto, y puedes editar incluso el color. Puedes darle un esquema aquí abajo, o puedes escribir seis, por ejemplo. Y ahora le da un bosquejo. Puedes intentar diseñar o simplemente jugar con todo esto. Se puede ver que tiene un par de elementos. Por ejemplo, cuadro de texto editable. Este es un cuadro de texto y se le puede dar, por ejemplo, valor por defecto por ejemplo. Y se puede ver ahora algo está escrito dentro de este cuadro de texto. Ya ves, puedes intentar jugar con todo esto. Así es como trabajas dentro de un widget, blueprint. Y puedes acercar el zoom. Y aquí afuera, aquí arriba a la izquierda, se puede ver cuánto se alejó, cuánto hizo zoom también Uno a uno es lo que parece ahora mismo. Aquí en la gráfica, tenemos dos secciones. Tenemos el diseñador donde diseñas la interfaz de usuario. También tienes la gráfica donde programas la interfaz de usuario. Por ejemplo, programas. ¿Qué hace esta parte de progreso? Por ejemplo, en este juego de contraataque que creamos, se utiliza la barra de progreso para establecer la salud del jugador. La salud cae cuando te dañas. Esto se hace en la gráfica donde se codifica la barra de progreso. Aquí es principalmente donde diseñas. Bien, trata de jugar por aquí. Y esto es para animaciones aquí abajo. Vamos a meternos en ello más tarde. Por ahora, sólo voy a hacer click derecho y ocultar esta pestaña o simplemente cerrarla. En realidad cerrar pestaña. No está en nuestro camino por ahora. Sí, solo juega por aquí. Sólo voy a cerrarlo por ahora. Y voy a borrarlo. Y pasemos a la siguiente lección. 11. 2.02 Importación de una fuente personalizada: Antes de continuar, quiero que descargues un fondo personalizado porque no tenemos fondos dentro de aquí y me gusta usar los personalizados. El que estoy usando, ya tengo uno de crear el, algo así como, curso de huelga. Ya descargué el fondo rubic, pero ahora voy a mostrarte cómo puedes hacerlo Si buscas fondos de Google, normalmente me gusta usar eso, también puedes buscar aquí. También puedes encontrar fondos realmente geniales. Hay muchos de ellos, así que puedes intentar mirar por aquí y solo voy a usar un Fondo de Google. Creo que tienen fondos realmente geniales que puedes usar dentro de aquí. Lo que estoy usando es Rubic. Si quieres usar el mismo, puedes buscar Rubic Puedes usar este Rubic uno aquí y puedes volver a hacer clic en él. Puedes encontrar cualquier fondo que quieras. Sólo tienes que seguir adelante y tratar de encontrar cualquier fondo aquí en los fondos. Puedes mirar a tu alrededor y echarle un vistazo a todos ellos. Pero para el Rubic, puedes dar click en uno de los fondos Incluso puedes probarlo. Por ejemplo, si tienes razón, menú principal aquí abajo, puedes reducir el tamaño. Basta con echar un vistazo a cómo se verá y visualízalo. Si te gusta, adelante y da clic en Descargar Familia aquí arriba y también abre esta estática. Ahora tengo todos estos archivos, esta fuente estática. Puedes seguir adelante y usar lo que quieras aquí. Normalmente no me gustan las fuentes ligeras porque se ven demasiado diminutas dentro de Unreal Engine y casi no las puedes ver en el juego Normalmente me gusta pasar de tal vez medio, ni siquiera regular, de medio. Y luego me llevo el semibold, tal vez el extra audaz, negrita y negro, Los que usaría Tienes que extraerlos primero en tu escritorio, porque se trata de un archivo. Haga clic y arrástrelos a un escritorio o a su carpeta de descargas, lo que desee. Por ejemplo, así en la carpeta Descargas. Siempre que hagas esto, ve a la carpeta Descargas aquí. Ahora puedes usarlos, tomarlos todos y abrir el motor dentro de aquí. Déjame minimizar este motor en el motor. Si puedes hacer una carpeta llamada fondos dentro de la carpeta UI, haz clic derecho. Hacer una nueva carpeta llamada Fondos dentro de los fondos. Haga clic y arrástrelos aquí. Cada vez que los arrastras hasta aquí, te va a preguntar, ¿quieres que cree fondos para ti? Sólo tienes que seguir adelante y presionar sí. Cuando hagas eso, todos estos aparecerán para ti. Entonces, cuando tienes fondos personalizados, ahora podemos usarlos dentro de la interfaz de usuario en lugar del aburrido fondo predeterminado. Y ahora pasemos a la siguiente lección y diseñemos el menú principal. 12. 2.03 Diseño del menú principal: Bien, ahora estamos listos para diseñar el menú principal. Y antes de hacer esto, he incluido algunos materiales del curso para usted. Te he dado algunos diseños de UI. Puedes seguir adelante e ir a la carpeta UI aquí. Te he dado botones, íconos e imágenes. Si haces clic en tu carpeta dentro de aquí justo antes del menú principal, no entres dentro de la carpeta del menú principal aquí, puedes hacer una carpeta llamada botones. De nuevo, puedes hacer click derecho, hacer una nueva carpeta llamada botones y también imágenes. Por ahora no vamos a usar íconos por ahora solo botones, imágenes y hacer que esas carpetas entren en la carpeta de botones. Ahora adelante y entra en esta carpeta de botones. Ahora, ya lo he importado, esto es de mi curso. Pero lo que puedes hacer, seleccionar el primero, mantener presionado Shift, seleccionar el último. Entonces seleccionas todos ellos, y luego puedes hacer clic y arrastrarlos a aquí, y esto los importará. Ahora, muy importante, si lo tienes en un archivo Sip, tienes que extraerlos primero, nuevamente a tus descargas o escritorio por ejemplo. Y entonces puedes arrastrarlos hasta aquí. Nunca lo hagas dentro de una carpeta Sip, porque te dará este ícono aquí y no puedes hacerlo. Recuerda extraerlos primero y luego arrastrarlos hasta aquí. Haz lo mismo con las imágenes, recoge todo y arrástralas a la carpeta de imágenes. Y ya lo hice, así que tengo todo esto. Sigamos adelante y diseñemos. Vamos a la carpeta del menú principal. Hagamos clic derecho, vaya a Interfaz de usuario y cree un plano de widget aquí Vamos a llamarlo Menú Principal. Vamos al menú principal Widgets. Ahora, dentro de aquí, antes de hacer nada, siempre empezamos con un panel de lona. Cuando diseñamos un menú en Unreal Engine, seguimos adelante y arrastramos esto aquí abajo a la jerarquía, y agregarás un panel de lienzo Bien, así que antes de empezar aquí en el tamaño de la pantalla muy importante. Haga clic aquí, vaya a computadoras portátiles y concéntrela en una, a una computadora portátil genérica. Esto es importante porque ahora hemos configurado esta interfaz de usuario para que sea diseñada para un portátil. Y al hacerlo, nos aseguramos de que la interfaz de usuario no sea demasiado pequeña ni demasiado grande para la computadora portátil. Y podemos escalarlo en consecuencia en monitores grandes. Ahora estoy usando un monitor de cuatro K. Va a quedar bien una vez que lo diseñe para un portátil. Y luego lo escalo hasta mi monitor. La forma en que lo escalamos es si haces clic aquí abajo en este pequeño botón, y luego dentro de aquí puedes ver esta es la escala de la interfaz de usuario. En este momento tengo un monitor de cuatro K. Entonces, si sostengo el mouse sobre él, dice que está escalando mi UI 1.6 veces. Podrías ser más. Porque en realidad, por aquí, si haces clic en éste a la derecha, tuyo probablemente dirá ocho por defecto. Entonces se puede ver si son ocho. Si hago clic en estos dos para ajustarlos a la pantalla, son ocho. Lo va a escalar aproximadamente 3.8 veces de cómo lo diseño. No obstante, cuando jugaba con él, cuando hice mi juego, creo que 3.8 veces fue demasiado. Escaló mi interfaz de usuario y era muy grande en la pantalla de mi monitor de cuatro K, era demasiado. Me gustaría ponerla en 2.5 en la báscula. Entonces. Sigamos a partir de aquí. Ahora puedo ver que escala 1.6 veces. Cerremos esto ahora. Y ahora está escalando correctamente. Para diseñar el menú principal, lo que quiero que hagas es quiero que crees algo como esto. Si abro, me gustaría mostrarles lo que estamos tratando de hacer para que quede claro. Estamos tratando de hacer esto con tres botones en el medio y el nombre aquí arriba. Empecemos con éste. Se puede ver que los botones están alineados verticalmente. Necesitamos algo llamado caja vertical. Busca una caja vertical, y aquí está. Arrastre aquí. Y aquí está. Lo agregas aquí, vamos a arrastrarlo a la vista. Y acabo de hacer mi UI larga, para que puedan ver lo que estoy haciendo aquí para la caja vertical. Arrástralo para alinearlo ahora al centro. Hay que cambiar el punto de anclaje a la mitad de la pantalla. Entonces si escribes 00 en la posición y y x e y, podrás ver que se alinea a la esquina superior izquierda Esto se debe a que hay que jugar ahora con la alineación. Puedes ver si haces clic y arrastras tu mouse, esto es 0.5 Si se alinea en el medio en la x y uno si se alinea al lado derecho, lo queremos al centro es 0.5 Lo mismo con la y. si lo quieres en el centro es 0.5 va 0-1 y es 0.5 Si lo quieres en el medio, 0.5 por 0.5 y la posición en la x e y es 0.0 Ahora está en Ahora cuando quieras agregar un botón con texto en él, tienes que agregar una superposición. Una superposición es donde puedes superponer el texto en el botón. Si buscas un botón, sigue adelante y arrástralo a la superposición, y luego puedes buscar texto. Entonces también puedes arrastrar éste encima de la superposición. Ahora has superpuesto el texto en el botón. Lo tienes en orden inverso. Siempre puedes hacer clic y arrastrarlo uno encima del otro. Y ahora se puede ver que el texto está detrás del botón. Puedes hacer click en el botón y ponerlo arriba. Ahora para el botón, quiero que llene todo el espacio aquí. Quiero que se llene horizontal, así como verticalmente. Ahora está llenando toda la superposición. Digamos si quieres que llene todo el asunto. Se puede ver que esta es la caja vertical. Este es el tamaño de la misma y esta es la superposición que quieres que llene. Toda la caja vertical. Puede hacer clic en la superposición y hacer clic en Rellenar. Por aquí, el botón llenará todo el asunto. Ahora, hagamos eso por ahora para el botón. Quiero darle click y alinearlo en el medio del botón horizontal y verticalmente. Ahora el botón es demasiado grande para la caja vertical. Voy a hacer click en él y solo redimensionarlo por ahora para que sea algo así Bien, vamos a diseñar primero el botón. Al hacer clic en el botón, puedo ir al estilo dentro de aquí. Puedo cambiar el estilo normal del mismo aquí por las imágenes, recuerda, importamos muchos botones e imágenes. Ahora para los botones, puedes lamer aquí y encontrar el botón y ver cuál quieres usar. Puedes ir a tu carpeta aquí abajo, ver cuál quieres usar, y luego puedes hacer clic y arrastrarla a aquí. Esto es justo lo que voy a hacer por ahora. Quiero usar este botón cuadrado azul, voy a dar click y arrastrarlo hacia aquí. Ahora se ve un poco raro. Esto es porque si realmente haces doble clic en el cuadrado aquí, esto es lo que diseñé en Photoshop. Es un botón muy pequeño. Podría preguntarse, ¿cómo va a ser esto un botón grande aquí? Esto se debe a que el motor es realmente inteligente. Va a tomar las esquinas, entonces va a hacer que las partes medias aquí sean cada vez más largas. De hecho puedes convertirlo en un botón. La forma en que haces esto es dentro de, en los cajones, tienes que cambiarlo de caja redondeada a caja en su lugar. Entonces el margen es 0.5 que es el máximo aquí. Cuando haces esto, puedes ver que toma las esquinas solamente, y luego alarga el medio Entonces parece un botón largo. Ahora para el color, está un poco apagado porque el tinte es gris. Si haces clic en él y haces que el tinte sea blanco así, no tiene ningún tinte. Da clic bien, aquí tienes el botón ahora para que sea un poco más grande. Nuevamente, recuerde ya que clic en la superposición y haga clic en Rellenar, puede hacer clic en el cuadro vertical y puede cambiar el tamaño del botón como desee Así, en realidad continuemos aquí. Si haces clic en el botón, tienes que hacer el estado presionado y el estado flotado también, pero para que te sea más fácil, puedes hacer clic derecho y copiar el normal Puede hacer clic derecho y pegarlo en la parte superior del acaparamiento. Lo que puedes hacer también un atajo. Si mantienes turno, también puedes ver el atajo. Si haces clic derecho aquí, dice copiar, mantener pulsada la tecla Mayús y presionar el botón derecho del ratón. Desplazar el ratón derecho, y luego cambiar a la izquierda, ratón izquierdo. Así es como lo pegas. Ahora para el tesoro y el prensado, quiero cambiar el imaged, el pulsado Ahora tienes un estado normal, un estado de hover y un estado presionado. Bien, eso fue todo. Vamos a compilar y guardar todo ahora veamos si necesitamos hacer algo. Al hacer clic en el texto. Ahora cambiemos el texto. Descargamos este rubic one para el texto, voy a cambiarlo para frotar semi negrita, tal vez por el tamaño Creo que 24 es demasiado grande. Déjame cambiarlo a algo así como 18. Déjeme darle un bosquejo. Si hago clic en la configuración de Contorno aquí en la configuración del contorno frontal, voy a establecer el contorno en dos. Ahora para el color, voy a dar click, déjame ver el color del contorno está aquí abajo. Entonces haciendo clic en el Color acercar, voy a tomar este picker de color y voy a escoger el color más oscuro en el botón, tiene como este Te voy a mostrar cómo puedes darle un efecto genial al contorno. Y eso se puede hacer añadiendo también sombras. Voy a copiar este color. Mayús clic derecho y luego un desplazamiento la izquierda Haga clic aquí para pegarlo en el color de sombra. Para el color de sombra, voy a escribir cero sombra de set en la x y voy a escribir dos en la y le da como este fondo de sondeo y parece que el texto se ha levantado del botón, lo que en mi opinión se ve genial. Ahora necesitamos empujarlo un poco hacia arriba porque parece que no está en el medio en el botón Pulsar aquí, subiendo en el relleno. Relleno, por cierto, es donde se puede empujar el texto hacia la izquierda y hacia la derecha, hacia arriba y hacia abajo. Ahora voy a empujarla desde abajo o poniéndola a cuatro, algo así. Creo que ahora se ve como en el medio. A veces me gusta desactivar las líneas discontinuas, para que podamos ver cómo se ve haciendo clic en las líneas discontinuas de aquí arriba. A mí me gusta verlo. Sin ninguna línea de guiones, se puede ver cómo se ve. Creo que esto se ve genial. Lo que podemos hacer es que podemos dar click sobre este texto. Podemos simplemente llamarlo Create Sera. Este es el primer botón que vamos a crear. Es Crear Sera. Lo que podemos hacer es hacer clic en esta superposición. Podemos hacer clic en el control D para duplicar control D nuevamente para duplicar otro. Hagámoslo más grande. Vamos a hacer clic en la caja vertical, hacerla más grande. Necesito darle algo de espacio entre los botones. Hagámoslo. Vamos a hacer clic en el Control de retención de superposición. Y haz clic en todas las superposiciones aquí. Así que los tenemos seleccionados a todos. Podemos hacer las ediciones a la vez. No tenemos que hacerlo una y otra vez. Aquí de nuevo, el espaciado está en el relleno, Justo lo que hicimos con el texto de aquí. Vamos a darle a la cima. Vamos a darle seis en el acolchado hasta el fondo. Vamos a darle seis en el acolchado también. Hay un poco de espacio dentro de aquí. Ahora vamos a hacer este tamaño un poco mejor. click en el cuadro vertical, voy a recrearlo a algo como esto. Lo que sea que desees, trata de hacerlo a tu gusto. En realidad no hay una regla aquí. Y luego haga clic en el cuadro vertical, y luego podrá recitar esta dirección también Creo que algo como esto es genial, que lo que podemos hacer ahora es hacer clic en el cuadro vertical. Nuevamente, las posiciones x e y necesitan ser cero, para que esté centrada así. Ahora cambiemos el color de estos botones Para hacer esto primero vamos a cambiar en realidad solo el texto para decir servidor conjunto, el último en decir salir. Ahora puedes por supuesto, tenerlo en el mismo color, pero yo sólo voy a mostrarte cómo cambiar los colores también. Voy a minimizar esto un poco aquí En los botones otra vez, voy a seleccionar el morado. Ahora, dando click en este botón de servidor conjunto, dando click en la normal, me meto aquí. Y ahora has cambiado de color. Recuerda hacer eso también en el florecido y pulsado, así que voy a mantener pulsada la tecla shift click derecho, luego shift left click sobre estas Recuerde seleccionar el estado rontado y el estado presionado Para el último, voy a usar el botón rojo, copiarlo y pegarlo en los otros, cambiarlo al hoverd y al estado presionado Ahora tenemos esto. Cambiemos también el esquema. Haga clic en aquí, haga clic en el Color de contorno, clic en Selecto de color y seleccione el color más oscuro Voy a hacer click back, hold shift, click derecho, hold shift, click izquierdo para pegarlo. Y haciendo lo mismo aquí abajo, da clic aquí, color, selecciona el color oscuro. Y luego voy a desplazar click derecho, shift click izquierdo para pegarlo. Lo último que tenemos que hacer es agregar el nombre aquí arriba, porque quería dar la bienvenida y luego su nombre. Hagámoslo ahora. Para hacerlo aquí arriba, realmente no necesitamos agregarlo dentro de la caja vertical. Es un elemento por sí mismo. Aquí arriba quiero superponer una imagen o un texto sobre un fondo, un texto encima de una imagen. Primero necesitamos una superposición. Puede arrastrarlo al panel del lienzo. Veamos dónde está. Está aquí arriba. Por lo general, aquí arriba. Cuando lo agreguemos, agreguemos una imagen a la superposición. Y luego agreguemos algo de texto. En realidad, en vez de añadir un texto de aquí, sólo puedo copiar uno de ellos para que no tengamos que volver a diseñarlo. Voy a pegarlo encima de la superposición. Ahora para la imagen, quería llenar todo el asunto. Rellenarlo horizontal y verticalmente a esta superposición. Vamos a hacer clic en esta superposición. Cambiemos el punto de anclaje para que esté a la mitad superior. Nuevamente, si escribes 00 en la x e y, puedes ver que va a esta esquina. Entonces hay que volver a jugar con la alineación. Y aquí es 0.5. Y vamos a hacer clic ahora en la imagen. Cambiemos el pincel de la imagen, la imagen misma. Ahora voy a ir a Imágenes. Y voy a, permítanme importar este panel, haga clic en gris y vuelva a arrastrarlo hacia aquí, igual que antes. Cambiémoslo a una caja. Cambiemos el margen a 0.5 Ahora vamos a dar click sobre el texto. Para el texto, voy a dar click aquí. Toma el color, elige, selecciona este color. Déjame simplemente dar click en el color y hacerlo da, algo como esto. Jugando un poco con él, creo que voy a usar este color aquí. Puedes copiarlo si lo deseas. Voy a copiar esto aquí abajo al color de la sombra también. Y luego ahora alejemos el zoom. Déjame darle algo de espacio desde el panel del lienzo porque puedes ver que está en la parte superior del borde aquí. Doy click en la superposición y le di espacio aquí en la Y, solo algo de espacio. Creo que voy a escribir algo así como 40 en el borde aquí. Al hacer clic en la superposición, puede, nuevamente, redimensionarla a lo que desee así como al texto Creo que es demasiado en la parte superior porque recuerda para los botones, agregamos un relleno. Haga clic en él. Voy a decir algo así como dos. Podría haber un dólar porque puedes ver si realmente escribo un nombre largo, puedes ver que escribe así. De hecho, vamos a arreglarlo. click en el texto, voy a centrarlo al medio en la justificación. También dando click en esta imagen, o en realidad en el Ovallay Voy a hacer clic en Tamaño al contenido. Resulta que se ve así. En lugar de darles un tamaño aquí en el tamaño de la imagen, lo que podemos hacer, ya que lo estamos dimensionando al contenido, podemos dar click sobre el texto aquí en el relleno. Si le das palmaditas a la izquierda lo suficiente, puedes darle algo de espacio. Si le das palmaditas, por ejemplo, algo como y algo así como 50 a la derecha también, puedes darle algo de espacio a la izquierda y a la derecha. Lo mismo para la parte superior y lo mismo para el fondo también. Incluso si escribes un texto largo o encajas un poco más, puedes ver que cambia de tamaño a lo que sea el texto No conseguimos que se baje por la izquierda y la derecha. En realidad voy a escribir 40 en su lugar, creo que es demasiado. Con 50 para este, voy a escribir 22 a la parte superior y 21 a la parte inferior aquí. Creo que esto se ve genial. Así es como se ve y lo que podría decir. Por ejemplo, hola en. Ahora vamos a programar esto porque este nombre aquí en, por ejemplo, este va a mostrar, dependiendo de cuál sea el nombre en Steam. Para éste sólo voy a saludar, Steam. Y podemos cambiarlo después y ver qué dice. Salgamos a compilar, y guardemos todo. Y ahora hemos terminado con la interfaz de usuario. Casi lo último que quiero decirte es si haces clic en el texto aquí, y si bajas a Visibilidad en lo que es ahora mismo si intentas hacer clic en el botón aquí, el texto va a bloquear tu mouse y no puedes hacer clic en el botón. No quiero eso. Seleccionemos este texto. Control de retención. Da clic también en los otros textos, todos ellos para la visibilidad. Cámbialo para que no golpee Comprobable. Lo que esto significa es que el ratón va a ignorar el texto. Y en realidad puedes colocar el botón en la parte superior de este texto, y también hacer clic en el botón en la parte superior de este texto Esto es lo que queremos. Bien, esto fue todo. Adelante, compilar y guardar todo. Y ahora vamos a cerrarlo y seguir adelante. 13. 2.04 Animación de la interfaz de usuario de nombre del jugador: Ahora sigamos adelante y trabajemos con animación. Si abres la, me hiciste una nueva, una vez más dentro de aquí, lo que quiero hacer es que quiero animar esta parte de nombre Donde quiero que esta interfaz de usuario flote lentamente hacia abajo y hacia arriba es la superposición que necesitamos animar Donde podemos ver aquí en la posición Y. Yo quería hacer algo como esto aquí, y necesitamos animarlo Voy a ponerlo de nuevo a 40 aquí en la y. Vamos a abrir la pestaña de animación. Y puedes hacerlo aquí abajo. Si haces clic en él, voy a dar click en Layout, para que pueda verlo todo el tiempo aquí. Voy a hacer click en el Plus para la animación. Vamos a llamarlo Nombre del Jugador. Vamos a darle un click sobre él. Ahora tienes que hacer clic en el Overlay. Déjame cambiarle el nombre para que lo veas. Voy a renombrarlo V por Overlay, y llamarlo Player Name. Y adelante y compile Ahora para esto aquí, da clic en el Overlay. Para el nombre del jugador, haz clic en la pista aquí, y luego podrás verla siempre que hayas seleccionado aquí, haz clic en ella, haz clic en el más, luego selecciona Transformar. La transformación es básicamente donde se puede editar el, la posición, la rotación, la escala, y así sucesivamente. Y queremos editar la traducción, la posición de la misma en la x e y, bien, Aquí en la gráfica, Digámoslo, estos son segundos. Si lo pongo, por ejemplo, 1.5 segundos aquí, puedo jugar con esto aquí, tal vez arrastrarlo hacia abajo. Creo que 15 es suficiente. Se puede ver ahora en cero es así. Si lo arrastras a 1.5 segundos, será aquí abajo. Quiero que vuelva a subir. Después de 1.5 segundos otra vez, quiero que vuelva a ser cero. Ahora si hago clic en Vista Espacial, la animación, aquí está. Si vuelvo a hacer clic en Espacio, puedes volver a verlo. Sólo vamos a hacerlo loop. Solo necesitas un fotograma como este y solo vamos a hacerlo loop para siempre. ¿Bien? Si querías no tener una animación suave, siempre puedes venir aquí, seleccionar todo clic derecho, y hacerlo lineal. Cuando haces esto, no suaviza los puntos aquí afuera. Se mueve de manera lineal así. Ya ves que no se suaviza cuando sube y baja. Si quieres ser suave, haz clic derecho y selecciona auto cúbico y suavizará un bien. Voy a ir con esto y en realidad estamos acabados. Si voy a la gráfica, ahora aquí está la codificación. Eliminemos este y eliminemos éste. Borremos todo lo que pueda mostrarte cómo hacerlo. Si haces clic derecho aquí en la gráfica y buscas constructo. La construcción de eventos es simplemente lo que debería suceder cuando hago clic en Reproducir aquí. Cuando hago esto, este es un evento en blueprint y necesitas eventos para ejecutar código Juguemos la animación. Puedes ver la animación aquí. Nombre del jugador que creamos un clic y arrástrelo aquí. Ahora arrastre de aquí y juegue a la derecha. Y se puede ver esta función llamada lay animation select conectado aquí. Ahora la cantidad de bucles, voy a ponerla a cero y esto quiere decir que va bucle infinito cantidad de veces q y compilar. En lugar de hacer clic en Jugar como un juego independiente, en realidad voy a seleccionar Nueva ventana del editor de vista porque es mucho más rápido de abrir aquí. Por supuesto, todavía no podemos ver la interfaz de usuario, pero la animación está funcionando. Te puedo decir que, sin embargo, todavía no puedes verlo porque no hemos agregado la UI, el menú principal a la pantalla, por qué no podemos verlo. Y esto es en lo que vamos a trabajar en el próximo par de lecciones. Sigamos adelante y hagamos esto. 14. 2.05 Crea la enumeración: Para empezar, lo que quiero que hagas es crear algo que se llame una enumeración. Podemos usarlo más adelante para programar cómo mostramos o mostramos la interfaz de usuario a la Viewpoard Vamos a los planos dentro de aquí. Quiero que hagas click derecho, hagas una nueva carpeta llamada Enums Ya tengo uno de programar el curso dentro de esta carpeta. No le pongas atención a todo esto. Realmente no lo necesitamos para este curso. Hagamos clic derecho para hacer una nueva enumeración de planos. Adelante y selecciona uno. Vamos a llamarlo, voy a llamarlo algo así como widgets del menú principal. Qué es una enumeración. Si lo abres, básicamente es solo una lista de elementos que puedes agregar a la lista haciendo clic aquí arriba. Y puedes agregar lo que quieras. Si hago clic un par de veces y agrego elementos, por ejemplo, puede ser una lista de cualquier cosa. Las enumeraciones son solo listas. Puede ser una lista de abarrotes, lista de tipos de puntos en tu juego, lista de tipos de armas En este caso, para lo que lo estamos usando es una lista de qué widgets tienes en tu menú principal. Por ejemplo, el propio menú principal. Y luego tengo el menú Crear Sera. Y luego tengo el navegador Serva donde puedo ver los servidores. Realmente no creo que tengamos más, pero si tienes un juego más grande, tienes el menú de configuración, tienes el dinero. Entonces, si tienes como micro transacciones, money shop, y así sucesivamente. Pero en realidad no tenemos eso por ahora. Yo solo tengo el menú principal, Crear servidor y navegador Serva. Vamos a guardar esta lista aquí. Ahora ya está listo. También se pueden ver los otros de mi juego. Por ejemplo, el tipo de arma tengo tipos pistola y rifle desarmados Nuevamente, puede ser una lista de cualquier cosa que se te ocurra. La enumeración es básicamente solo una lista de estados de movimiento. Por ejemplo, aquí tengo una lista de mis estados de movimiento en el juego. Puedo correr, caminar y agacharme, y así sucesivamente. Y en este caso, lo que estamos tratando de hacer aquí es también mi juego de juego, widgets. Dentro de mi juego, tengo la interfaz de usuario principal, la IU de selección de equipo, mi Cruz. En nuestro caso, lo estamos utilizando para el menú principal. Tenemos el menú principal, Crear servidor, y el navegador del servidor. Ahora que tenemos eso listo, estamos listos para usarlo en las próximas lecciones. 15. 2.06 Función de mostrar y ocultar el widget: Bien, entonces este va a ser un poco más complejo, pero voy a mostrarte el mejor método para mostrar y ocultar la interfaz de usuario dentro del motor vulnerable, para que puedas usarlo en todo tu proyecto. De nuevo, va a ser un poco más complejo comprender si eres totalmente Pero solo presta atención. Intenta ver aquí y estoy seguro que puedes aprenderlo también. Vamos a los planos. Ahora vamos a la carpeta del menú principal dentro de aquí. Recuerda que hicimos el modo, hicimos el controlador de reproducción antes, y generalmente para la interfaz de usuario creamos dentro del controlador del jugador. Por eso lo creamos. Vamos a abrir el controlador del reproductor. Y dentro de aquí, abramos el editor de planos completo en el controlador del reproductor Simplemente eliminemos todo en la gráfica y dentro del gráfico de eventos. Empecemos ahora. Lo que quiero que hagas es que escribas, hagas clic y hagas un nuevo evento personalizado llamado éste, Mostrar, ocultar widgets. Este evento va a mostrar y ocultar nuestro widget. Ahora necesitamos el widget aquí en la entrada, voy a agregar una variable, y esta es la enumeración que creamos antes Ahora como lo llamé en la carpeta enums, lo llamé widgets del menú principal Aquí en el tipo de variable, puedes buscar widgets del menú principal, como lo llamaras, ir a y seleccionarlo. Sólo voy a llamarlo widget. Básicamente lo que me gustaría mostrarte qué función básicamente queremos usar. Es mejor entender desde el principio. Hagamos clic derecho aquí y busquemos algo llamado create. Widget es la función que vamos a utilizar. Si haces clic aquí y seleccionas, por ejemplo, el widget del menú principal que creamos. Estamos tratando de crear este widget de menú principal y agregarlo a la pantalla. Esto es simplemente lo que estamos tratando de hacer ahora. Lo estamos haciendo de una manera inteligente que se puede escalar dinámicamente a toda la interfaz de usuario futura que cree Esta es una función muy inteligente aquí abajo, queremos mostrar y ocultar widget. Agreguemos otra variable. Agreguemos un lingote, que es solo la variable que es verdadera o falsa Aquí, llamémoslo show. Si se llama a este evento, si sólo con razón puedo decir, mostrar ocultar widget. Y aquí lo llamo a este evento. Aquí puedes ver cómo se ve cuando lo uso en otro lugar. Ahora puedo comprobar qué widget quiero usar, por ejemplo, el Crear Serva. Entonces puedo elegir si quiero mostrarlo. Si no lo hago, quiero cerrarlo. Es por ello que se llama show hide widget. Lo muestro si marco aquí, y lo escondo si no marco aquí. Ahora podemos elegir cuál queremos efectuar. Por ejemplo, ¿quieres mostrar el menú principal? ¿O quieres cerrar el menú principal? Así es como lo usamos aquí arriba. Rompamos de aquí y hagamos una rama. Si ho es cierto, queremos hacer algo. Si cómo es falso, queremos hacer otra cosa. Quiero aquí crear dos funciones. Vamos a hacer clic en el más para esta función. Estas son las funciones personalizadas que vamos a crear. Se va a llamar al primero, me gusta escribir como prefijo para mis funciones. Llamemos a este widget. Hagamos otro llamado hide widget. Volvamos al gráfico de eventos, y vamos a arrastrarlos a aquí. Mostrar widget y ocultar widget. Ahora, ¿qué widgit vamos a mostrar? Este que enchufamos más tarde Cuando llamamos a la función. Sin embargo, necesitamos tener una entrada aquí, para que podamos decirle que es este widget aquí. Vamos a hacer clic en el widget de show uno. Vamos a agregar una entrada. Cambiemos esta otra vez al widget del menú principal. Esta es la enumeración. Vamos a seleccionarlo y llamarlo widget. El mismo para el widget hide. ¿Qué widget quieres ocultar? Es éste. Voy a hacer clic aquí, hacer una entrada, y luego llamarlo widget. Ahora podemos hacer clic y arrastrar esto a esas entradas que creamos. Ahora va a entrar aquí y podemos hacer algo con él. Este es básicamente el flujo. El flujo está en algún lugar del código que podemos mostrar u ocultar el widget. Digamos por ejemplo, más adelante queremos que oculte el menú principal. Podemos escribir, hacer clic y decir mostrar ocultar widget. Puedes llamar a este evento aquí arriba. Entonces podemos decir para el menú principal, quiero hola. Así es como se ve, porque no he marcado esto Lo que va a hacer va a decir que esto es falso. Si es falso, va a ocultar el widget. ¿De qué widget estamos hablando? Estamos hablando del menú principal. Porque esto es lo que le dijiste, el menú principal va a pasar por aquí. Va a pasar por aquí, dentro de esta función. Y ahora podemos hacer algo de código aquí para el widget show. Quiero romper de aquí y decir encender enumeración. Qué interruptor en la enumeración es que puedes hacer algo dependiendo de qué selección hiciste dentro de esta enumeración Por ejemplo, si seleccionas el menú principal por aquí, está en el widget show. Reproduce el código para el menú principal, y va a ignorarlos a todos aquí abajo. Digamos para el menú principal, marqué aquí la verdad Esto significa que quiero mostrar el menú principal. Necesitamos de nuevo, para usar este widget. Esto es lo que estamos tratando de usar. Vamos a borrarlo aquí arriba. Vamos al widget show. Y aquí para el menú principal, puedo arrastrar y decir crear widget. Vamos a seleccionarlo. ¿Qué widget quiero crear? El menú principal que creamos, entonces solo puedo hacer clic derecho y promoverlo a una variable. Para que pueda guardarlo aquí y llamarlo Menú principal. Ahora a pesar de que creamos la variable, todavía no se muestra en la pantalla. Esto se debe a que tenemos que arrastrar desde aquí y decir Agregar a Viewport Vamos a agregarlo a la Viewport, y ahora debería funcionar Si compilo y hago clic en play, se puede ver que sigue sin funcionar. Esto es porque en blueprint, si ya sabes que tenemos que llamar a este evento, no va a correr solo El motor no sabe que quieres correr este evento. Lo que vamos a hacer es en el evento o incluso construir. Ahora estamos en el mando de juego. Es jugar el evento. Este es un evento que dice lo que debería pasar. Cuando empiece a jugar el juego, quiero mostrar el dragón del menú principal desde aquí llamando al evento show hide widget aquí. Y voy a seleccionar Menú principal. Y quiero mostrar el menú principal. Lo que va a hacer es que va a pasar por aquí. El widget es menú principal va a enchufarlo aquí y está configurado para mostrar es cierto. Se va a mostrar el widget, la selección aquí era menú principal. Va a crear todo esto y agregarlo a la ventana gráfica Ahora si haces clic en reproducir, ahora puedes ver que se agrega a la ventana gráfica También puedes ver que la animación está funcionando para el nombre y todo se ve bien. Puedes pasar el cursor sobre los botones, puedes hacer click sobre ellos para ver si lo has hecho correctamente, y todo está bien Esa fue tu primera interfaz de usuario que agregaste. Y realmente agradable, has logrado mucho, porque en realidad esta fue la parte difícil. Ahora la parte final es ocultar widget. Vamos a entrar aquí de nuevo, justo a partir de aquí, y digamos que enciendan la enumeración. Siempre que seleccionamos ocultar aquí en lugar de mostrar, entonces lo que quiero hacer es en el hide, quiero tomar esta variable que creé para el menú principal. Voy a hacer clic derecho y convertir esto en un get validado. Lo que esto hace es que nos estamos asegurando que esta variable sea válida antes de hacer algo, antes de eliminarla de la pantalla. Porque no tiene sentido eliminar esto de la pantalla si no es válido. Porque no lo es, tomemos esto y digamos quitar de padre. Así es como lo eliminamos de la viewport. Siempre que esta variable sea válida, queremos eliminarla de la pantalla. También queremos hacer lo mismo en el widget show, lugar de simplemente crearlo todo el tiempo. Esto será un error, porque cada vez que voy al servidor de creación y vuelvo al menú principal, en realidad va a volver a crear el menú principal. Y no quiero hacer eso todo el tiempo. Voy a tomar esta variable que he creado por aquí. Voy a escribir click y convertir esto en un get validado. Entonces voy a conectarlo aquí. Si es válido, no quiero crearlo. Si no es válido, quiero crear este widget porque aún no se ha creado. Si es válido, solo quiero agregarlo a la ventana gráfica. Esto es mucho mejor que hacer. Estamos comprobando si esto es válido. Si no lo es, siga adelante y córelo y luego agréguelo a la ventana gráfica Si ya es válido, solo tiene que seguir adelante y agregarlo a la ventana gráfica Compilemos y guardemos todo, y ahora hemos terminado con esta compleja función y evento. Ahora sólo voy a explicarlo muy, muy rápido. Si seleccionamos, por ejemplo, crear serva. Seleccionamos show, vamos a tener selecto Serva aquí. Y va a decir que el espectáculo es cierto. Entonces va a jugar esta función aquí arriba. Y ya sabemos que la selección es puerta Serva. Así que va a reproducir el código en el crear Serva y vamos a crear lo mismo más adelante. Puedes crearlo tú mismo si quieres. Este es en realidad el mismo método que este. Y recuerda también agregarlo en el Hyde también, pero lo vamos a hacer en la lección posterior. Compilemos por ahora, guardemos todo y sigamos adelante. Ahora vamos a seleccionar de nuevo Menú principal. Entonces juega, podemos asegurarnos de que todo esté funcionando. Y pasemos a la siguiente lección. 16. 2.07 Comunicación de planos - Casting: Bien, ahora sigamos. Vamos a abrir la interfaz de usuario con la que estuvimos trabajando antes. Y era la interfaz de usuario del menú principal dentro de aquí. Vamos a la gráfica. Lo que quiero hacer ahora es que quiero aquí en el diseñador, cada vez que presiono el botón para el Create Sera, quiero abrir el widget Create Sera para hacer esto. Primero, aquí arriba en el botón, vamos a llamarlo, por ejemplo, botón servidor, sabemos con qué estamos trabajando. Vamos a establecerlo en variable. Si no es variable aquí en la gráfica, no se puede ver y no se puede hacer ningún código con ella. Si lo configuras variable y vas a la gráfica, puedes ver, ahora puedes ver el botón. Puedes hacer clic en el evento aquí en clicked. ¿Qué debería pasar al hacer clic en el botón? Esto es lo que queremos. Queremos mostrar el widget que aún no hemos creado, pero no es realmente muy importante por ahora. Volvamos a la gráfica. Ahora quiero mostrar mi widget create sera. Recuerda ahora mismo en la última lección, creamos dentro del controlador del reproductor del menú principal, creamos este widget show hide. Necesito usar esta función aquí, este evento aquí. Necesito llamarlo desde el menú principal. Cuando presiono el botón crear servidor, quiero mostrar el widget. Ahora estamos dentro de algo que se llama un plano de comunicación Porque ahora el plano aquí, el menú principal, se está comunicando con el controlador del reproductor, dos planos se están comunicando entre sí Para ello, tenemos que usar algo llamado Casting el controlador del jugador. Lo que tengo que decir primero es que necesito escribir click y decir get player controller. Entonces puedo seleccionar esta función aquí, luego puedo arrastrar desde aquí. Ahora bien, este es el controlador de reproducción predeterminado en el motor Naral. Ahora tengo que decirle que quiero usar específicamente mi mando de juego personalizado y esto es lo que cuesta. Dos medios, lanzar dos y luego escribo el nombre del controlador de reproducción. Menú principal de pc. Este es el que ahora básicamente le dijimos, obtener el controlador de reproducción predeterminado, entonces quiero usar específicamente mi controlador de reproducción personalizado. Ahora cuando hagamos casting aquí desde este pin, puedo usar lo que esté dentro del controlador de reproducción. Si creo una nueva variable, por ejemplo, y la llamo hola, digamos que es una variable de tipo transform y compila. Ahora si voy dentro de aquí y arrastre y diga hola. Ahora puedo ver esta variable de transformación. Puedo usar lo que esté dentro del controlador del reproductor. Permítanme simplemente borrar esta variable por ahora. Puedo usar este widget show hide puedo arrastrar desde aquí y decir show hide widget. Y ahora puedo usarlo para mostrar el servidor create así. Ahora, hay un problema con este método. El elenco, si ya lo sabes, casting crea tenía referencias y Unreal Engine Y lo que eso significa es que Unreal Engine tiene que cargar todas las referencias duras cuando abre el juego Y es por ello que a veces en los juegos, si es, por ejemplo, creado en el motor Naral, se tarda, digamos, 10 segundos, 15 segundos en abrir el menú principal Esto se debe a que tiene que cargar todas las referencias duras antes de que pueda cargar el menú principal. Tratamos de evitar hacer casting tanto como sea posible. Hay periodos de tiempos en los que tenemos que usar el casting, pero muchas veces podemos evitarlo. Y en este caso podemos evitarlo también. Podemos evitar que fuera algo llamado interfaces de blueprint Sigamos adelante en la siguiente lección y echemos un vistazo a lo que es una interfaz de blueprint 17. 2.08 Comunicación con planos - Interfaces: Para evitar el alojamiento y evitar la referencia oculta, sigamos adelante y creamos una interfaz de blueprint Cerremos esto nuevamente en la carpeta del blueprint, hagamos clic derecho en hacer una nueva carpeta y llamemos interfaces Ya lo hice aquí una carpeta de interfaz porque la usé en mi proyecto Counterstrike y ya hice un par de ellos. Hagamos click derecho dentro de aquí y vayamos a Blueprint Y creamos una interfaz de blueprint para este Yo sólo voy a llamarlo, llamémoslo como sea que estemos tratando de hacer referencia. Estamos tratando de hacer referencia al control del jugador porque queremos usar el, el evento dentro del controlador del jugador. Déjame llamarlo controlador de menú principal. Vamos a abrir la interfaz del blueprint. La función que queremos utilizar. Ahora dentro de una interfaz de blueprint, realmente no se puede hacer mucho No puedes mover esta función, no puedes dirigir desde aquí, no puedes hacer nada dentro de aquí. Lo único que puedes hacer es crear una nueva función para la nueva función. Digamos que controla la referencia. Esto es básicamente lo que estás tratando de hacer. Ahora aquí en la salida, sigamos adelante y creamos una variable. Y el tipo de variable aquí es lo que esté tratando de hacer referencia. Estoy tratando de hacer referencia al controlador del reproductor. Voy a buscar PC. Para Controlador de reproductor, lo llamé Menú principal Control de reproducción. Este menú principal C, seleccione Referencia de objeto. Adelante, llámela aquí. Vamos a compilar. Y ahora estamos acabados dentro de aquí. Fácil. Vamos a cerrarlo. Volvamos a los planos. Abra la carpeta del menú principal y abra el controlador del reproductor del menú principal. Ahora tenemos que añadir la interfaz que acabamos de crear. Vamos a la configuración de clase. Pasemos a las interfaces implementadas. Déjame buscar el controlador del reproductor del menú principal que acabo de crear. Y adelante y agrégalo. Ahora presta atención cuando lo agregues, verás una nueva barra aquí apareciendo. Si lo agrego, puedes ver esta barra de interfaz apareciendo. Y puedo abrir la función del controlador del reproductor. Esta es la función que acabamos de crear. Ahora hay que definir qué es esta variable que creaste. Lo que podemos hacer es arrastrar y decir yo mismo. Y sigue adelante y selecciona esta autorreferencia. Lo que esto significa, variable de control del jugador que creaste. Hay que definirlo. Porque si mantienes Alt y das click aquí para desconectarlo. Si no lo defines, honorable motor te va a dar un error y te va a decir, no sé a qué te refieres con esta variable de controlador de jugador vacía. La razón por la que dijimos una autorreferencia porque yo significa cualquier plano en el que se encuentre ahora mismo Ahora mismo, recuerda que estamos en el menú principal del controlador del reproductor. Lo que estamos diciendo es que esta variable del controlador del reproductor es nuestro controlador principal del reproductor. Vamos a compilar ahora. Voy a explicarte todo por ti al final. Simplemente continuemos. Lo que podemos hacer ahora es volver a, vamos a minimizar esto. Ir a la interfaz de usuario, volver al menú principal. Volvamos a abrir la gráfica. En lugar de lanzar, eliminemos esto y ahora consigamos el controlador de reproducción, al igual que antes. Entonces en lugar de decir costó dos, ahora podemos decir referencia del controlador de juego. Así es como lo llamamos. Ahora éste. No te confundas. Esto es del mapa principal del juego de contraataque. Este es lo que creamos, la interfaz del controlador de menú. También puedes ver que es una función de interfaz porque dice mensaje al final y puedes hacer click en él. Y esto también es lo que significa este icono. Significa que proviene de una interfaz de blueprint. Y adelante y conéctalo aquí. Y ahora a partir de esto en realidad podemos simplemente conectarlo aquí. O si quieres eliminarlo y volver a hacerlo, puedes arrastrar desde aquí y decir mostrar ocultar widget, y puedes salir y seleccionarlo así. Y ahora puedes ver que evitas hacer casting y evitas ocultar referencias Solo para hacerlo un poco mejor, voy a hacer clic en el control X para cortar esto desde aquí, y voy a agregarlo a la construcción del evento. Si empujo esto, mantengo presionado Alt y doy clic aquí para desconectar el control V para pegar este. Adelante y conéctalo. Haga clic con el botón derecho aquí, promocione este controlador de reproducción en una variable y llámalo controlador de reproducción. Adelante y conéctalo de nuevo aquí, la animación. Ahora para este controlador de reproducción, lo hacemos mucho más limpio simplemente tomando esta variable de controlador de reproducción. A partir de aquí, sólo podemos decir mostrar ocultar widget. Y podemos usar esta función en lugar de hacer todo esto todo el tiempo en cada instancia de aquí abajo. Y solo toma la variable ahora y podemos llamar al evento mucho más limpio. Ahora ya terminamos con esto, voy a explicar todo el proceso antes de continuar. Si fue un poco difícil de entender, sé que la interfaz es un tema difícil para los principiantes, solo echemos un vistazo rápido. Lo que hicimos básicamente fue ir a la carpeta de planos. Hicimos una carpeta de interfaz y creamos nuestra interfaz de menú principal haciendo clic derecho en el plano, interfaz de blueprint dentro de esta interfaz de blueprint, obtener referencia del controlador del jugador Lo que estamos tratando de hacer es obtener la referencia de los controladores del reproductor aquí para el menú principal. Porque el evento que necesitamos usar está dentro de aquí. Tenemos que hacer referencia a ello. Yo aquí en la interfaz de blueprint, creé esto para la salida Necesitas crear una variable. Y el tipo de variable es lo que estés tratando de hacer referencia. Estamos tratando de hacer referencia a un controlador de jugador. Recuerda seleccionar Menú principal de PC. Esto es lo que llamé mi Player Controller. Ahora hay que agregar esta interfaz en el Player Controller. Yo hago clic en él, vas a Ajustes, agrego mi interfaz. Esta pestaña aparecerá. Esta es la función que creaste aquí. Dentro de la interfaz. Entras de aquí, y luego tienes que definir el controlador splat Recuerda, esta variable es lo que creaste aquí abajo. Hay que definirlo porque si ahora lo desconecto y trato de usarlo, me va a dar un error. Y dirá acceso no. Access non significa que esta variable está vacía y no sé qué hacer con ella. Esto es básicamente un motor real que te dice que tienes que tomar la autorreferencia porque ahora te lo estamos diciendo esta referencia de Player Controller es este Player Controller en el que estamos ahora mismo. Esto es lo que quiere decir yo cuando hacemos esto. Ahora podemos ir al menú principal UI. Podemos tener una referencia al controlador del jugador por Ting, el controlador de reproducción predeterminado. Y luego estamos diciendo que queremos usar nuestro propio controlador de reproductor, que es este. Ahora lo tenemos aquí y promovimos a una variable. Ahora podemos usar la variable para llamar a este evento aquí en el gráfico de eventos desde el controlador del reproductor. Y esto es lo que estamos haciendo aquí. Repasemos en la siguiente lección y programemos el menú principal. 18. 2.09 Programación del menú principal: Muy bien, bienvenido de nuevo. Ahora estamos listos para programar el menú principal. Siempre que hacemos clic en el botón Crear Sera, lo que queremos hacer es que queremos ocultar el menú principal. Esto es correcto, el menú principal. Entonces queremos mostrar la interfaz de usuario de Create Sera. Voy a arrastrar esto desde aquí. Mostrar Ocultar Widget una vez más, adelante y conectarlo. Entonces quiero mostrar el Crear Servidor. Vamos a hacer doble clic sobre él, así como esto. Y lo que puedes hacer es seleccionarlos y presionar Q en tu teclado. Esto enderezará las cosas. Y ahora nada realmente va a pasar aquí en el servidor de creación. Porque recuerda dentro del controlador del reproductor, si haces clic en la función show widget que hiciste. Todavía no hemos hecho nada aquí para el servidor create y show server browser. No obstante, va a ocultar el menú principal, así que sabemos que está funcionando. Si hace eso, esto fue para el servidor Create. Vamos a hacer clic en Reproducir. Se ve que no puedo presionar, mi mouse desapareció cada vez que hacía clic en el juego Vamos al controlador y vayamos a Class Defaults. Vamos a hacer clic en este llamado show mouse cursor. Está arriba todo el tiempo. Vamos a compilar. Vamos a hacer clic en play. Ahora puedo ver mi ratón todo el tiempo. Doy click en Crear Serva, puedes ver que mi menú principal desaparece. Y en realidad estoy mostrando el navegador Serva, o Create Serva, que aún no hemos creado. Ahora esto está funcionando. Vamos a continuar. Pasemos al siguiente botón. Para el siguiente botón, lo voy a llamar botón unirse a Serva, enviándolo a una variable para que pueda codificar con ella. Y yendo a la gráfica, haga clic en el botón, haga clic en el clicado, vamos a copiar todo eso para que no tengamos que escribirlo nuevo para el primero Nuevamente, oculta el menú principal, pero muestra el navegador de Sera. Este es el servidor conjunto para el último, hagamos clic en el botón del botón. Sigue adelante y hace que sea variable. Ahora en la gráfica vamos a hacer clic en se hace clic aquí. Para el quit, tenemos una sencilla función llamada quit game y seleccionarla. Este era jugador específico. Sólo voy a decir controlador de jugador. Seleccione Controlador de reproductor. Y este es el jugador que queremos dejar el juego y compilar. Hagamos ahora clic en Reproducir. Y esto es todo. Cada vez que hacemos clic en salir del juego, cada vez que hago clic en Unirse a Serva, va al navegador Serva que aún no hemos creado. Todo es correcto. Ahora lo que puedes hacer es ahora puedes juntarlos, hacer que se vea mejor. También puedes seleccionar algunos de ellos. Da click en C en tu teclado para crear un comentario. Por ejemplo, se puede decir, Joinva Logic. Puedes intentar hacer comentarios. Incluso puedes cambiar el color del comentario, lo que quieras. Trate de mantenerse lo más organizado posible. Eso lo haré más tarde. Entonces por ahora sólo voy a ponerlos juntos y guardar todo. Y pasemos al siguiente. 19. 2.10 Programación del nombre en Steam: Ahora sigamos adelante y asegurémonos que el nombre también esté funcionando. Porque aquí en el menú principal, agregamos este. Hola Steam. Pero el juego tiene que saber cómo te llaman en Steam. Así que volvamos aquí. Ir a la interfaz de usuario. Abre una vez más, la interfaz de usuario del menú principal dentro de aquí. Vamos a dar click en este texto. Sólo voy a llamarlo nombre de capa de texto. Podemos configurarlo como variable, así podemos codificar con él aquí en la gráfica. Lo que queremos hacer es después de tocar esta animación o en realidad antes de tocar la animación, hagámosla lo más rápido posible. Aquí después de la referencia del controlador del jugador. Vamos a hacer clic en Alt y dar clic aquí. Lo desconectamos. Lo que queremos hacer es tomar el nombre de este jugador y arrastrarlo y decir Establecer texto. Esto es básicamente lo que estamos tratando de hacer. Seleccionemos la función, establecemos el texto y vamos a conectarlo. Ahora en lugar de simplemente bloquear el nombre y te voy a mostrar realmente antes de que hagamos otra cosa, hagamos clic derecho y obtengamos el controlador y obtengamos el controlador del reproductor. Entonces a partir de esto puedes arrastrar y decir get player name puede usar este. Y es a partir de las sesiones avanzadas como veas consigue jugar un nombre y básicamente puedes simplemente conectarlo aquí. Siempre que hagas clic en Reproducir, ahora puedes ver me da el nombre, este nombre aquí. Y no hay animación porque olvidé conectarla aquí. Así que volvamos a hacer clic en reproducir. El nombre es correcto. Este es mi escritorio porque lo estoy ejecutando a través de este de aquí. Pero si lo ejecuto como un juego independiente, de nuevo, un juego independiente va a tardar un poco más en abrirse. Es por ello que suelo jugar en el otro modo ahora mismo. Pero ahora se puede ver cuando lo abro, hecho en mi equipo, se puede ver que el vapor está funcionando. Dice que me llaman Jacks. Y esto es porque así es como mi nombre está en Steam. Ahora en realidad sabe cómo me llaman. Déjame volver al pastel aquí. Es mucho más rápido de abrir. Se ve que solo dice mi nombre y no dice hola. Cuando quieres que el texto estático se mezcle con el texto dinámico, hay que usar algo llamado el formato de texto. Golpeemos desde aquí y digamos formato texto seleccionado aquí. Después selecciona lo que quieras escribir. Quiero escribir hola y luego mi nombre aquí, quiero escribir hola. Mi nombre es dinámico. Lo que haces es para texto dinámico, pones un corchete, solo llamémoslo Reproducir un nombre. Y luego tienes un corchete cerrado. La abres y la cierras. Cuando hagas eso, te va a dar una entrada aquí para una variable. Lo que puedes hacer, vamos a eliminar este a cadena. Así que ya podemos tomar esto y enchufarlo aquí. Ahora va a funcionar. Y vamos a hacer que se vea mejor así. Al hacer clic en reproducir. Ahora puedes ver aquí, dice hola y luego tu nombre por aquí. Ahora eso también está funcionando, y ahora podemos pasar a la siguiente lección. 20. 2.11 Diseño de fondo del menú principal: Lo que quiero hacer en esta lección, quiero diseñar un fondo para el menú principal. Porque como puedes ver aquí, está oscuro en el fondo, lo cual está bien. Puedes tenerlo así. Pero quiero agregar un fondo ahora si no quieres hacer esto, solo tienes que seguir adelante y la lección no es importante. Pero si quieres aprender a hacer un fondo también para tu menú principal, puedes seguir adelante y hacerlo. Voy a hacerlo por tres D ahora. Esto es mucho más fácil para quienes han seguido mi curso en Game instruct.com Este curso aquí, curso Counterstrike Sólo voy a usar el mapa principal que creamos en este curso. Este es el curso de disparos en primera persona hecho solo con plano También fue muy divertido hacerlo. Pero principalmente lo que voy a hacer es que voy a copiar todo esto. Y lo voy a usar como menú principal por aquí. Si has hecho este curso, lo que quiero que hagas es simplemente dar click aquí, Control A para seleccionarlo todo. Control C para copiar. Entonces volvamos al menú principal. Da click aquí y controla V para pegarlo todo. Eliminemos cosas que realmente no necesitamos. No necesitamos todas estas armas. Así que sigamos adelante y va a hacer esto un poco más grande. Por ahora, seleccionemos la carpeta de armas. Creo que nosotros, no podemos eliminar la carpeta, tenemos que seleccionar todo en ella. Seleccione este turno antiguo. Da click en el último, borra, y voy a eliminar también la carpeta, borrando la cámara del espectador Y voy a borrar todos los puntos de spawn, no los necesitamos. Eliminar también la carpeta y ver si necesitamos. El sonido está bien. El sonido está bien. Bien, ya tenemos todo esto. La captura de reflexión, en realidad voy a borrar también. No me da este mensaje que tengo que reconstruir la captura de reflexión de esfera. Voy a borrar esa también. Realmente no lo necesito Ahora vamos a guardar todo. Bien, ahora este es el mapa principal. Si hacemos clic en play, se ve un poco más interesante. Ahora puedes ver que cambia donde quiera que esté aquí con la cámara. De hecho, agreguemos una cámara. Voy a agregar una cámara tal vez por aquí así, así que se ve un poco interesante. Quiero que pinches aquí arriba. Haga clic en Crear cámara aquí y seleccione la cámara cinematográfica Ahora vamos a hacer clic derecho en la cámara cinematográfica. Ta, aquí arriba en el outliner, y luego seleccione Párpado Ahora estamos dentro de la cámara. Ahora cuando me muevo, en realidad estoy moviendo la cámara. Pero quiero que lo hagas aquí en la cámara cinematográfica ect, quiero que vuelvas a cambiar la película Voy a cambiarlo a SLA, voy a cambiar la configuración de la lente para cambiar a un 50 milímetros Eso nos da como un fondo borroso. Vamos a agregar un personaje dentro de aquí. Solo voy a usar mi personaje que en realidad teníamos antes de hacer animaciones aquí. Recuerda si hiciste el curso, solo voy a buscar una animación ociosa. Por cierto, puedes agregar lo que quieras dentro de esto. Ver. Aquí realmente no importa, es solo el fondo. Ahora para la escala, era 1.6 porque los personajes eran un poco demasiado pequeños Aquí, podemos cambiar la vista a tal vez algo así. Tengo algo aquí en primer plano, algo interesante Voy a bajar la velocidad de la cámara aquí arriba. No me muevo esto rápido y sólo me voy a ajustar. Ahora lo que suelo hacer es dar clic en Ventana y Mirador y abrir una segunda ventana gráfica aquí En mi segundo monitor, hecho puedo ir aquí y mover mi época y girarla sin afectar a la cámara. Lo que quiero que hagas aquí primero, para la cámara, trata de encontrar una linda vista que te guste. Haga clic en 11 para maximizar la vista a una vista agradable. Sólo voy a alejar esto. Intenta encontrar una bonita vista de la cámara. Siempre que lo hagas, sigue adelante y haz clic derecho en la cámara aquí. Vamos a transformar aquí y luego bloquear el movimiento. Ahora no puedes mover la cámara por error porque ahora también está bloqueada para la cámara. Voy a eliminar la relación de aspecto de restricción, aquí está. Así es ahora lo que parece, se ve genial. Ahora lo que quiero que hagas en el segundo punto de vista, siempre puedes ahora arrastrar a este tipo aquí y rotarlo así. A lo mejor lo que creas que te queda bien. Creo que algo como esto es bueno para mí. Ajusté el movimiento de la misma aquí, la ubicación y la rotación, y así sucesivamente. Cambié la configuración de la lente a 85 milímetros así que tengo más desenfoque Ahora para que se enfoque, hay que ir aquí a la configuración de Enfoque y luego clic en Dibujar Plano de Enfoque de Debo. Entonces solo cambia el número, hazlo más bajo hasta que veas un plano púrpura como este. Y luego solo asegúrate de que esté en el personaje o en lo que sea que estés tratando de enfocarte. Siempre que está en algo, ya sabes, no es borroso Voy a quitar el plano de depuración ahora, y así es como se ve. Ahora cuando esté satisfecho, voy a dejar esta cámara dando click aquí arriba. Deja de pilotar al actor, estoy fuera de él. Ahora que se ha creado el fondo, sigamos adelante y asegurémonos de que engendremos en esta vista Déjame subir aquí. El plano de nivel. Y lo que es el plano de nivel, es solo código específicamente para este nivel No se trasladará a otros niveles dentro de aquí. Lo que quiero que hagas es que selecciones la cámara aquí en el Outliner Y luego quiero que hagas click derecho, adelante y crees una referencia a esta cámara. Quiero que hagas clic derecho y busques objetivos de visualización. Simplemente puedes quitar esto. Tenemos que usar este llamado Set Target with Blend. Adelante y selecciona esa. Sigamos adelante y lo conectemos ahora para el objetivo. Digámoslo Controlador. Bajemos. Y ahora, la razón por la que tengo todo esto ahora es porque elimino esto. Si solo lo tomo de nuevo, recuerda marcarlo de nuevo, solo obtendrás las funciones relevantes. Seleccione éste. Obtenga el controlador de reproducción una vez más. Por cierto, antes no pudimos encontrar esto porque en realidad tienes que hacerlo, tienes que decir obtener controlador. Entonces desde este puedes arrastrar y decir Establecer vista objetivo con Blend. Y entonces se puede ver sin hacer esto. Si lo haces sin agarrarte de éste, tienes que quitar aquí el sensible al contexto El nuevo objetivo de visión es nuestra cámara. Debería funcionar simplemente bien. Acabo de hacer clic en jugar ahora, y solo tengo mi vista en lugar aleatorio. Hago clic en Reproducir. Se puede ver que ahora estamos dentro de este trasfondo. Ahora saltemos por encima en la siguiente lección, y te enseñaré a agregar sonidos a estos botones. 21. 2.12 Adición de Button SFX: En esta lección, te voy a enseñar rápidamente cómo crear clics de botón y así sucesivamente. Entonces tenemos sonidos para tus botones. Sigamos adelante en la carpeta de contenido. Hagamos clic derecho y sigamos adelante y hagamos una nueva carpeta. Yo ya hice esto. Tengo una carpeta llamada audio. Sólo tienes que seguir adelante y hacer uno dentro de aquí. Se puede hacer una carpeta llamada efectos de sonido. Ahora ya tengo muchos de ellos porque creé este juego. Pero déjame hacerlo aquí por ti para que pueda verlo. Ahora lo que he incluido para ti en esta carpeta de materiales del curso son los efectos de sonido. Adelante y ábrelo y verás algunos efectos de sonido de botón. Adelante y los trapos para que aquí les roben. Y entonces ves que estos son creados. Lo que quiero que hagas es hacer clic derecho sobre el botón, flotar, por ejemplo, y luego puedes crear una que. Haz lo mismo con la pulsación del botón, haz clic derecho y crea una que. Puedes llamarlo como quieras. Normalmente los llamo al principio para el sonido. Además, a este voy a llamar en un principio para el sonido. Aquí está. Ahora cuando haces clic en Reproducir, puedes escucharlos. Si quieres reducir el sonido, siempre puedes hacer click aquí, hacer doble clic sobre ellos. Y luego en el multiplicador de volumen, se puede reducir el sonido si son demasiado altos. Ya los hice. Voy a borrarlos porque ya los tengo dentro de aquí, El botón hoover, y el sonido es 0.15 para mí. Para la pulsación de botón, lo hice 0.4 Un modulador básicamente hace que el clic no suene igual cada vez que haces clic. Si quieres hacer uno, si acabo de borrar este de aquí, es como se ve para ti. Siempre puedes arrastrar y buscar modulador y seleccionarlo y luego conectarlo aquí. Y ahora tienes uno. Lo que suelo hacer en el pitch mínimo y máximo, escribo 0.91 0.1 y puedes probarlo. Ahora, cada vez que hagas clic en Reproducir, debería sonar diferente. Cada vez que hagas clic en Reproducir, escuchémoslo. No suenan completamente igual. Creo que le da como un efecto único. Vamos a guardar todo. Y lo que puedes hacer ahora es cerrarlo todo. Puedes volver a tu interfaz de usuario y abrir tu menú principal. Dentro de aquí, hagamos clic en uno de los botones. Y ve aquí abajo. Se puede ver el sonido prensado. Adelante y selecciona tu sonido. Sólo voy a buscar botón. Aquí está el botón. Esta es la pulsación de botón presionada y la otra es botón hover Este funciona. Ahora, si quieres cambiar varios botones a la vez, siempre puedes hacer clic en uno. Mantenga el control, seleccione también el segundo botón. Siempre puedes hacerlo más rápido de esta manera. El primero se presiona y el segundo está flotando. Haga clic en Compilar. Ahora cuando hago clic en Reproducir, se puede ver que tienen sonido. Y cuando hago clic en uno de ellos, también tienen un sonido. Todo está funcionando a la perfección. Y sigamos adelante. 22. 3.01 Creación de un widget para crear servidor: Ahora estamos listos para crear el widgit Create Serva. Sigamos aquí en la interfaz de usuario, abramos el menú principal y hagamos clic derecho, vayamos a Interfaz de usuario y creemos un plano de widget Ahora para éste, lo vamos a llamar Crear Serva. Por ahora, en realidad no necesitamos hacer nada dentro de aquí. Pero recuerda que tenemos que ir a planos. Abre el menú principal y ve al control de playout para el menú principal Porque dentro de aquí, si recuerdas, creamos el widget show hide. En el widget show. Entremos aquí. Ahora, al igual que el menú principal, puedes hacerlo tú mismo para el Crear Serva si quieres algo de práctica. Si no te acuerdas, sigamos adelante y hagámoslo juntos. Vamos a hacer clic derecho aquí. Creas widgets. Adelante y seleccionado. Seleccionemos nuestro widget Crear Serva que acabamos de crear. Haga clic con el botón derecho. Promueve esto a una variable y llámalo crear sueros. Golpeemos desde aquí y digamos agregar a la vista, Así como esto. Ahora, igual que antes, voy a tomar esta variable, voy a hacer click derecho y convertirla un get validado porque realmente no necesitamos crear el Widgit cada vez que abrimos create sera widgit, solo queremos crearlo cuando no sea válido la primera vez , la segunda vez que la abras, va a ser Solo queremos agregarlo al Viewpoardt antes recordar conectarlo al create sera aquí y solo hacer algo de espacio Ahora estamos listos para ir a la función Hyde widgit. Adelante, abre esto. Arrastre el create sera widgit aquí. Haga clic derecho, convierta a validado, conéctese. Recuerda de nuevo, quitar del padre significa que lo eliminas de la ventanilla gráfica Retirar de los padres así como esto. Armarlos, haz algo de espacio aquí. Siempre es agradable decir organizado. Adelante y guarda todo. Ahora debería funcionar. Si haces clic en Reproducir y haces clic en Crear Servir, no pasa nada. Esto se debe a que nuestro widget está vacío. Además, asegurémonos de que lo codificamos correctamente. Si voy al menú principal aquí, solo quiero recordar si en realidad lo hice correctamente. Básicamente puedes simplemente hacer clic en el botón. Puedes desplazarte hacia abajo y puedes hacer click sobre esto aquí que creamos anteriormente. Este botón haga clic. Golpeamos el menú principal y mostramos los sueros Create. Debería funcionar. Ahora bien, si abro el create sera, solo necesitamos agregar algo dentro de aquí para que podamos realmente ver si está funcionando. Si solo busco imagen y la arrastro, cambiemos el tinte a algo mejor para los ojos para que no nos ceguemos Complemente esto abajo. Ahora si hago clic en Play y lo pruebo. Ahora da clic en Crear Sera. Me sale este widget y en realidad está funcionando. Nos metemos dentro de aquí. Ahora vamos a darle click aquí. Eliminemos la imagen. Por ahora, compilar, guardar todo. Pasemos a la siguiente lección donde diseñamos este widget. 23. 3.02 Diseño del widget de Create Server: Bien, bienvenido aquí. En esta lección, vamos a diseñar el widget create server. Ahora esta va a ser larga, tal vez solo mantente enfocado, mantente interesado. Ojalá, a veces la interfaz de usuario puede ser muy desalentadora. Vamos a seguir adelante y hacerlo. Lo que quiero diseñar, solo quiero mostrarte lo que vamos a hacer porque siempre es agradable ver lo que vamos a hacer. Es esta interfaz de usuario aquí, Crear servidor. Tenemos el nombre del servidor, tenemos el mapa, cantidad de slots para el servidor, el idioma para el servidor. Por ejemplo, si es inglés, alemán y así sucesivamente. La privacidad si es servidor público o terrestre. Y luego tenemos el botón Crear y el botón Atrás. Esto es lo que estamos tratando de hacer. Siempre es agradable verlo porque antes de empezar a hacer el diseño, siempre visualiza lo que intentas hacer. Y es mucho más fácil usar cajas horizontales, cajas verticales, etc. Vamos a seguir adelante y echarle un vistazo para el tamaño de la pantalla. Solo quiero asegurarme de que lo estoy diseñando para laptops genéricas. Vamos a compilar ahora lo primero, nuevamente, para UI, tenemos que recordar agregar un panel de canvas antes de hacer nada. Ya que tengo antecedentes y algunas cosas encima, quiero empezar. Empecemos primero con una caja vertical, porque esto es básicamente lo que es. Empecemos primero con una superposición. Una superposición es básicamente algo superpuesto uno encima del otro Primero, quiero una imagen de fondo. Sigamos adelante y arrastremos esto a la superposición. Ahora se puede ver la imagen es sólo aquí. Así que hago clic en la superposición y llene esta superposición aquí. También para la imagen, la lleno horizontal y verticalmente. Así como esto para la imagen. Veamos aquí. Vamos a la interfaz de usuario y vamos a las imágenes que importamos. Creo que voy a usar este panel aquí. Yo sólo puedo arrastrar este panel azul hacia aquí, igual que antes. Voy a cambiar esto en una caja y cambiarlo a un margen de 0.5 para que no esté borroso así ahora Ya se ve mucho mejor. No me va a preocupar por el tamaño de esto por ahora, realmente no importa. Pero lo que voy a hacer es anclarlo a la mitad. Al hacer clic en la caja vertical, anclarla al centro con la alineación de 0.50 0.5 Así que está en el medio Además, recuerda la posición 00 en la x e y, por lo que queda perfectamente en el medio así. Sigamos aquí. Ahora tenemos esta superposición. Dentro de la superposición, recuerda que tenemos todos estos elementos aquí. Todos estos elementos están alineados verticalmente. Sigamos adelante y agreguemos una caja vertical dentro de esta superposición. Ahora en esta superposición, en la superposición tenemos una caja vertical. Como puedes ver aquí, es muy pequeña. Lo que quiero hacer para no hacerlo pequeño es de nuevo, lo alineamos horizontal y verticalmente. Llena todo el asunto. Yo sólo quiero alejarlo de los bordes. Lo que voy a hacer, te voy a dar un poco de relleno porque ahora cuando añadimos algo de texto, por ejemplo, puedes ver si agrego texto al cuadro vertical, se agrega aquí al borde. Y no quiero que eso haga clic en el cuadro vertical, voy a aquí a la izquierda. A lo mejor darle algo como 50, algo así. A la cima, le voy a dar 35 pixeles. 50 unidades hasta aquí, y 35 al fondo también. Algo como esto. Es aquí en el medio cuando le agrego elementos. Ahora para este texto, voy a darle click sobre él y voy a alinearlo en el medio horizontalmente. También, aquí abajo para la justificación, voy a ponerla a la mitad. Ahora para éste sólo voy a decir crear Servo. De hecho, sigamos adelante y copiemos desde el menú principal, porque realmente no necesitamos crear todo desde cero. Voy a copiar esto en realidad desde el menú principal, Control C, y luego controlar V encima de esta caja vertical. Voy a eliminar este de aquí. Lo que voy a hacer es que sea 22 en la talla así que sea mucho más grande, luciendo algo así, porque es un título. En cuanto a la sombra, creo que está bien. Todo se ve bien. Ahora, sigamos adelante y continuemos. Ahora necesitamos un texto y una caja de entrada para que podamos volver a escribir el Seroname Voy a dar click aquí y copiar esto y pegarlo encima de la caja vertical. Voy a dar click sobre este texto Para el tamaño de este, voy a hacer 18. Voy a hacer la sombra del set uno en lugar de dos. Agreguemos un espacio, así tenemos espacio entre estos dos. Busca un espaciador, lo trapea y edita entre esos dos textos Para el espacio en la y. sólo voy a escribir 25 así que tenemos algo de espacio aquí. Ahora, haciendo clic en este texto, quiero que lo alinearás a la izquierda en su lugar. Nuevamente, la justificación. Asegúrate de que quede. Este, asegúrate de que esté en el medio. Ahora sigamos adelante y agreguemos un cuadro de entrada. Si buscas texto, ves este llamado cuadro de texto. Sigamos adelante y agréguelo a la caja vertical. Es aquí abajo. Ahora para éste, voy a dar click sobre él. Sigamos adelante y diseñarlo. Imagen de fondo normal. Ahora bajemos aquí en la interfaz de usuario y veamos qué podemos usar para ello. Si voy a imágenes, creo que voy a usar esta barra de entrada azul en las imágenes. Para éste. Yendo al crear sera por aquí, voy a hacer click y arrastrarlo hacia aquí por el margen, para la caja, voy a decir 0.5 igual que antes. Voy a copiar esta imagen de fondo. Mantenga presionada la tecla Mayús, haga clic derecho y luego mantenga presionada la tecla Mayús hacia la izquierda en ambos aquí. Sigamos adelante y cambiar el diez está bien. En realidad, cambiemos éste. Si quieres que el hover sea de otro color, siempre puedes hacer esta barra de entrada flotando en el enfocado Puedes hacer este enfocado que yo he creado. Siempre que coloques el mouse sobre él, debería hacer algo Si hago clic en Plate Create, pruébalo, puedes ver que cambia el color, así tienes algún efecto. Cuando haces clic en él, está enfocado. Se ve así, ¿verdad? Ya se ve bien. Ahora, sigamos adelante y dale un poco de relleno porque es demasiado pequeño. Y también, en realidad vamos a darle un texto aquí arriba para que podamos ver cómo se ve con el texto también. Por ejemplo, puedo decir mi servidor, ahora así es como se ve. Obviamente, no se ve muy bien. Tenemos que cambiarlo. De hecho cambiemos el texto. Antes de estilizar esto, voy al frente para éste Voy a usar medio rubic para el tamaño del texto. Creo que 16 debería estar bien para el color del texto. Voy a quitar esta herencia y hacerla simplemente blanca aquí así No creo que tengamos que hacer más cosas. Cambiemos el relleno aquí arriba. Ahora, para el acolchado, de nuevo, es izquierda, derecha, de arriba hacia abajo. Ahora para arriba hacia abajo, creo que voy a sumar 20 por 20 así para la izquierda y la derecha. Voy a añadir un poco menos, tal vez 16 por 16. Parece algo así como este de aquí siempre puedes hacerlo más pequeño , regístrate a lo que quieras. Pero creo que esto ya se ve bien. Solo probemos en juego y veamos cómo se ve. Si hago clic aquí, puedo escribir Looking Good. Y si escribo un texto largo, así es como se ve. Se ve genial ya. Vamos a darle algo de espacio desde aquí arriba. El relleno ya es cuatro en realidad en la parte inferior. Digamos sólo cinco. Yo sólo quiero darle un relleno más para que tengamos algo de espacio entre estos dos. Ahora estamos listos para hacer el siguiente, que es el mapa. Sigamos adelante y solo copiemos este texto aquí. Control C, Control V en la caja vertical. Voy a llamar a esto un mapa. Vamos a agregar un espaciador una vez más entre estos dos. Voy a controlar D para duplicar este espaciador. Arrástralo hacia abajo sobre este texto. Tenemos algo de espacio aquí arriba. Sólo voy a hacerlo menos. En su lugar voy a hacer 20. Ahora viene la parte más difícil, porque ahora vamos a usar un cuadro combinado, que es un menú desplegable. Pero es un poco más difícil estilizar este. Vamos a seguir adelante y hacer esto, pero va a ser un poco más difícil que los botones y la entrada. Ahora bien, para este, tenemos que darle algunas opciones por defecto para los mapas. Puedes hacer lo que quieras. Solo voy a agregar algunos mapas de contraataque. Tenemos dos. Tenemos un mapa llamado Inferno, tenemos un mapa llamado Mirage, y tenemos un mapa llamado Office. Tengo estos dos. Y luego hay que darle una opción seleccionada. Predeterminado, seleccionado. Hagamos Inferno Este es el seleccionado. Ahora tienes que hacer clic en Compilar antes de que te muestre nada. Recuerda presionar y compilar o el relleno. Aún no lo sé porque en realidad bajemos en este estilo y vamos a estilizarlo primero antes de hacer un poco de relleno en el estilo de botón combo estilo botón, luego normal Empecemos con éste. Puedes ver aquí hay muchas opciones para hacer. Es un poco más complejo. Empecemos por el normal aquí. Bajemos aquí a Buttons. Y voy a usar este que se llama Button Square azul. Siempre es agradable usar un cuadrado para estos porque hay un fondo que no puedes quitar. Si es redondeado como hubiera un fondo pequeño que aparece, será mucho más fácil para ti usar uno cuadrado. Sigamos adelante y hagamos eso. Vamos a arrastrar esto hasta aquí. Hagamos esto aquí en el sorteo ya que lo voy a poner como cuadro igual antes con el margen de 0.5 El tinte sea blanco. Usamos nuestro propio botón normal look ahora para el relleno. Vamos a darle un poco de relleno aquí arriba en el relleno de contenido, creo que voy a hacer este por la izquierda y derecha , a lo mejor voy a darle seis por seis. Vamos a compilar y ver cómo se ve para arriba y hacia abajo. Probemos 16 por 16 y veamos cómo se ve. Así es como se ve. Ahora tengo que darle un poco más en el fondo porque se ve así empujándolo más al fondo. Voy a quitar algo de la parte superior también, en vez de 16, tal vez. Voy a escribir 12 aquí. Pila. Creo que esto se ve bien. Ahora lo que podemos hacer aquí, vamos a estilizar el texto para que podamos ver cómo se ve Antes de hacer eso, vamos a copiar esto en realidad. Vamos a copiar esta normal al hoverd. Em prensado. Vamos a hacer clic aquí. Ahora para la Emperatriz Hoverd, realidad no tenemos, no tengo más botones De hecho, vamos a usar el mismo para todos ellos aquí. Ahora por la diversión, sigamos adelante y cambiemos el fondo. Antes de que hagamos algo, el fondo está aquí abajo. Cambiemos éste. Voy a cambiarlo igual que antes. A medio rubiano. El tamaño es 16 y el color es blanco Así. Quizá necesitemos un poco más de relleno porque está demasiado cerca. Pero primero, sigamos adelante y cambiemos esta flecha. Si bajo y encuentro la flecha, este es el relleno del menú, puedes ver que es un poco más confuso. Para cambiar esta imagen de una flecha hacia abajo, continúe y haga clic en esta. Vamos a cambiarlo ahora. Ya tengo uno en las imágenes. Tenemos una flecha aquí, así que puedes hacer clic y arrastrar esta adentro, se ajusta al color para esta flecha. Voy a dar click en el tamaño de la imagen y hacerla un poco más grande. Voy a hacerla 14 por 14 y compilando. También le voy a dar un poco Pdding aquí porque está demasiado cerca a la izquierda y a la derecha Voy a darle 12 por 12 para arriba y hacia abajo. Vamos a darte algo de cuatro por cuatro. Vamos a compilar. Así es como se ve, luciendo mucho mejor que antes. Ahora lo que tenemos que hacer es cambiar el propio menú porque puedes ver un cinco click en play y dar click en este menú. Tenemos algún fondo oscuro y el texto también está equivocado. También está oscuro. Sigamos adelante y cambiemos eso. Haga clic en él. Ahora para el texto oscuro, volvamos y encontremos dónde está. Está dentro del estilo de artículo tal vez, estilo de artículo. Si vas dentro de aquí tenemos, hagámoslo más grande para que pueda ver realmente lo que dice. Tenemos el pincel de fondo par y tenemos el pincel de fondo de fila padre y el pincel de fondo de fila impar. Sigamos adelante y hagamos clic en ellos. El oddro, por ejemplo, quiero que cambies el sorteo como una caja en su lugar, luego 0.5 en el margen El tinte aquí, en vez de ser blanco, lo puedes ver cuando hice esto. Ahora si hago clic en Reproducir, el fondo va a ser blanco. Para éste, para el impar. En lugar de hacer blanco, vamos a darle un clic. Da click en el seleccionador de color y selecciona el fondo para el propio borde, va a colorearlo con el mismo color Si hago clic en jugar ahora lo puedes ver abajo por la parte inferior. va a usar el mismo color Aquí va a usar el mismo color, que es lo que queremos. No te preocupes por lo que parece hasta ahora, vamos a cambiar eso ahora. Solo quiero copiar esta configuración y pegarla al pincel de fila par y al pincel fila de fondo padre así. Vamos a hacer clic en Reproducir. Mira cómo se ve ahora. Se ve mucho mejor que antes. Ahora agreguemos o cambiemos el color del texto a blanco para el color seleccionado. También voy a cambiar de blanco porque vamos a ver el seleccionado a través de estos aquí. Se puede ver que el seleccionado es azul así. Quiero cambiar eso a este color aquí. Creo que se ajusta mucho mejor para el cepillo activo flotado. Voy a seleccionar el color aquí abajo. En realidad, sólo voy a hacerlo en realidad, no, no este color porque es el color aquí. Lo que quiero hacer es querer hacer clic aquí, elegir el seleccionador de color Y escoge este color aquí abajo. Es el color oscuro, el mismo para el pincel activo. Voy a copiar este tinte y pegarlo aquí abajo. Hago clic en Reproducir. Así es como se ve, se ve mucho mejor. Voy a quitar esta línea naranja que va por aquí arriba. Para esta línea, sólo voy a usar el mismo color que aquí abajo. Bien, bien. Ahora se ve un poco mejor, pero como puedes ver, en realidad no se ve demasiado bien. Al igual que el cuadrado se ve muy raro. Sigamos adelante y arreglemos eso. La forma en que arreglamos esto, si vamos hasta aquí y tenemos algo llamado un cepillo menudo. Si haces click abajo en este, sé que este video se está haciendo demasiado largo. Pero solo quiero hacer esto de la manera correcta aquí. En el pincel Met, necesito que lo cambies. Solo volvamos a los botones y cambiémoslo a éste que usábamos antes. Adelante y arrástralo ya mismo. El margen para éste, voy a dar un 0.5 Y también para el menú de embarque rumbo aquí por la izquierda, voy a darle 12, luego 28 a la cima. Ahora, lo probé antes, y creo que se veía bien. 12 a izquierda y derecha, y 28. 32 aquí. Yo sólo puedo compilar y se puede ver cómo se ve. Si hago clic en jugar ahora puedes ver cómo se ve. Ahora, le dimos unas palmaditas así, ahora lo estamos viendo como aquí Ahora bien, para el color hover, creo que voy a cambiar ese color hova como puedo ver aquí, porque no quiero que esté oscuro Se ve mucho mejor que antes. Sigamos adelante y arreglemos el color del hover. Si voy aquí abajo, usemos realmente el color Daca. Creo que eso se verá mejor. Voy a copiarlo desde aquí arriba. Aquí es donde lo usamos aquí para el margen. De hecho, solo copiemos el color por ahora. Realmente no necesito nada más para el hovert. Voy a pegarlo aquí. Este también. Voy a cambiar a caja 0.5 pegando el tinte, y para la fila par también Voy a pegarlo aquí abajo, Compilar, dar click en play. Ahora bien, así es como se ve. Creo que se ve mucho mejor. Ahora, aquí en el encabezamiento de la fila del menú, voy a darle aquí a la izquierda, 12.12 a la derecha, cuatro a arriba y abajo Y voy a compilar y dar click en Reproducir. Lo que esto hace es que le da cierto espacio entre estos elementos. Ahora en el relleno de fila de menú, le damos algo de espacio a los elementos. Para que veas que están un poco más alejados el uno del otro. Creo que ya terminamos. Pero antes de hacer esto, quiero darle un poco más de espacio a este texto aquí. En vez de 612 aquí, voy a dar tal vez más cuatro en la parte inferior, más cuatro en la parte superior. Vamos ah, y compilar y ver cómo se ve. Así como esto, en realidad una B más cuatro otra vez y más cuatro nuevamente compilan a izquierda y derecha. Le voy a dar un poco más. Probemos más cuatro más cuatro aquí. Compilarlo parece. Creo que se ve un poco mejor. Vamos a darle un poco más. Vamos a darle 12 por 12. Compila, ¿bien? Creo que esto se ve mucho mejor. Sigamos adelante y trabajemos con éste. Vamos a hacer clic en Reproducir y asegurarnos de que no tenemos ninguna caja con esta por otra. Todo se ve bien ahora. Bien, esto es lo que vamos a usar ahora. Necesitamos uno para los mapas, esto es mucho más fácil porque ahora vamos a copiar y pegar igual que antes. Recuerda que los tenemos en una caja horizontal. Sigamos adelante y busquemos la horizontal. Adelante y pegarlo en la caja vertical. Ahora en vez de esta horizontal, voy a arrastrar adentro, tenemos que arrastrar en estos dos. Pero antes de que podamos hacer eso, vamos a envolverlos en una caja vertical. Aquí no estropeamos su alineación vertical. Sigamos adelante y haga clic aquí. Arrástralo a la caja vertical. Para este cuadro vertical, voy a dar click en Control D. Lo duplicamos, ya que queríamos llenar toda el área, vamos a dar click en el primero. En realidad, vamos a hacer clic en el cuadro horizontal. Asegúrate de que sea así. Para el cuadro vertical, haga clic en llenar. Para el cuadro vertical dos, haga clic en llenar también. Duplicemos este espaciador y lo peguemos entre esos. Déjame solo escribir uno en la Y, pero en la X tenemos que darle algo de espacio. Ahora para la X, sólo le voy a dar un espacio de 25. Cambiemos este texto a slots. Cantidad de ranuras para el servidor de aquí. Vamos a darle algunas opciones por defecto. Digamos dos jugadores, cuatro jugadores, ocho jugadores. A lo mejor 16 jugadores. Vamos a darle uno más. Digamos 32 jugadores. Ahora la opción seleccionada por defecto sería tal vez como cuatro jugadores y compilar. Y lo verás aquí. adelante ahora y dupliquemos este cuadro horizontal, haciendo clic en el control D para duplicarlo de nuevo, voy a agregar un espaciador entre ellos, duplicando este espaciador Añadiéndola aquí abajo. Para el siguiente aquí, vamos a decir lenguaje. Para el último, vamos a decir privacidad. Ahora, para el idioma, solo elige lo que quieras. Por ejemplo, el inglés sería el principal. También, para la opción seleccionada, voy a decir inglés. Esta es la opción predeterminada. El segundo podría ser alemán, el tercero podría ser chino. El último podría ser algo así como el francés. Siempre puedes darle tantos idiomas como quieras, pero esto está bien por ahora. Por la privacidad, solo quiero dos opciones. Quiero público o si es un servidor terrestre, adelante y compile. Y por supuesto tenemos que seleccionar una opción por defecto que sea pública. Voy a quitar estas opciones que no necesitamos. Adelante y compila. Aquí se ve genial. Vamos a hacer clic en Reproducir. Solo probándolo para ver si todo es como se supone que debe. Todo se ve bien. Ahora para la última parte, los botones, vamos a seguir adelante y duplicarlo desde el menú principal. Voy a duplicar uno de ellos. Por ejemplo, este duplica el control de superposición C e ir al servidor Crear. Y nuevamente, en la caja vertical control V, voy a controlar V una vez más, porque necesitamos dos botones. Y haciendo clic en la caja vertical, vamos a hacerla más grande para que podamos ver lo que estamos haciendo. Al hacer clic en el cuadro vertical, el primero, se ve un poco raro como puedes ver aquí. Ahora para el relleno, sólo voy a decir cero, el overlay. Y el segundo relleno de superposición, voy a decir cero. Se puede ver que están uno encima del otro. Esto se debe a que en realidad pegué la segunda superposición dentro de la primera superposición Voy a arrastrarlo a la caja vertical, y ahora están uno encima del otro. La razón por la que este botón está presionando este otro botón hacia abajo es porque el primero es un relleno, el segundo overlay no es un relleno. Sigamos adelante y hagamos clic en Rellenar. Entonces llenan tanto espacio como por igual. Ahora agreguemos también un espaciador entre ellos. Pero antes de hacer eso, agreguemos un espaciador aquí arriba, duplicando este espaciador Eso, encima de estas dos superposiciones, tenemos algo de espacio aquí para estas dos superposiciones Sólo voy a seleccionar los dos aquí arriba para el relleno hacia arriba y hacia abajo. De hecho, vamos a darle un seis aquí y compilar. Cambiemos el texto por el primero, vamos a decir Crear Serva. Para el segundo vamos a decir atrás porque necesitamos un botón para volver al menú principal para este, voy a cambiar de nuevo el color a T cuadrado verde azulado Siempre puedes copiar esto. Péguelo aquí y aquí. Y luego se puede cambiar el primero a acaparar y el segundo a pretenres Ahora el segundo para la espalda, voy a cambiar esto a uno gris cuadrado, gris, copiar y pegar en todos ellos así. Necesito copiar este para el normal, no sé por qué no actualicé. Vamos a compilar esto. Cambiemos el segundo por cómo se presiona uno este y este Howard. Bien. Nuevamente, cambia los colores aquí también, el color del contorno. Haga clic en él. Cólico. Voy a seleccionar el color de contorno más oscuro Haga clic en él. Nuevamente, copia Pegado al color de la sombra De vuelta aquí, da clic en él. Haz clic en Selección de color, elige el color más oscuro de amapola, el color, y pegarlo a la sombra también Ahora se ve bien. Ahora puedes intentar cambiar el tamaño de la caja vertical como desees. Porque puedes ver cuando cambias el tamaño de la caja vertical, también cambias el tamaño de los botones Simplemente redimensionarlo a qué, cuando crees que los botones se ven bien Y pienso así , entonces puedes redimensionarlo en esta dirección también, lo que creas se ve bien Yo sólo voy con algo como esto. Aquí también damos algunos a estos menús desplegables. Bien, lo que puedes hacer es hacer clic en el cuadro vertical y centrarlo, posicionar y0x e Y cero Puedes seguir adelante y hacer clic en Compilar. Ahora haciendo clic en el primer botón, asegúrate de tener algunos sonidos también presionados Sound Overt Sound y el otro también Recuerda, para ambos textos, asegúrate de que se dice que la visibilidad no golpea comprobable, para que no bloquee nuestros clics del mouse Creo que no nos olvidamos de nada. Vamos a guardarlo todo. Haga clic en reproducir. Vamos a probarlo. Ahora estoy aquí. Puedo escribir mi nombre de ser. Puedo dar click sobre ellos aquí, lo que sea. Servidor atrás aquí. Veo que la prensa trasera no está funcionando. Solo para arreglar esto, da clic aquí. Y puedo ver que está ahí. Pero tal vez algo salió mal simplemente cambiando aquí. A lo mejor algo está mal con el botón en sí. Al igual que el arte en sí, creo que algo anda mal con el arte en sí y no realmente este que hicimos todo correcto. Bien, vamos a guardar todo ahora. Continuemos con la siguiente lección, donde comenzamos a programar este gran widget de servidor. 24. 3.03 Cómo obtener el nombre del servidor y el mapa seleccionado: Ahora para este menú que creamos, sigamos adelante y empecemos a codificarlo. Para lo primero, quiero obtener el nombre del servidor que creamos aquí. Primero hagamos clic en este cuadro de entrada. Tenemos que darle un texto aquí, porque en la gráfica realmente no podemos usarlo. Aquí no lo agregamos como una variable, configurándolo en es variable. Sólo dale un nombre aquí. Voy a llamarlo entrada para un cuadro de entrada, voy a llamarlo nombre de servidor y compilar. Ahora dentro de la gráfica se puede ver. Sólo voy a eliminarlos todos aquí, dando clic en el cuadro de entrada. Y luego puedes dar click aquí para hacer un evento sobre texto cambiado. Ahora esto es lo que sea que el jugador esté ingresando dentro de aquí Sólo voy a tomar esto y decir a la cadena. Adelante y selecciónelo. Ahora bien, si no sabes qué es una cadena y es un texto, estas son básicamente variables de texto. Si hago clic en más, en la variable aquí y selecciono el tipo de cadena, y hago una nueva y selecciono el tipo de texto. Puedes ver aquí si compilo una cadena, es solo algo de texto aquí mismo. La variable de texto también es una oración. Aquí puedo escribir ambos de es un texto. ¿Cuál es realmente la diferencia? La diferencia es que un texto puede traducirse a otros idiomas. Por ejemplo, si quieres traducir tu juego al alemán o al idioma que quieras, japonés, ruso, lo que quieras, tienes que usar una variable de texto. Si usas una cadena, no puedes traducir tu juego. Sin embargo, una cadena usa menos memoria. Siempre es mejor usar una cadena si el texto que estás escribiendo no va a ser traducido, solo una descripción aquí. Pero si quieres saber mucho más al respecto, solo tienes que seguir adelante de nuevo a Game instruct.com tengo muchos cursos sobre esto que puedes echar un vistazo para este Primero, arrastremos desde aquí o simplemente haga clic derecho y promocionemos esto a una variable. Voy a llamarlo nombre de servidor. Sea lo que sea que el jugador esté escribiendo aquí, lo voy a enchufar a esta variable. Almacenamos esta información. La razón por la que lo convertí en una cadena primero, y no solo clic derecho aquí y convertí esto en una variable es porque una cadena la puedes modificar mucho más. Arrastras desde aquí y cadena derecha, puedes ver que puedes dividir el texto. Se puede comprobar si empieza con algo. Simplemente se puede hacer mucho con él. Puedes recortarlo, hacerlo en mayúscula, minúscula. En el futuro, vamos a comprobar si el jugador está escribiendo palabras cuadradas en el nombre del servidor. Y siempre podemos decirle al jugador, no se puede crear un servidor si ha escrito esta palabra en el nombre de su servidor. Evitamos que los jugadores escriban la palabra, por ejemplo, o algo malo. Y en realidad podemos hacer eso usando una cadena y podemos verificarlo. Además, podemos comprobar si el jugador realmente ha escrito algo y no está vacío. Porque si está vacío, no deberían poder crear el Serva, estamos haciendo cheques con éste. Ahora vamos a continuar. Lo siguiente es que vamos a revisar el mapa aquí, lo que sea que hayan elegido haciendo clic en él. Voy a llamarlo CB por cuadro combinado. Simplemente llamemos a este mapa o mapa de juego. Como quiera llamarlo es variable. Vamos a tomarlo aquí. No lo saquen. En realidad haga clic en él y haga clic en Cambio de selección. Ahora para esta variable, este es el ítem seleccionado que han seleccionado. Nuevamente, pueden seleccionar todos estos artículos que has enumerado aquí. Ahora lo que quiero hacer, solo para que sea un poco mejor, quiero tener los mapas del juego dentro de una enumeración Nuevamente, recuerde, una enumeración es donde quiera que haya hecho este texto o esta lista aquí Así que sigamos adelante y hagamos una nueva lista. Volvamos a los planos. Vamos a abrir la carpeta enos. Recuerda, hicimos una lista de widgets del menú principal. Nuevamente, una enumeración es sólo una lista. Vamos a los planos, hagamos una enumeración. Llamemos a esto mapas de un juego. Sólo voy a enumerar todos los mapas del juego que podamos jugar. Haciendo click aquí arriba un par de veces. primero fueron apenas dos, el segundo fue Inferno, el tercero fue Mirage, y el último es Office Bien, sal y guarda esta enumeración. Ahora lo que podemos hacer dentro de aquí es que podemos arrastrar desde aquí y decir switch on string. Encender cadena es que básicamente podemos decir qué código reproducir si solo haces clic en más, solo hagámoslo. Entonces lo puedes ver si agrego algunos pines aquí, por ejemplo, tres de ellos. Hago click aquí para el primero, nuevamente, voy a escribir aquí los nombres de los mapas, Dos, Inferno, y Mirage, si puedo escribirlo correctamente El último es de oficina. Ya tenemos estos mapas. Dependiendo de lo que sea el interruptor, igual que lo que te dije antes aquí, en realidad lo hicimos dentro del show hide. Si vuelvo, lo hicimos aquí, encendemos la enumeración. Esta vez estamos encendiendo una cadena. Si el jugador ha seleccionado dos y tienes que escribirlos exactamente como los escribiste dentro de aquí, para que pueda reconocerlos. Si el jugador selecciona, por ejemplo, Inferno va a simplemente jugar este código aquí Lo que vamos a hacer es que vamos a establecer la selección de enumeración Ahora para establecer el mapa, es mejor hacerlo dentro de la instancia del juego y no dentro de aquí, porque necesitamos usarlo para crear el servidor. Volvamos aquí. Trabajemos con la instancia del juego y echemos un vistazo a lo que es aquí. Hagamos clic derecho en la carpeta de planos. Ir a clase de planos. No hay realmente algo que se llame una instancia de juego aquí. Tienes que hacer click en todas las clases y tienes que buscar por ejemplo de juego. Ahora lo que es una instancia de juego, es una instancia que se ejecuta en el juego todo el tiempo. Si te unes a los sueros, si apagas el Serva, si estás en el menú principal o si estás en juego, siempre está funcionando. Nunca apaga ni borra nada. Siempre que tengas tu juego funcionando, este se ejecutará todo el tiempo y solo podrás tener una instancia de juego en el juego. Lo que estamos haciendo aquí es en la instancia del juego, normalmente haces el código para crear un Serva. Al hacerlo, te aseguras de no eliminar toda la información cada vez que crees el lobby o cambies de lobby o sales del lobby y así sucesivamente. Por lo que nos aseguramos de que la información se haga correctamente sin interrupción porque de nuevo, la instancia del juego nunca se apagará. Sigamos adelante y creemos uno. Vamos a darle click aquí, seleccionar, llamarlo GI por ejemplo de juego, voy a llamarlo el nombre del juego que es Counter Strike. Básicamente, solo tenemos una instancia de juego. Todo el juego que creamos no lo abrió dentro de aquí. Lo que quiero hacer es simplemente crear una variable por ahora. Voy a llamarlo mapa de juego seleccionado. Voy a usarlo más tarde para mi mapa, así que no te preocupes por ello. Pero para el tipo de variable, quiero seleccionar mapas de juego, la enumeración que creamos, Adelante y compilar ahora lo que podemos hacer en el servidor create aquí, solo vamos a obtener una referencia al modo de juego o instancia de juego, porque necesitamos la variable aquí Recuerda, al igual que antes, necesitamos crear una interfaz de blueprint volver a obtener la referencia, para la interfaz de blueprint, puedes intentar hacerlo tú mismo para Si no lo recuerdas, sigamos adelante y hagámoslo muy rápido. Aquí, haga clic derecho, haga un blueprint, interfaz de blueprint. Vamos a llamarlo instancia de juego porque esto es a lo que estamos tratando de hacer referencia. Llamemos a esta función obtener referencia de instancia de juego. adelante y agreguemos aquí una entrada o una salida y busquemos lo que sea a lo que estamos tratando de hacer referencia. Estoy tratando de hacer referencia a mi instancia de juego. Vamos a llamarlo instancia de juego y compilar. Ahora volvamos a la última configuración de la instancia del juego. Sigamos adelante y agreguemos esta interfaz que acabamos crear llamada compilación de instancias de juego. Y ahora ves la función que acabas de crear. Justo como antes. Tenemos que definir esta variable. Ya que estamos en la instancia del juego, voy a escribir self como referencia para que sepa que esta variable es esta instancia de juego y compilar. Ahora volvamos al Create Serva. Ahora podemos usarlo. Vamos a crear esta variable en el evento start, play. Vamos a hacer clic derecho aquí. Como estamos en UI, no se llama start play, se llama event construct. Vamos a darle clic. Ahora tengo que decir Get Game instance, y es este bajo game Game instance. Ahora tenemos la instancia de juego predeterminada, pero tengo que decirle que necesitamos usar nuestra propia instancia de juego. Ahora podemos usar esta. Obtener referencia de instancia de juego que acabamos de crear aquí. Bastante conectado. Ahora vamos a dar clic derecho a promover esta variable S. Y sólo voy a llamar a esta instancia de juego variable. Pero ahora tenemos la variable de instancia de juego. Lo que podemos hacer aquí abajo, podemos tomar esta instancia de juego y dirigir desde aquí. Y ahora podemos elegir esta variable de mapa de juego seleccionada que creamos. En realidad no quiero conseguirlo. Quiero configurarlo. Quiero dirigir desde aquí y decir establecer mapa de juego seleccionado aquí. Ahora cuando es polvo dos, lo estamos poniendo en polvo dos. Sólo voy a copiar esto un par de veces aquí para que pueda usarlo. Se puede conectar esto a estos. Tienen objetivos para el Infierno. Vamos a cambiarlo a Inferno, al Mirage, lo vamos a convertir a Mirage, y para la Oficina, lo vamos a convertir a Office adelante y arrastrarlos Ahora dependiendo de qué opción seleccionen del menú desplegable, va a establecer la variable que viene de la instancia del juego a cualquiera de dos Inferno, Mirage en Office Y luego podremos usarlo más adelante cuando alojemos o creamos el juego. Tenemos esta información dentro de aquí. Sigamos adelante y guardemos todo. Pasemos al siguiente. 25. 3.04 Cómo hacer tragamonedas, idioma y privacidad: Ahora sigamos adelante y continuemos. Volvamos al gran servidor widgit dentro de aquí. Voy a volver a ir a la gráfica. Ahora lo que queremos hacer es obtener la cantidad de slots. Volvamos a la gráfica. Y aquí la cantidad de slots es básicamente ésta. Nos dejarán renombrarlo y llamarlo cuadro combinado B, tal como hicimos para los demás. Para este lo voy a llamar cantidad de slots. También renombrar los otros ahora que estamos editando. El siguiente es el lenguaje B o el lenguaje Servo, puedes llamarlo también para que sepamos lo que es. El último es la privacidad CB. Ahora tenemos a todos ellos seleccionarlos todos, hacerlos a variables, así podemos verlos ahora dentro de la gráfica. Vamos a continuar. Vamos a hacer clic primero en la cantidad de ranuras. Nuevamente, da clic en este evento. Ahora para el ítem seleccionado, voy a convertirlo a un entero, que es un valor numérico. Texto a valor numérico. Ahora con este entero voy a escribir Click Promoted a una variable y llamarlo cantidad de slots. Así que adelante y conecta este. Y por cierto, antes de que me olvide, déjame simplemente ir al widget. Reflexiona una vez más, haz que la interfaz de usuario sea más grande. Es un poco más fácil para ti verlo. Ahora, promovimos esta variable entera a la variable aquí, cantidad de slots. Y esto es simplemente, está aquí. Pasemos ahora al idioma. Al hacer clic en el idioma, Bajando, dando clic en la selección, cambiado. Ahora el idioma que sólo voy a ir aquí mismo, promover éste a una variable y llamarlo lenguaje Serva. Eso fue por el idioma. Ahora la última es la privacidad. Al hacer clic en la privacidad, nuevamente en la selección cambió. Ahora por la privacidad, puede ser que el jugador haya dicho que es un servidor público o un servidor terrestre. Con esto, ya que sólo tenemos dos opciones, voy a hacer una variable de lingotes llamada use line Como ves normalmente para los lingotes agregué en el frente porque cuando lo arrastras hacia afuera, puedes ver no puedes ver la B. Esto es útil para cuando busques aquí arriba Si solo escribes B, entonces aparecerán todos los lingotes. Ahora para este uso la línea depende de lo que el jugador haya seleccionado. Vamos a arrastrar de éste y decir que enciendan la cadena aquí, y ahora enciendan la cadena. Ahora recuerda para la cadena puedes elegir público o len. Voy a hacer clic de oído sobre él a dos pines, uno llamado público y otro llamado Len. Ahora para esta, saquemos a dos de ellos. Si se elige para que sea pública, esta va a ser falsa porque no queremos usar len. Si se selecciona len, vamos a establecer esta variable para que sea verdadera. Podemos usar éste más adelante. Ahora estamos técnicamente terminados. Pero qué podemos hacer ahora, porque habrá un dólar si no hacemos esto. Y como pueden ver aquí, si hago clic en Reproducir, y cuando creo un Serva, y no selecciono nada aquí, estos nunca se establecerán. Si hago clic en Reproducir, creo Serva. Simplemente sigo adelante y hago clic en Crear Serva. Si hago eso sin cambiar ningún valor, recuerde que solo establecemos estas variables cuando se cambian en la selección cambiada. Si el jugador no cambia nada, todas estas variables estarán vacías. Así que sigamos adelante y establecemos un valor predeterminado para que no desconectemos el juego. Lo primero que quiero hacer, así que volvamos y echemos un vistazo ahora para el servónimo Más adelante vamos a hacerlo un poco mejor. Por ahora, puede estar vacío , no importa. El siguiente es el mapa. Vamos a establecer el valor predeterminado del mapa. Tomando este mapa del juego aquí mismo, digamos obtener la opción seleccionada. Ahora a partir de este, quiero establecer el mapa del juego igual que lo que hicimos aquí abajo, si podemos encontrarlo. Este de aquí, establecemos el mapa del juego dependiendo de esto. Ahora en vez de copiar todo esto, puedes ver si copiamos y pegamos todo esto, realmente no se ve muy bien. Lo que podemos hacer es que solo voy a hacer clic en control Z. Qué podemos hacer si hay un código que tienes que copiar pegar en otras partes del motor o de tu juego, entonces es mejor hacer click derecho sobre ellos y colapsarlos a una función Llamemos a esta función Establecer mapa seleccionado aquí abajo en el nombre de la variable. Podemos llamarlo seleccionado así. Ahora podemos usarlo aquí arriba. Arrastre la función que hicimos, vaya avena y conéctelo. Y conecta este. Es mucho más fácil de usar si duplicas cólico la función, solo puedes hacer que se vea un poco mejor Fuera de la función aquí, de vuelta a la gráfica principal. Creo que esto es mucho mejor. Lo siguiente que tenemos que hacer es establecer el valor por defecto para la cantidad de slots para esta variable que creamos aquí abajo. Vayamos aquí arriba. Toma la cantidad de slots, consigue la opción seleccionada. Ahora podemos tomar esta cantidad de slots. Podemos configurarlo y simplemente arrastrarlo hasta aquí. Y automáticamente convierte esta cadena en un entero para ti. Ahora bien, esto también se ha establecido por defecto. Lo siguiente que queremos establecer es el idioma que tenemos aquí. Volvamos a obtener el idioma del servidor, obtener la opción seleccionada. Tomemos este lenguaje de servidor, y vamos a configurarlo así. Ahora lo siguiente que tenemos es la privacidad. Ahora para este, realmente no necesitamos configurarlo aquí porque será falso por defecto, lo que significa que será público por defecto. Realmente no necesitamos subir aquí y establecer esto como aquí porque ya es falso por defecto, no necesitamos hacer nada aquí. En cuanto al nombre del servidor, también está vacío por defecto. Déjame simplemente dar click aquí y eliminar esta Sera. Aquí está vacío y vuelve a compilar. El servidor está vacío por defecto. Realmente no necesitamos tenerlo aquí arriba en la construcción del evento. Ahora puedo ver que cometí un error, porque estos realmente tienen que estar aquí arriba. En cambio, voy a copiar y pegarlos aquí arriba en su lugar. Y ese es mi error aquí abajo es el correcto. Porque necesitan comenzar desde la construcción del evento, que es básicamente la jugada de inicio para UI. Y así así, ahora los tenemos a todos. Puedes intentar juntarlos. No es desordenado así, todo debería estar bien ahora Ahora ya terminamos con todo aquí. Vamos a compilar y saltar a la siguiente lección. 26. 3.05 Programación de la espalda Button: Ahora echemos un vistazo al botón Atrás. Pasemos al diseñador. Haga clic en él, baje, y aquí, haga clic ahora. Antes de hacer eso, déjame cambiar el nombre para que sepa lo que estoy haciendo aquí. Este es el botón atrás. Y luego haga clic en el evento click. Cuando hacemos clic en él, igual que antes, sólo voy a minimizar esto. Voy a bajar a la interfaz de usuario, ir al menú principal, abrir el menú principal. Y sólo voy a copiar esto que hicimos antes. Voy a pegarlo aquí. Ahora va a ser gris para el controlador del jugador porque no hemos definido las líneas de control del jugador fuera de aquí. Hagámoslo aquí arriba después de la instancia del juego. Sólo voy a mover todo esto así viejo y da click aquí para desconectarlo. Voy a hacer clic derecho y configurar el controlador del reproductor seleccionarlo. Y arrastre y diga obtener referencia del controlador del jugador. Y es el de la interfaz del menú principal que creamos. Ve y selecciona ese Dios y conéctalo. Ahora hagamos clic derecho, promocione esto a una variable llamada player controller. Ahora podemos conectar el resto de las cosas. Ahora tenemos la variable del controlador del reproductor. Y se puede ver ahora es normal porque ahora lo hemos definido. Cuando hacemos clic en la parte posterior, quiero cerrar el create sera don't show. Entonces quiero mostrar el menú principal así. Da clic en Reproducir, ahora Crear Sera. Vuelvo, se puede ver que ahora está funcionando bien. Ahora tenemos alguna caja aquí. Puedo ver que dice Access. Tratando de leer la instancia de juego de propiedad, si hago clic aquí. Depuremos esto juntos. Ahora tenemos este tema. Dice acceso ninguno. Cuando dice access none, significa que no obtiene ninguna información. ¿De qué no obtiene ninguna información? De la instancia del juego? De éste. Dice, éste está vacío, lo cual es raro porque ya lo definimos. Esto está en el servidor de creación. Si vuelvo a la construcción del evento, puedes ver que la instancia del juego ya ha sido definida. A lo mejor me olvidé una autorreferencia. Si vuelvo a la instancia del juego, si acabo de cerrar todo esto, vuelvo a los planos, a la instancia del juego Aquí le echo un vistazo a las interfaces. Pero ya hicimos la autorreferencia. Ahora lo último, la época, podría ser de aquí, es porque me olvidé de cambiarlo en el marco del proyecto. Si voy a Editar, vaya a Ajustes del Proyecto, en vez de aquí, vaya a Mapas y Modos. Aquí está. Olvidé cambiarlo en la clase de instancia de juego. La instancia de juego que queremos usar es nuestra propia y no la predeterminada de Unreal Engine Yo contraataque, entonces puedo tratar de jugar ahora y ver si consigo una era volver a creer y así sucesivamente. Ya lo puedo cerrar y no tengo ningún error. Todo está funcionando bien. Pasemos a la siguiente lección. 27. 3.06 Crea una sesión avanzada: Ahora es el momento de trabajar con las sesiones Create Advanced. Vamos ahora en esta lección, vamos a la instancia del juego. Aquí queremos crear la sesión. Lo que queremos utilizar es el clic derecho y buscar Crear sesión avanzada. Este del enchufe de Steam, es este. Esto puede parecer confuso al principio porque hay tantas cosas, pero en realidad es muy fácil de usar. Intentemos usarlo juntos aquí. Primero, quiero hacer clic derecho y hacer un nuevo evento personalizado. Para este evento personalizado, lo voy a llamar Serva. Este es el propósito de este evento. Sigamos adelante y conectemos éste con él. Ahora para el controlador de reproducción, voy a arrastrar y decir get controller. Y solo vamos a usar este para los ajustes adicionales. Ajustes adicionales simplemente guarda algunos ajustes para nosotros que podemos usar más adelante cuando queramos mostrar el Serva en el navegador servo. Si arrastro de aquí y digo que puedes ver make array, ¿qué significa que rompes las cosas? Si yo, por ejemplo digo get act transform por ejemplo, y solo elimino esto y hago clic aquí, se puede ver que puedo arrastrar desde aquí y puedo decir break transform. Puedo dividirlo en una ubicación, rotación y escala. Esto es lo que es una transformación. Además, puedes ver que si hago clic en algo en mi mundo, y echo un vistazo a la transformación, consiste en una ubicación, rotación y escala. Puedo arrastrar de aquí y decir break. Y puedo romper eso en la transformación, en los tres valores o al revés. Si voy por aquí y no por aquí. Si voy por aquí, no puedo decir break porque no estoy rompiendo. Básicamente, estoy haciendo una matriz, es lo que hicimos en esta instancia. Permítanme hacer clic derecho y tomar este contexto sensible de nuevo, así que solo obtengo funciones relevantes cuando busco. Ahora cuando hacemos la matriz, podemos arrastrar y luego hacer de nuevo, lo que quiero hacer aquí es hacer una cadena literal de propiedad de sesión. Porque quiero guardar el nombre del servidor, sea lo que escriba el jugador. Quiero guardar eso porque más adelante necesito usarlo para mostrar los sueros con el nombre de servidor correcto. Para la clave, voy a decir nombre del servidor. Ahora para el nombre real del servidor, aquí es donde el jugador teclea. No quiero establecer un valor aquí, porque este es el jugador que establece el valor. Sólo voy a arrastrarlo al evento aquí, así que crea una variable automáticamente para mí. Voy a llamarlo nombre de servidor. Bien, así que ahora tenemos esta terminada. Lo siguiente, también quiero ahorrar la cantidad de jugadores. Si olvidas lo que necesitas hacer, siempre puedes volver al menú UI Made, abrir el servidor Crear. Dentro de aquí, puedes echar un vistazo a qué valores necesitas. Lo siguiente es, por ejemplo, la cantidad de jugadores. Ahora realmente no necesitamos un plug in porque el mapa, recuerda en el servidor create lo que hicimos es si voy a la función de mapa seleccionada set, simplemente esta variable de enumeración de mapa de juego seleccionada, cada vez que el jugador selecciona el mapa, realidad tenemos este valor aquí en el mapa del juego seleccionado En lugar de darle a esto un plug in aquí, lo que podemos hacer es que podamos guardar esta información para más adelante cuando creamos este servidor. Vamos a presumir de éste y decir hacer cadena literal de nuevo. Adelante, elige esa. Arrastremos esto aquí y automáticamente convertirá tu enumeración en una cadena Sólo voy a llamar así a este mapa de un servidor. Ahora también tenemos esa información. Lo siguiente es la cantidad de jugadores que se pueden conectar. Y voy a arrastrar esto hasta aquí, y voy a llamarlo cantidad de slots así. Lo siguiente es la línea usada. Voy a arrastrar esto hasta aquí. Podemos simplemente dejar que se le llame uso de tierra. Eso está bien. Veamos qué nos olvidamos. Si vuelvo al servidor Create, tenemos el mapa, tenemos las ranuras. Nos falta el idioma ahora mismo. Por el idioma. Yo también quiero salvar eso. Si creo un pin lo arrastre desde aquí y vuelvo a hacer literal cadena. Yo llamo a este, déjame arrastrar el control de placa aquí arriba en su lugar. Para este lo voy a llamar Serva Language. Para el idioma, nuevamente, el jugador lo elige. Sólo voy a enchufarlo aquí y voy a arrastrarlo por encima la línea usada y llamarlo Serva lenguaje compilado. Ahora estamos guardando el idioma también, la privacidad que somos porque tenemos esta línea usada. Realmente no tenemos más información si quieres ahora. Simplemente puedes hacer que las cosas se vean un poco más limpias al poder hacer clic en estas líneas aquí. Puedes hacer clic, por ejemplo, en éste. Presiona Que en tu teclado para hacerlo recto y así sucesivamente. Así que me voy a quedar un poco mejor. Muy bien con eso. Terminado. Ahora básicamente terminamos toda esta parte aquí. Las otras cosas está bien, podemos permitir int, claro. También puedes, de nuevo, tener una opción para eso si lo deseas. Siempre puedes agregar opciones extra si quieres permitir invitaciones o no. Puede tener una casilla de verificación si desea configuraciones adicionales. Siempre puedes conectarlos aquí y dejar que el jugador decida también. Pero por ahora, cuando hayamos creado el servidor por aquí, lo que queremos hacer es querer crear los sueros. Queremos unirnos al mapa que arrastre desde aquí. Y digamos nivel abierto por referencia de objeto. Ahora puedes seleccionar qué nivel necesitas abrir. Ahora no tengo tantos niveles, así que solo voy a usar mi mapa principal como el predeterminado. Recuerda, el jugador seleccionó los mapas del juego, tenemos que seleccionar en qué mapa del juego queremos generar Arrastremos este mapa de juego seleccionado y arrastremos desde aquí y digamos que enciendan el mapa del juego aquí. Entonces puedes simplemente enchufarlo aquí. Lo que podemos hacer ahora es por los dos, podemos abrir el mapa de dos, el Infierno Podemos subir el mapa del Inferno y así sucesivamente. Ahora, no tengo tantos mapas en mi proyecto. Yo sólo voy a copiar y pegar estos tiempos y abrir quizá el mismo mapa. Y sólo puedo imprimir un mensaje la pantalla y ver si he abierto el mapa correcto. Ahora quiero mostrarte una manera en la que puedes optimizar este código para que no tengas que hacerlo de esta manera. Voy a borrar todos esos. Y lo que puedes hacer es usar un nodo selecto. Si arrastras desde aquí y buscas Select, sigue adelante y toma el nodo select para esto aquí en el índice. Adelante, arrastra tu enumeración aquí abajo. Ahora te dice, si solo conecto todo esto aquí al sobre el éxito, recuerda, tienes que conectar el sobre el éxito y no este. Porque queremos unirnos a la Sera cada vez que crea con éxito la servera Ahora va a seleccionar el mapa, dependiendo de cuál sea la opción que se seleccione aquí en el mapa del juego seleccionado. Si se establece en Inferno, va a seleccionar este valor Inferno y tenemos que decirle qué mapa para el Inferno Sólo voy a seleccionar mapa Principal para todos ellos. Además, lo que puedes hacer si lo deseas, solo puedes seleccionar mapas aleatorios. Sólo puedo abrir este mapa de escaparate y abrir este mapa de escaparate de armas. De hecho, abramos estos mapas aleatorios que tengo. También el nivel de escaparate de doc militar o lo que sea. Todos estos. Ahora va a funcionar. Ahora puedes ver que el código es mucho más limpio que usar el switch on enumeration, lo que nos hace copiar y pegar este nivel abierto Simplemente podemos hacerlo con uno usando el nodo select. Y yo sólo voy a borrar todo esto aquí arriba. Y ahora básicamente estamos terminados. Esto fue para los sueros de creación. Ahora tenemos todas las opciones que necesitamos para crear los sueros. Pasemos a la siguiente lección y programemos el botón Crear Servera 28. 3.07 Programación del servidor Button: Ahora estamos de vuelta aquí en la interfaz de usuario Create Serva. Y pasemos aquí a la gráfica. Vamos a la gráfica de eventos. Y ahora vamos a codificar el número de botón Crear Serva. No creo que hayamos creado una variable para ello. Vamos a hacer clic en el botón, llamarlo botón, Crear Serva. Puedo deletrear Serva, y es variable. Ahora vamos a hacer clic en él y presionar el evento sin hacer clic. Cuando hago clic en él, solo quiero alojar el Serva. Lo que quiero hacer es que quiero tomar la variable de instancia de juego, ya tenemos esa alarde de aquí, y decir crear Serva Vamos a ejecutar el evento create que creamos en la lección anterior. Para el servoname, sólo voy a arrastrar en esta variable servoyme que creamos. Así como la cantidad de slots. Lo mismo para el lenguaje Sera y lo mismo para la línea de uso. Ya terminamos aquí. Esto debería funcionar. Ahora si hago clic en Play, creo Serva. Selecciono el nombre, por ejemplo. Aquí selecciono un mapa, lo que quiera. Pongámoslo a público. Si hago clic en Crear, ahora debería crear el servera Mira, ahora estoy dentro de cualquier escaparate que creé. Ahora me está mostrando el mapa del menú principal o la interfaz de usuario del menú principal. Porque no tenemos seleccionados los modos K predeterminados. Tenemos nuestro menú principal. Pero si solo abro mi propio mapa que codificé, si solo veo aquí lo que seleccioné, si abro Inferno, eso debería funcionar correctamente Si hago clic en Plano, y lo voy a esperar una vez más. Una vez que se abra, esta vez voy a seleccionar Inferno porque tengo el modelo correcto para ello y voy a crear Serva Sólo voy a dejar que sea en Inferno y luego voy a crear el Serva Ahora debería estar dentro de aquí, puedes ver que funciona correctamente. Ahora en realidad estoy dentro de mi juego, puedo jugar como antiterrorista y ahora en realidad estoy jugando correctamente. Todo está funcionando como se supone que debe hacerlo. Este servo de creación ahora está funcionando. Lo siguiente en lo que tenemos que trabajar es en el navegador Servo y así sucesivamente. Pero antes de que hagamos eso, quiero mostrarte cómo puedes agregar una animación de UI a esta UI para que sea un poco más interesante. Si no te interesa crear animaciones de interfaz de usuario, siempre puedes pasar a la siguiente lección. Pero si te interesa, saltemos por encima. 29. 3.08 Adición de animación de Create Server: Bien, sigamos adelante y creamos algo de animación para la interfaz de usuario Para que sea un poco más interesante. Lo que quiero hacer es si hago clic en reproducir, quiero que la interfaz de usuario aquí aparezca en la pantalla y luego también desaparezca cuando haga clic en atrás. Sigamos adelante y hagamos eso. Agreguemos algo de animación aquí abajo en el paso de animación, si no la ves, si te parece esto, siempre puedes hacer click aquí abajo. Y luego en maquetación para tenerlo aquí arriba, agregue una animación. Para la nueva animación, voy a llamar, vamos a darle click. Ahora queremos animar todo el asunto sólo para que sea más fácil Por cierto, puedes hacerlo súper complejo con la animación y se verá bien. Pero solo para hacerlo un poco más rápido para este curso, voy a animar este overlay I, solo voy a llamarlo overlay aquí V. Vamos a llamarlo Create Serva Hagamos clic en Track y seleccionemos Crear Serva. Por cierto, hay que tenerlo seleccionado antes de que aparezca. Aquí arriba. Haga clic aquí abajo, transforme aquí. En la transformación, ahora puedes jugar con las traducciones donde está en la pantalla Para la y. voy a aumentarlo y moverlo aquí abajo fuera de la pantalla. A lo mejor 1,500 así, digamos 0.65 Quiero que esto esté arriba en la pantalla, pero un poco más alto de lo que normalmente es Tal vez 150 menos 150. Entonces después de 1 segundo, va a decir cero, la animación ahora está fuera de pantalla. Y aparece en la pantalla, sube un poco más allá de lo habitual, y luego va a la pantalla así. Sólo un efecto muy simple. De nuevo, dije que lo haces más complejo porque puedes animar cada botón y texto si así lo deseas Pero por ahora, aquí solo tenemos esta animación. Siempre que jugamos en reversa, va a volver. Esto es cuando juegas el botón Atrás. Bien, ahora tenemos esto terminado. Vamos a compilar y guardar todo. Lo que podemos hacer ahora en la gráfica, vamos a repasar por aquí y codificarlo. Siempre que abramos el Serva create aquí, cuando comencemos en la construcción del evento, movamos todo esto. Voy a tocar la animación. Vamos en la pestaña de animación, tomar el crear Servo anim y decir Play Animation Adelante y elige eso conectado. Ahora para la animación de reproducción número de bucles. Yo sólo quiero que juegue una vez. Si tienes un loop, quieres jugar por tiempo indefinido , ¿verdad Cero. Vamos a hacer clic en el control Z. Uno está bien para mí. Eso se ve bien. Permítanme acercar todo esto. Ahora, cada vez que hacemos clic en el botón Atrás aquí abajo, quiero reproducir la animación. Solo alejemos todo esto. Toma la animación una vez más animación. Y vamos a conectarlo. Ahora dentro de aquí, la cantidad de flupes es una. Pero en el modo play lo voy a jugar al revés ahora en vez de simplemente quitarlo, porque ahora se puede ver que en realidad tenemos un bug. Si vuelvo a reproducirlo en el nuevo modo editor, creo un sera y vuelvo, ahora puedes ver que no está reproduciendo la animación. Y esto se debe a que lo estamos quitando de la pantalla instantáneamente después de que iniciemos la animación. En lugar de hacer esto, vamos a copiar esto por aquí y decir obtener la hora de fin. Estamos consiguiendo la hora de finalización y vamos a agregar un retraso. Agrega un retraso por la cantidad de tiempo que lleva reproducir esta animación. Y déjame alejar todo esto conectado. Ahora vamos a compilar y dar clic en Reproducir. Y pruébalo por Serva. Aparece por click, Vuelve. Se quita así. Impresionante. Ahora también tenemos una animación de aspecto genial en nuestro juego. Si quieres reproducirlo un poco más rápido, siempre puedes cambiar la velocidad de reproducción. Voy a cambiarlo a 1.1 en vez de solo uno. Es un poco más rápido y puedes intentar retocar esto como quieras Bien, creo que todo se ve bien. Así que vamos a guardar todo y pasemos al siguiente. 30. 4.01 Creación de un widget en el navegador de servidores: Sigamos ahora y creamos los widgets del navegador Serva. Veamos bien en la interfaz de usuario del menú principal. Ahora voy a ir un poco más rápido de lo habitual, porque ahora tenemos experiencia en esto. Vamos a crear la interfaz de usuario. Llamemos a este navegador Serva. Antes de hacer nada, vamos al menú principal del jugador. Abre el controlador del reproductor aquí. Vamos a agregarlo al widget que creamos anteriormente. Si vuelvo a abrir el widget show, hago clic derecho y digo crear widgets. Sigue adelante y crea el navegador del servidor aquí que acabamos de crear. Promocionarlo a una variable y llamarlo navegador Sera. Sólo necesito deletrearlo correctamente. Bien, así. Arrastremos de esto y digamos Agregar a la ventana gráfica. Vamos a golpear el navegador del servidor, hacer clic derecho y convertirlo a un obtiene validado si no es válido, vamos a crearlo si es válido. Sólo vamos a seguir adelante y agregarlo a la ventana gráfica. Arrastremos este navegador de servidor aquí también. Nuevamente, ponlos juntos, haz que se vea bien. Ahora saltemos al widget hide. Arrastre el navegador sera, conviértalo a un get validado. Entonces otra vez, retírelo de erens. De esta manera podremos eliminarlo de la pantalla si es necesario. De nuevo, moviéndolos juntos, se ven bien. Compilar y guardar. Ahora hemos creado esto. Asegurémonos de que todo esté funcionando. Asegurémonos, volvamos al menú principal. Echa un vistazo al navegador Servo, en realidad al navegador Servo. Echemos un vistazo al menú principal. Siempre que hago clic en el sera conjunto, cierra el menú principal y abre el navegador Servo. El código que hemos hecho ya en el menú principal. Permítanme agregar una imagen aquí para asegurarme de que esté abierta. Cuando hacemos clic en él, solo agrega una imagen aquí. Cambiemos el tinte para que no volvamos a quedar cegados de esto Si hago clic en Play, Join Servo, lo va a abrir aquí. Y no compilé esto. Me cegó. Permítanme simplemente borrar esto por ahora. Está funcionando perfectamente. Vamos a guardar todo, y pasemos al siguiente, donde diseñamos el navegador Servo. 31. 4.02 Diseño del widget del navegador de servidores: Bien, para diseñar el navegador del servidor. Vamos a abrirla para ésta. Yo sólo, de nuevo, voy a mostrarte lo que vamos a hacer. Lo tienes visualmente y es mucho más fácil de comprender. Esto es lo que estamos tratando de hacer. Estamos tratando de tener una barra superior aquí donde podamos buscar un servidor. Podemos elegir el idioma, el servidor terrestre, podemos ocultar servidores completos y también podemos refrescar los servidores. Entonces tenemos los servidores aquí abajo en una lista. Y eso es simplemente todo. Puedo ver que también nos falta un botón de retroceso para este. Así que siempre podemos seguir adelante y agregar un botón de retroceso aquí arriba, o tal vez aquí abajo. No importa, vamos a averiguarlo. Pero esto es lo que estamos tratando de diseñar. Déjame arrastrar esto a un lado y empecemos de nuevo. Necesitamos un panel de lona para comenzar aquí. Entonces tenemos una caja vertical porque tenemos dos elementos uno encima del otro. Primero, necesitamos una superposición, porque necesito una imagen de fondo para mi UI. Vamos a arrastrar esto y anclar la caja vertical a la alineación media. 0.50 0.5 y la posición 20.0 Ahora esta caja vertical está en el medio Ahora para esta superposición, en realidad vamos a hacer que la caja vertical un poco más grande y cambiemos la posición a cero. Una vez más, tenemos algo de espacio para trabajar. Ahora para esta superposición, necesito agregar una imagen porque necesito un fondo o mi UI para esta, agreguemos uno de los fondos. Si voy a las imágenes, solo voy a agregar lo que usamos anteriormente, este panel azul. Voy a agregarlo. Voy a dar click sobre esta superposición. Todo está bien en la superposición, así que voy a dar click sobre la imagen, y la voy a alinear horizontal y verticalmente. Ahora se ve borrosa porque de nuevo, tenemos que ir al crudo como caja dos y subir 0.5 en el margen Esto hará que se vea mucho mejor. Ahora, siempre podemos cambiar el tamaño de éste, este overlay aquí. Pero en lugar de hacerlo, agreguémosle contenido. Y esta imagen de fondo se ajustará y quedará genial aquí. Quiero agregar una caja horizontal, porque necesito agregar todos mis elementos en ella. Ahora, agregando una caja horizontal con esta caja horizontal, voy a alinearla al centro verticalmente. Pero voy a alinearlo todo el camino al otro lado horizontalmente. Entonces toma todo este lugar. Vamos a agregarle algunos elementos. Entonces se ve mejor si solo vuelvo a la interfaz de usuario y al menú principal y simplemente copio el texto aquí desde el menú principal. Porque realmente no necesito recrear el control C. Vuelve aquí en la caja horizontal control V para pegarlo Ahora para este texto, voy a cambiar el tamaño a 16 en su lugar. En cuanto al espaciado por aquí, voy a agregar un espaciador antes de agregar el bardo de entrada. Añadiendo un espaciador aquí arriba para el espacio, voy a darle 15 en la x. luego voy a volver a la puerta I que creamos. Y yo sólo voy a copiar éste, volver el control V a la caja horizontal. Lo tenemos dentro de aquí. Ahora para esta caja, se puede ver que llena toda la pantalla o toda la imagen de fondo. Lo que podemos hacer ahora es que siempre podemos hacer clic en el cuadro horizontal. En el relleno, intentemos darle un poco de relleno a la izquierda, le voy a dar un cuadro de 30, y a la derecha le voy a dar un padding de 30 también. A la parte superior, le voy a dar un acolchado de 20 a la parte inferior 20 también. Tenemos algo de espacio para trabajar aquí para este texto. Puedo ver que está un poco levantada y esto es porque la hemos copiado y tiene un relleno. Voy a escribir cero en el relleno. No tiene nada. Ahora bien, creo que la altura de esta barra de entrada es un poco demasiado alta. Sólo voy a reducir el tamaño. Recuerda en el acolchado de aquí abajo, siempre puedes cambiarlo de 20 a tal vez algo así como 12. Creo que ahora se ve un poco mejor por el tamaño de la misma. Realmente no tenemos que preocuparnos por eso por ahora. Simplemente podemos hacer clic en Llenar aquí. Ahora va a llenar toda el área. Pero nuevamente, esto se debe a que necesitamos agregar más elementos. Y va a ser mucho más pequeño. De nuevo, voy a añadir un espaciador. Duplicar este control D, basarlo aquí abajo. Voy a establecer la talla en 35. Entonces voy a copiar este texto. Déjalo caer. Llamemos a esto, el siguiente es el idioma del idioma. Ahora volvamos a la creación de sueros. Voy a copiar el cuadro de idioma aquí, control control trasero V. Se puede ver que hay mucho copiado pegando aquí para este espaciador Yo también lo voy a copiar. Pasado aquí abajo. Ahora tenemos esta lista otra vez para este lenguaje. De nuevo, haz clic en Rellenar. Llena igual que esta barra de aquí. Ahora volvamos a copiar este texto. Pasado aquí abajo. Para este, llamémoslo. Sólo servidores, sólo va a mostrar los servidores terrestres. Agreguemos este espaciador aquí abajo. Lo siguiente que debemos agregar es la casilla de verificación que no hemos creado antes Busquemos Raqueta Checkbox en aquí, en la caja horizontal Ahora para esta casilla de verificación, si solo me acerco para que realmente puedas verlo para esta casilla de verificación, hagamos clic en el estilo para el estilo Por defecto está desmarcado. Imagen sin marcar Solo echemos un vistazo a nuestros botones aquí. Botones. Ahora he hecho éste para ti, llamado casilla de verificación. Haga clic y arrástrelo aquí así. Y lo mismo antes de hacer eso, en realidad, antes de copiarlo, echemos un vistazo al tamaño. Ahora por la talla, voy con 40 por 40. El tamaño de la casilla de verificación es un poco más grande para el color. Se puede ver que está un poco oscuro. No se parece a esta. Aquí es mucho más oscuro. Al hacer clic en él, voy a cambiar el color de primer plano en lugar de heredar, quitar esto, hacerlo blanco así Haga clic, bien, ahora es el color verdadero. Así que continúe y mantenga presionada la tecla Mayús y haga clic derecho, y luego mantenga presionada la tecla Mayús y el clic izquierdo para pegarlo en todos estos. Ahora debería ser correcto. Ahora déjame copiar estilo para la imagen desmarcada en la parte superior del hoverd Y presionado para el hoverd, voy a cambiarlo a rondado por el presionado Voy a cambiarlo para presionar esto debería ser correctamente. Vamos a minimizar todo esto ahora. También tenemos la imagen comprobada. Sigamos adelante y echemos un vistazo. Y es aquí. Si solo lo presumo de nuevo, voy a cambiar el tamaño del mismo a 40 por 40, entonces voy a copiarlo a los otros dos Cambia el segundo al tesoro seleccionado, el último a la prensa seleccionada Ahora los tenemos a todos. Siempre puedes probarlo haciendo clic en un servidor Play and Joint. Y entonces puedes intentar echarle un vistazo a éste y ver si está funcionando correctamente y si todo está bien. Volvamos. Agreguemos un espaciador por aquí también. Voy a copiar esto. Da clic aquí, controla V para pegarlo, y pega este espaciador. Ahora hagamos lo mismo por aquí. Voy a copiar este espaciador. Pégalo por aquí. Y luego vamos a copiar, en realidad se puede ver más allá del espaciador en la parte superior de esta casilla de verificación. Es por ello que a veces suelo hacer clic en esta caja horizontal de aquí y pegarla para asegurarme de que la pegue correctamente Para este texto, peguémoslo también. Llamemos a esto servidores de texto de caída. Vamos a copiar el espaciador una vez más, copiar la casilla de verificación pasado Vamos a copiar el espaciador más grande aquí, pasado. Ahora, aquí vamos a tener el botón de refrescar. Volvamos al menú principal. Voy a copiar este, control C. Voy a volver al servidor, control de navegador V. Ahora lo tenemos. Llamemos a este texto fresco. Todo se ve bien, así como así. Ahora vamos a hacerlo un poco más grande. Voy a dar click sobre estos, para que pueda ver las líneas discontinuas Para que pueda ver mi botella aquí. Y sólo voy a hacerlo un poco más grande así. No llenando toda la pantalla, sino simplemente dándole algo de espacio también. Entonces algo como esto aquí para este botón, puedo ver que es diminuto. Y esto también se debe a que para esta superposición para el botón, tenemos algo de relleno. Voy a escribir cero en el relleno, así que se vuelve un poco más grande. Y ahora se ve mucho mejor para este acolchado o para el espaciado de aquí. Voy a darle un espaciado de 50 en su lugar. Entonces hay un poco más de espacio para el tamaño de esta caja de entrada. De nuevo, voy a hacerlo un poco más pequeño, ocho por ocho en la parte superior e inferior. Entonces se vuelve más pequeño, pero como puedes ver, en realidad se está llenando verticalmente. Entonces voy a hacer click en este medio. Ahora es demasiado pequeño, así que voy a aumentar esto de nuevo a 12 por 12. Y eso es un poco demasiado pequeño, así que tenemos que aumentarlo mucho más. Tal vez 20 por 20, y eso es mucho mejor, 20 por 20. Pero la alineación está aquí, alineada en el medio. Bien, ahora ya terminamos con esta parte de aquí arriba. Lo que quiero que hagas ahora es aquí abajo. Ahora esta fue la primera superposición. Ya tenemos esta caja vertical. Voy a añadir una superposición otra vez encima de esta caja vertical. Ahora está debajo de esta parte superior. También voy a añadir un espaciador, así que espaciamos estos dos para el espaciador. Voy a darle un valor de 15, haciendo clic en él, valor de 15 en la Y para esta superposición. Nuevamente, agrega una imagen aquí para la imagen que voy a usar de nuevo, el panel azul. Si voy a imágenes, encuentro el panel azul, arrástralo de nuevo, para esta imagen, quiero llenar todo el asunto. Ahora para esta superposición, en lugar de solo llenar esta parte, voy a dar click sobre esta superposición y llenar el resto de la interfaz de usuario para esta imagen. De nuevo, voy a ponerla en la casilla 0.5 para que se vea mejor. Y aquí está. Dentro de esta superposición, lo que necesitamos es que necesitamos una caja vertical en Editar. Dentro de esta caja vertical, también necesitamos una caja en una caja de desplazamiento. Para esta caja vertical, haz que se llene vertical y horizontalmente. Para la caja de desplazamiento, todo está bien. No necesitamos cambiar nada ahora para el agregado aquí para el cuadro vertical porque no quiero agregar elementos al borde de este fondo. Para el relleno izquierda y derecha, voy a dar 35 por 35 y arriba, le voy a dar 28 por 28. Tenemos algo de espacio y cada vez que añadimos contenido, lo agregamos dentro de aquí y no encima de ahí. Bien, antes del cuadro de desplazamiento, necesitamos un cuadro horizontal porque necesitamos agregar algo de texto haciendo eso. Y después voy a añadir un espaciador. Dije el espacio más tarde. Por ahora, vamos a diseñarlo aquí arriba. Voy a copiar este texto. Bajar a mi caja horizontal. Da click en el control V para pegarlo. Ahora para este, va a decir nombre del servidor. Entonces voy a hacer clic de nuevo en Control V un par de veces. Copio este texto aquí un par de veces. El primero se llama nombre de servidor. Entonces necesitamos el mapa. Necesitamos a los jugadores, cantidad de jugadores que están dentro del servidor. Al último se le llama cuánto le gusta, ahora, cómo debería ser. Realmente no sabemos en este momento porque necesito alinear estos textos, sea cual sea el servidor que esté aquí, como qué tan grande es, y así sucesivamente. Así que en realidad no podemos diseñar el espaciado entre esos en este momento. Solo paremos aquí, guardemos todo, asegurémonos de que todo funcione. Antes de cerrar esto, podemos unirnos, puedes escribir cosas aquí, puedes cambiar el idioma, puedes marcarlas. También puedes hacer clic en la actualización, y todo se ve genial ahora para el tallado y todo lo demás. Podemos continuar más tarde. Pero por ahora, necesitamos diseñar el propio servidor antes de que podamos terminar la pieza Aquí abajo. Cerremos todo por ahora. Y saltemos a la siguiente lección. 32. 4.03 Diseño del widget de tarjeta de servidor: La interfaz de usuario final que vamos a diseñar se ve algo así. Aquí tenemos el idioma y tenemos el nombre del servidor, y tenemos el mapa. ¿Cuántos jugadores hay en los sueros? Y también el ping para los sueros. La razón por la que diseñamos la tarjeta del servidor por sí misma y no dentro del navegador del servidor es porque esta es una lata. Contiene valores dinámicos, igual que si creas una tienda. Entonces digamos que tienes un juego de rol y tienes como una tienda de artículos, el yo, la tienda de artículos, puedes diseñarlo. Sin embargo, las tarjetas individuales para los artículos en realidad están diseñadas por sí mismas porque realmente no necesitamos copiar y pegar cada Cod entonces hay mucho copiar y pegar y no es realmente bueno, es mucho trabajo Lo que podemos hacer es crear un artículo Cod. Entonces podemos simplemente cambiar el valor dinámicamente y copiar pegado a través del código aquí En este caso, estamos creando un servidor. El servidor que estamos creando dinámicamente, lo vamos a agregar dependiendo de lo que el jugador haya agregado como valores. Entonces se va a sumar aquí abajo. Sigamos adelante y diseñemos este. Déjame un poco más, vamos a cerrar todo esto por ahora. Hagamos clic derecho, hagamos un nuevo budge, blueprint. Llamemos a éste Serva. Ahora vamos a abrirlo dentro de aquí. Volvamos a buscar panel de lona. Vamos a agregarlo. Ahora para esto, voy a cambiar deseado en pantalla, tamaño de pantalla, asegúrate de que sea de nuevo, para laptops, estamos diseñando esto. Ahora lo que quiero diseñar aquí, primero necesitamos un fondo y necesitamos el botón. Sólo voy a volver al menú principal. Adelante y copia esto primero. Botón de control C, control V. Ahora para esta superposición, voy a cambiar el punto de anclaje para que esté en el medio. Después la alineación, 0.50 0.5 y posición Y, X e y00. Ahora en cuanto al tamaño de la misma, siempre podemos decidir eso más adelante porque puedes cambiar el tamaño de la superposición así. De nuevo, hay que hacer una 00, otra vez, la X y la Y. Pero por ahora, no nos preocupemos por la talla. Solo cambiemos el contenido. Lo que quiero primero es la bandera, porque quiero mostrar en qué idioma está el servidor tomando una imagen. Yo sólo voy a agregar iconos aquí. La imagen está antes del texto, y va a estar aquí en el medio, verticalmente. Antes de hacer eso, pueden ver que están uno encima del otro porque no hemos agregado un cuadro horizontal, buscando un cuadro horizontal, agregándolo aquí abajo, agregándole la imagen y también el texto a él. Ahora en cuanto al cuadro horizontal, voy a alinearlo en el medio y luego rellenarlo horizontalmente para el texto voy a alinearlo al medio. Retira todo el acolchado que tenga. Entonces corriendo cero aquí, compile Ahora para este icono. Aún no tenemos íconos. Ahora esto es para mi juego, pero para las banderas, porque necesitamos los idiomas, quiero que entres en tus materiales del curso que te di. Dentro de los materiales de este curso, vaya a la interfaz de usuario y tenemos iconos dentro de aquí. Yo sólo quiero que tomes estos, los arrastres al juego, y aquí los tenemos. Ahora para esos, voy a escribir haga clic en Editar Selección en Matriz de Propiedades. Por lo general siempre es bueno en los detalles de nivel. Para cambiar el grupo de texturas a UI, se lee correctamente y los botones o la IU se ven bien en la compresión también. Para la compresión lo voy a cambiar a interfaz de usuario dos D. Ahora solo hace falta escribir click y editar vía matriz de propiedades. Si estás editando varios elementos a la vez. De lo contrario puedes simplemente, si solo tienes un elemento, puedes hacer doble clic en él, abrirlo, y luego puedes cambiar los ajustes de compresión a lo que hicimos ahora mismo y el grupo de texturas también. Bien, ahora tienes eso. Volvamos a la interfaz de usuario que estamos diseñando dentro de aquí. Vamos a hacer clic en la imagen. Permítanme hacer clic aquí y buscar el icono. Solo agreguemos uno de los íconos. Realmente no importa. Nuevamente, se trata de valores dinámicos, los vamos a cambiar más tarde. Ahora para la caja horizontal, solo para que se vea un poco mejor. Ahora vamos a hacer clic en la superposición. Solo hazlo un poco más grande para que tengamos algo de espacio para trabajar. Y acertó a cero en la X aquí para el cuadro horizontal a izquierda y derecha. No quiero que esté aquí en el borde. Voy a darle un poco de relleno a la izquierda, 25, derecha 25, algo así. Por la talla y. para la Y, voy a dar una talla de 104, a lo mejor algo así. A lo mejor eso es demasiado grande. Siempre podemos hacerlo un poco más pequeño y podemos probarlo más tarde. Pero por ahora, esto está bien. Pongamos la posición a cero. Ahora, el primero es crear servidor. Agreguemos un espaciador entre la bandera y el texto. El espaciador para este es 15 y el x. Ahora este es el servidor. Vamos a llamarlo un nombre de servidor aquí. Sólo voy a decir, por ejemplo, servidor. Podemos, por ejemplo, decir Inferno sólo porque esto es lo que estamos jugando Digamos chino porque es un servidor chino. Digamos que se le llamó algo así, de manera realista Ahora, después de eso, necesitamos el tipo de mapa que estamos jugando. Yo sólo puedo controlar esto para duplicar. Y puedo decir, por ejemplo, estamos jugando dos de un strike. Y vamos a duplicar también el espaciador. Agrégalo aquí abajo. Ahora el problema de agregar un espaciador aquí, vamos a hacer esta superposición un poco más grande. Yo sólo voy a darle un poco más de espacio y luego reposicionarlo en la X. Ahora el problema es con agregar un espaciador aquí ahora es que si escribimos un Servoname más largo, alejemos No quiero hacer eso porque dentro del navegador del servidor, tenemos estos establecidos en una posición fija. Si esto se está alejando, no va a alinearse con el título del mapa aquí. La forma en que hacemos esto, en lugar de un espaciador, hacemos clic en el texto. En cambio, le das un ancho mínimo deseado por aquí. Adelante y aumenta el ancho mínimo deseado a algo que te guste. Se puede ver que aún no está cambiando porque es más largo que eso. Pero si llegas a cierto valor, comienza a alejar el otro texto. Para éste, le voy a dar un valor de 685. Lo probé un poco, y el otro valor aquí, voy a dar 225. Solo tienes que darle un valor donde estés asegurándote que este ancho sea mayor que lo que es el nombre del servidor. De lo contrario se va a sacar el balón. Ahora tenemos esto. Lo siguiente es que vamos a duplicar este texto y vamos a escribir la cantidad de jugadores. La cantidad de jugadores por ejemplo, podría ser de 100 jugadores conectados y 100 jugadores como máximo dentro del servidor. O éste. Voy a hacer el ancho un poco más pequeño porque realmente no necesitamos todo esto. A lo mejor 115, lo último, vamos a duplicar éste y llamarlo. Ahora voy a agregar un espaciador porque mínimo no me está dando suficiente espacio. Entonces voy a agregar un espaciador aquí arriba. Voy a agregar los espaciadores a la caja horizontal. Ponlo aquí para este espaciador, voy a dar algo como 150. Ahora para este ping, voy a escribir, por ejemplo, algo así. Ms, este es un servidor muy rezagado. Para el mínimo diseñado con. Sólo voy a dejar que sea al 115. Eso está bien para mí. Ahora vamos a compilar, y ahora agreguemos esto al navegador del servidor para que podamos ver realmente cómo se ve. Busquemos aquí arriba WB. Y puedes buscar el código del servidor. Y puedes hacer clic y arrastrarlo encima del cuadro de desplazamiento. Si haces clic y lo arrastras al cuadro de desplazamiento, así es como se verá. Ahora si haces clic en las líneas de guiones para eliminarlas, quiero llenarlo. Se puede ver que tiene algún espacio vacío a los lados aquí y aquí. Tenemos que alargarlo un poco para que encaje. Si subo aquí a la superposición y le doy un vistazo al tamaño de la superposición, probemos algo así como 1,650 Compile y echemos un vistazo Ahora bien, así es como se ve ahora. Antes de agregarle más espacio, también sé que habrá una barra de desplazamiento. Si hago clic en el cuadro de desplazamiento, voy hacia abajo y hago clic en Mostrar siempre cuadro de desplazamiento, estará aquí. Ahora para el tamaño, sólo voy a aumentarlo aún más, mil 690, tal vez compilar y echar un vistazo de nuevo Ahora lo llena todo. Y tenemos espacio para la parte de pergamino. Siempre podemos hacerlo un poco más pequeño si es necesario. Ahora lo que podemos hacer, puedes ver que tenemos un poco más de espacio para trabajar. Entonces puedo dar click en esta y puede hacerla más grande, esta también. Podemos tratar de hacer todos estos más grandes si queremos. click sobre este texto, voy a hacerlo más grande aquí en el ancho mínimo de diseño. Realmente no necesito que los otros sean más grandes. A lo mejor el mapa uno puede ser 250 más el otro, este, el nombre del servidor es el más importante. Solo asegúrate de no empujarla demasiado lejos. Algo así. 965 aquí, eso se ve bien para la bandera. Creo que es un poco para empujar hacia abajo, así que voy a hacer clic en la bandera y darle un relleno. En la parte inferior de dos se empuja un poco hacia arriba. También para toda la caja horizontal, lo que podemos hacer es que podemos hacer clic en la caja horizontal en la parte inferior, darle un relleno de cuatro. Se empuja un poco hacia arriba así. También podemos hacerlo un poco más grande. Haga clic en la superposición. Voy a hacer esto un poco más grande. No mucho. Algo así aquí. Creo que se ve genial. Ahora para el texto, voy a hacerlo un poco más pequeño. Seleccionar todo el texto y el tamaño debe ser algo así como 16. En cambio, todo se ve bien. Vamos a compilar haciendo clic en la superposición, asegurándonos de que la posición es 00 y la x e y , luego volviendo al navegador del servidor. Y ahora podemos echarle un vistazo a cómo se ve. Se ve mucho mejor si controlo D para duplicar los servidores. Así es como se verá. Ahora necesitamos un poco de relleno en la parte superior e inferior para los botones porque realmente no se ve bien. Volvamos a la tarjeta del servidor y hagamos clic en un botón. Voy a arriba y abajo, dale un relleno de cinco a cinco. De nuevo, voy a hacer el botón un poco más grande porque ahora es un poco más pequeño. Simplemente haciendo el botón más grande como esta posición cero en la y. otra vez, compilar, volver, y ahora así es como se ve, ahora se ve mucho mejor. Ahora podemos realmente alinear los de aquí arriba para la caja horizontal. Voy a empujar este serverame. Está por encima de ésta. Voy a darle un relleno a la derecha, a la izquierda, en realidad 75, algo así. Ahora se ve mucho mejor a la derecha aquí. En lugar de ir hasta aquí, voy a darle un relleno de 20 después del nombre del servidor nuevamente, solo podemos cambiar el ancho deseado, solo hacerlo más grande y alejar todos los demás textos hasta que esté encima de aquí. Yo sólo voy a acercar, asegurarme de que esté alineado correctamente, 965 así. Da click en el mapa, ahora cambia el ancho mínimo deseado, hazlo jugadores más grandes, uno está por encima del otro, 1250. Al hacer clic en los jugadores nuevamente hazlo log p está por encima del ping 265. Este realmente no necesita uno. Puedes agregar si quieres. Tiene algo de ancho, no falla, tal vez solo 95. Ahora puedes ver que se ve mucho mejor. Agreguemos un espaciador entre el título y los servidores. Veamos si en realidad agregamos el espaciador. No lo hicimos. Voy a buscar a Spacer. Está por aquí en las superposiciones, así que hago clic en él. Tenemos esta caja horizontal. En el cuadro de desplazamiento, necesitamos agregar un espaciador entre esos. Y en la Y aquí, va a ser tal vez algo así como diez. Aún más pequeño, podemos hacerlo más pequeño. En vez de diez, podemos hacerla seis. Ahora podemos compilar ahora, se ve muy bien. Antes de hacer nada, cambiemos también la barra de desplazamiento porque en realidad no se ve bien en este momento. Además, cuando duplicas muchos de los servidores, puedes ver que se va fuera la pantalla y el cuadro de desplazamiento no está funcionando. Esto se debe a que en el cuadro de desplazamiento, que hacer clic aquí y establecer el tamaño a llenar. Cuando lo configuras para llenar, puedes ver ahora que en realidad está funcionando. Si hago clic en la parte más baja aquí, servidor, se puede ver que en realidad está rodando correctamente. Eso está funcionando. Recuerda configurarlo para que se llene. Ahora arreglemos el cuadro de desplazamiento. Si hago clic en el cuadro de desplazamiento y le echo un vistazo al estilo de barra aquí para la imagen normal del pulgar, voy a echar un vistazo a lo que tengo. Si voy a las imágenes, voy a tomar esta barra de progreso llenar amarillo. Voy a dar click y arrastrar esto, esta imagen aquí. No creo que tenga una mejor imagen. A lo mejor éste, pero creo que éste es mejor. Voy a usar esa como caja 0.5 en el margen. Entonces voy a cachorro pegar esto en. El descarado y el arrastre. Para el arrastre, no tengo una imagen separada, solo voy a cambiar el color a un poco. Daca, cuando droll box para el grosor de la barra de desplazamiento, voy a aumentar este a algo así como 32 También para el relleno, necesitamos darle un poco de relleno para que no se superponga. Si abro esto, puedo escribir seis a la izquierda, a la derecha. Realmente no necesitamos, así que aquí solo voy a escribir cero. O el top es dos. Para el fondo es dos está bien también. Ahora puedes ver que también se superpone con nuestros servidores. Tenemos que arreglarlo. Volvamos a la tarjeta del servidor y tenemos que hacerla un poco más pequeña aquí. Echemos un vistazo aquí. Tenemos que hacerlo un poco más pequeño. Se puede ver también en el otro lado. Pero en vez de hacerlo más pequeño, lo que podemos hacer es hacer clic en este cuadro vertical. Y podemos simplemente aumentar el tamaño aquí. Aumentar el tamaño de la caja vertical también funcionará. Como puedes ver si habilitas las líneas de trazos, aún estás dentro de la pantalla. Intenta que se vea bien lo mejor posible. Y creo que algo como esto aquí también por el tamaño en la X e Y o en la Y o mejor dicho, puede hacerla un poco más grande también, se ve mejor. A lo mejor podemos mostrar algo así aquí, o nos detenemos así, porque a veces me detengo en el medio, el jugador en realidad puede ver que hay más servidores aquí abajo. Puedes desplazarte por la posición. De nuevo, voy a ponerla a cero por cero. Y aquí tenemos el navegador del servidor junto con el servidor aquí, cual cambiaremos los valores de dinámicamente. Ahora todo está diseñado y funcionando correctamente. Vamos a hacer clic en Play y en Joint Sera. Puede hacer clic en el servidor. Todo está funcionando bien. Tenemos el sonido, el sonido aquí también. Podemos marcarlas. Este está funcionando. En éste podemos escribir. Todo está funcionando como se espera que lo haga. Así es como se ve, por cierto, en mi monitor de cuatro K, Y así es como se ve en el portátil. Se puede ver en el portátil, casi llena toda la pantalla. No obstante, para mi monitor de cuatro K, se ve así. Nuevamente, siempre puedes escalarlo más haciendo click aquí abajo. Y luego puedes jugar con esta configuración de escalado y hacer que también se vea más grande en mi pantalla. Ahora si lo deseas, siempre puedes hacer un botón de retroceso. Hagámoslo realmente rápido. Si acabo de copiar este botón aquí, solo lo copio. Control C, hago clic aquí, estoy de vuelta aquí. Control V, dentro de esta caja horizontal. Voy a arrastrarlo hasta aquí. Yo solo voy a decir atrás aún mejor a veces para el botón Atrás, siempre se puede tener un como un icono que no tome espacio para esto de vuelta. Voy a hacer un espaciador otra vez, el control por aquí. El control V aquí abajo. Y sólo voy a arrastrarlo por aquí. Ahora tenemos espacio entre esos también. Ahora para este botón de aquí, en lugar de hacerlo así de grande para que no ocupe demasiado espacio, siempre puedes hacer clic en auto en la superposición en lugar de llenar. Y luego con el texto, puedes darle un poco de relleno a la izquierda y a la derecha para que no se vea tan diminuta. La izquierda, le voy a dar un relleno de digamos 15 y derecha 15, Dale un poco más. Vamos a darle 25, 25, incluso un poco más. 30 por 30, algo así. Incluso puedes hacerlo un poco más grande, vamos a hacerlo un poco más grande. No es difícil presionar 35 por 35, algo así. Ahora puedes ver que el botón Atrás también está funcionando, y puedes hacerlo de otro color si así lo deseas. Siempre se pueden cambiar los colores de estos. Entonces el botón Atrás, puedes seguir adelante y cambiarlo, por ejemplo, de nuevo al utilizado antes. Fue el verde, Algo así, si lo deseas, Pero solo voy a tenerlo todo del mismo color. Creo que se ve bien. Ahora también tenemos un botón de retroceso. Bien, todo está funcionando correctamente. Vamos a saltar a la siguiente lección. 33. 4.04 Adición del servidor a la lista: Ahora estamos listos para hacer la programación para la interfaz de usuario, ya que estamos terminados con el diseño. Así que vamos a saltar a la derecha en él. Vamos a abrir el navegador Sera dentro de aquí. Antes de hacer algo, en realidad quiero hacer clic en este. Ocultar servidores completos. Voy a cambiarlo. Creo que para mí es mejor hacer ocultar servidores vacíos porque creo que es mejor si solo escondo los servidores vacíos o nadie está jugando. Creo que eso es mejor también para estos servidores. Sigamos adelante y eliminemos todos porque ahora los vamos a agregar. Aquí solo tenemos el cuadro de desplazamiento. Bien, todo se ve bien. Ahora vamos a hacer clic en el botón Refrescar. Llamemos a este botón Refrescar. Ahora vayamos al fondo de la misma y hagamos clic en Ahora. Simplemente eliminemos todo esto por ahora. Con el clic para el botón Refresh, queremos encontrar sesiones Golpeemos desde aquí y busquemos. Encuentro Sesión Avanzada, Sesión Avanzada aquí. Encuentra Sesiones Avanzadas. Sigue adelante y selecciona esa para el controlador del reproductor. Golpeemos una vez más y jueguemos al controlador. Sigue adelante y selecciónala para obtener los resultados máximos. Esta es la cantidad de servidores que vas a encontrar y yo sólo voy a encontrar nueve servidores. Sólo tienes que seguir adelante y buscar tantos servidores usando tierra. Eso vamos a agregar más adelante. Por ahora, en realidad no te preocupes por este. Vamos a buscar todo tipo de servidores. Puedes ver, puedes buscar entre servidores cliente qué jugadores han creado, o servidores dedicados que se ejecutan en otra PC. Busca solo por todos los servidores. Para los filtros, éste en realidad no está funcionando. También investigué sobre esto porque estaba tratando de usarlo y en realidad no está funcionando Vamos a usar otro nodo llamado para buscar filtro. Puedes ver este filtro de resultados de sesión. Vamos a usar esa en su lugar. Todo lo demás parece estar bien. Yo sólo voy a continuar aquí. Siempre que encontremos los resultados para los servidores, lo que queremos hacer es que queremos arrastrar desde aquí y decir para cada bucle vamos a hacer un loop Ahora en vez de conectarlo aquí arriba, voy a desconectarlo de aquí y conectarlo hacia abajo al éxito. En cambio, siempre que encontremos servidores, estos son los servidores que encontramos. Ahora vamos a revisar todos los servidores que encontramos. Para cada uno de ellos, para cada uno de los servidores queremos crear widgets. Queremos crear la tarjeta de servidor porque cada vez que encontremos un servidor, queremos crear un cable de servidor y queremos crear un cable de servidor y queremos agregar esa tarjeta de servidor aquí. Volvamos por la tarjeta del servidor. Tenemos que agregar esta sesión. Esta es la sesión que acabamos de encontrar. Este es el servidor al que queremos unirnos. Vamos a la tarjeta del servidor. Ahora, abre la tarjeta del servidor, está fuera de aquí. Quiero en la gráfica hacer una nueva variable y llamar a esta sesión encontrada en el tipo buscar resultados de sesión de blueprint, dando click en ella compilar Ahora por aquí quiero enchufar esto a la variable, así que la almacenamos como una variable. Dentro de aquí tenemos alguna información que tienes para convertirla en una instancia Editable y exponer sobre spawn Y seguir adelante y compilar. Lo que eso hace es que lo haga aparecer aquí. Si haces clic en Archivo ahora y refrescas todos los nodos, puedes ver que aparece aquí abajo, para que puedas arrastrarlo y soltarlo. Ahora en realidad tienes alguna información para esa sesión dentro de esta variable, que podrás usar más adelante. Porque recuerda en el código del servidor, tenemos este botón aquí donde nos unimos al servidor cada vez que hacemos clic en el cable, cada vez que hacemos clic en la tarjeta. En el futuro, podremos unirnos a este servidor porque ahora tenemos la información del mismo para cada servidor que encontremos. Sigamos adelante y creamos un código de servidor. Agreguemos ese código de servidor a la lista de servidores. Para el cuadro de desplazamiento, voy a llamarlo scroll box SB y luego lista de servidores. Adelante y conviértalo en una variable. Ahora vamos a arrastrarlo hasta aquí. Arrastre desde aquí y diga agregar niño. Ahora vamos a añadirle este cordón. Antes de que lo hagamos recuerda también tienes que quitar los servidores antiguos si actualizas y bien servidores si vuelves a hacer clic en refrescar tienes que eliminar los antiguos. Para hacerlo volvamos aquí. Antes hacemos el trapo de sesión fina en la lista de servidores una vez más y luego borramos a los niños Vamos a borrar los servidores antiguos de la lista y luego vamos a empezar a buscar de nuevo servidores. Esto ya debería funcionar. Ahora bien, si hago clic en Play, permítanme hacer en realidad dos jugadores aquí. Y voy a jugar como servidor de escucha. Y hago clic en reproducir aparece en mi segunda pantalla. Ahora en mi pantalla aquí, solo voy a hacer un servidor aleatorio haciendo clic en Crear. Y voy a intentar unirme a ella aquí. Si hago clic en Refrescar, debería esperar un poco aquí porque lleva algún tiempo encontrar servidores. Y una vez que se haya refrescado, debería aparecer por aquí y debería poder verla. Lo puedo ver aquí. Se puede ver que el nombre es incorrecto, toda esta información es incorrecta. Esto se debe a que en realidad no hemos codificado la información para el código del servidor. Pero puedo ver mi servidor. Este es el servidor que he creado aquí. Si hago clic en él, no pasa nada porque aún no hemos codificado la sesión conjunta, pero sabemos que está funcionando ahora. Y ahora dice que solo se pueden asignar leyes de control locales a los widgets. Y veamos qué está pasando aquí. Por aquí, nos está diciendo que solo los controles de jugadores locales pueden crear esto aquí. Y esto es porque, por cierto, no va a pasar para ti, para tu juego. Porque estoy jugando como dos jugadores y recuerdo que el menú principal está en un solo jugador. Esto se debe a que estoy tratando de correr para jugar como servidores de escucha en la misma computadora en el menú principal de un solo jugador. Es por eso que esto está sucediendo si quieres arreglarlo también para que no obtengas ese dólar todo el tiempo. Siempre puedes hacer clic con el botón derecho aquí y buscar controlador de jugador local y tomar en este llamado Is Local Player Controller. Sigamos adelante y lo agreguemos aquí abajo antes de que hagamos algo con la interfaz de usuario para que no nos dé esa era. De nuevo, tomando en la sucursal y seguir adelante y conectarlo. Si es un controlador de jugador local, continúe y haga todas las cosas de la interfaz de usuario. Si no lo es, no hagamos nada. Siempre puedes seguir adelante y hacer clic en Reproducir. Intente de nuevo crear un servidor como este, tratando de unirse y así sucesivamente. Debería darnos la época, si como antes, pero la hemos arreglado ahora. Por lo que en realidad no debería darnos la época. Pero se puede ver que no tenemos una era para ir y venir en los menús. Bien, así que eso fue todo. Podemos encontrar sesiones, pero vamos a hacerlo más complejo durante las clases. Ahora saltemos a la siguiente lección. 34. 4.05 Agregar un indicador de servidores refrescantes: El problema que tengo con esto ahora mismo es que cada vez que actualizo, no me sale un indicador para saber si en realidad estoy actualizando los servidores o para qué estoy ganando El jugador estará un poco confundido. Porque imagina que hago clic en Refrescar ahora, y aquí está vacío y no sé qué está pasando. Tengo que saber que en realidad está refrescando los servidores. Cerremos esto y vamos a crear esto. Ahora esto es muy, muy sencillo. Solo necesitamos agregar algunos textos para que el jugador sepa que es refrescante si solo copio uno de los textos. Éste por ejemplo, Control C. Voy a bajar, veamos, tenemos la caja horizontal. Caja vertical, y tenemos la superposición aquí. De hecho voy a pegarlo en este control de superposición V aquí. Vamos a decir refrescar servidores, por favor. Vamos a decir refrescar servidores, por favor espere, voy a duplicar éste porque cuando no encontremos servidores, sólo voy a ocultar el primero. Para que pueda ver el segundo. Este va a decir que no se encontraron servidores. Esto es cuando buscamos, pero en realidad no hay servidores. Ahora tenemos a estos dos. Éste y éste. Simplemente puedes esconder uno de ellos si lo deseas , para que no se vea raro. Al hacer clic en el primero, voy a llamar a servidores refrescantes. Al segundo voy a llamar un mensaje de texto. No hay servidores, no hago click en ambos y los hago dos es variable. Ahora vamos a la gráfica aquí. Cuando busquemos una sesión, tomemos el texto refrescante de los servidores. Vamos a arrastrarlo y decir visibilidad del conjunto de visibilidad. Ahora vamos a mostrarlo a la pantalla y vamos a mostrarlo como comprobable. Nuevamente, no interactuamos con él con el ratón. Una vez que haya encontrado sesiones aquí, deberíamos arrastrarlo y decir set visibility to hidden porque ahora hemos encontrado servidores y ya no necesitamos ver esto. Sin embargo, si no encontramos ningún servidor, deberíamos tomar esto y decir establecer visibilidad para golpear comprobable. Porque ahora queremos demostrar que no hemos encontrado ningún servidor. ¿Cómo sabemos que esto es? Porque si los resultados son cero, si tomas esta matriz, digamos length, si la longitud de esta matriz, digamos si es mayor que cero, entonces encontramos sesión. Podemos arrastrar aquí y decir rama conectada. Ahora estamos diciendo que si la longitud de esta matriz resulta aquí, es mayor que cero. Esto significa que hemos encontrado un servidor. Entonces podemos seguir adelante y hacer todo esto. Sin embargo, si no encontramos un servidor, si está vacío, necesitamos mostrar este donde no encontramos un servidor. Ahora recuerda, este también necesita estar oculto. Siempre que empezamos, sólo me voy. Pégalo aquí, vamos a configurarlo en oculto y conectado. Ahora bien esta la vamos a quitar de todas formas, aunque sea cero o nueces. Después de refrescarnos aquí sobre el éxito, sigamos adelante y ocultemos esto. Sólo voy a conectarlo aquí abajo otra vez. Vamos a alejar las cosas. Hay espacio. Empuja esto hacia abajo así. Simplemente siga adelante y haga doble clic en las notas aquí para hacer rerutas y hacer que todo se Bien, eso debería hacerlo. Si compilamos y clic en Reproducir solo para ver qué estamos haciendo aquí, permítanme simplemente crear un servidor. En la pantalla aquí, creo uno, Vamos a unirnos al servidor. Se puede ver, podemos verlo enseguida. De hecho tengo que hacer algo al respecto. Al hacer clic en el primero, solo queremos ocultar esto. No se encontraron servidores. Por defecto, debemos bajar y establecer la visibilidad en oculto. Sin servidor, este está oculto. Ahora para este, debería actualizar los servidores de inmediato cuando me conecto al navegador del servidor. No debería esperar solo para presionar el botón de actualización, porque es molesto que tengas que presionar el botón de actualización la primera vez que te unes al navegador del servidor. Lo que podemos hacer es agregar este código a la construcción del evento. Nuevamente, esto es como un evento de inicio, juego. El evento construye de nuevo, en lugar de simplemente copiar todo esto, solo voy a seleccionarlo todo. Todo el código aquí, vamos a colapsar en una función. Ahora notarás que no puedes colapsar en una función. Verás aquí si hago clic derecho y contrajo para funcionar, puedes ver que no puedes colapsar a una función. Esto se debe a que cuando tienes eventos cronometrados, cuando ves este reloj en la función, no puedes contraer una función como esta en un evento En su lugar, hagamos clic derecho y contrámoslo en una macro. La diferencia entre una función y una macro es la macro, en realidad puedes hacer múltiples pines de ejecución. Solo cambiemos el nombre por ahora. Llamémoslo si Encuentra Sesiones. Ahora dentro de esta macro, vamos a agregarla aquí dentro de una macro. La diferencia entre una función y macro está en la función, puedo hacer algo y puedo arrastrar esta función aquí y trabajar con ella. Sin embargo, una macro, puedes hacer lo mismo, pero en realidad puedes tener múltiples pines de ejecución. Puedo tener múltiples pines de ejecución. Y puedo hacer más cosas aquí con los pines de ejecución. Este es el rasgo único de una macro, pero por ahora, vamos a eliminarlo en lugar de la macro. Déjame poner las cosas aquí. Está limpio en la salida. Podemos simplemente hacer una salida aquí cuando solo quieres una salida sin aquí. Pero puedes hacerlo, el secreto es simplemente escribir entonces. Si escribes entonces entonces el texto desaparecerá. Vamos a conectarnos. Todo se ve genial. Eliminemos esta nueva función que hice. Ahora para la sesión fina, podemos arrastrarla y conectarla a la construcción del evento. Hago clic en Reproducir y hago clic en servidor conjunto. Debería hacer esto ahora debería decir que no se encontraron servidores porque en realidad no creé ningún servidor todavía esperando. Ahora dice que no se encontraron servidores. Si vuelvo a hacer clic en actualizar, porque ahora en realidad creé un servidor. Ahora debería mostrar mi servidor. Debería ocultar todo el texto que estoy aquí. Ahora debería aparecer. Aquí vamos. Si vuelvo a hacer clic en actualizar, debería aparecer una vez más. Todo está funcionando correctamente como se supone que debe hacerlo. Ahora el jugador sabe que se están actualizando los servidores. Y sigamos adelante. 35. 4.06 Función de resultados de sesiones: Bien, entonces lo que quiero hacer es aquí, en las sesiones finas, quiero separar las sesiones finas de cuando filtras. Haga clic derecho en buscar filtro y tenemos este llamado resultados de sesión de filtro. Este lo quiero hacer en una función separada en lugar de simplemente continuarla y hacerlo aquí. Porque cuando filtramos, cuando hacemos clic en Reproducir y unirse al servidor, filtramos por servidores terrestres. Cuando filtramos por idiomas, imagina cuando haces clic en uno de ellos y tienes que a actualizar todos los volver a actualizar todos los servidores, no quiero hacer eso. Por ejemplo, digamos que somos ingleses, lo estamos cambiando al alemán. Imagínese si hacemos eso, entonces tenemos que encontrar sesiones nuevo y tuvo que encontrar todas las sesiones de nuevo. Se borran las sesiones antiguas. Yo no quiero hacer eso. Quiero que se filtre de las sesiones que ya encontramos. En lugar de hacer el filtro dentro de aquí, hagámoslo en una función separada. Voy a crear una nueva función aquí y llamar a esta, mostrar resultados de sesión. Golpeemos desde aquí y digamos los resultados de la sesión de filtro. Adelante y usa esta función. Ahora podemos filtrar por los servidores por los que queremos filtrar. Ahora aquí necesitamos un resultado de sesión. Volvamos a definir sesión. Necesitamos este insumo aquí. Ahora todo este código aquí que tenemos, en realidad podemos agregarlo al filtro porque no lo necesitamos dentro de aquí, la longitud también. Solo voy a seleccionar todo esto y luego controlar X para recortarlo e ir a los resultados de la sesión del espectáculo. Sólo voy a pegarlo aquí abajo para que no perdamos esta información. Ahora para las sesiones finas aquí, lo que voy a hacer es simplemente voy a eliminar esta. Haga clic derecho aquí, promueva esto a una variable. Llamemos a esta sesión resultados. Adelante y conéctalo después de éste. Y haga doble clic para hacer un nodo de ruta posterior, hacerlo limpio. Después de encontrar los resultados de la sesión, sigamos adelante y mostremos los resultados de la sesión. Porque ahora vamos a filtrar por ello. Necesitamos un insumo para ello. Voy a dar click sobre esta función. Hacer una entrada para el tipo. Nuevamente, busque los resultados de la sesión de blueprint, conviértalo en una matriz Si haces clic aquí, puedes convertirlo en una matriz. Ahora llamémoslo Found Sessions. Y conectemos esto juntos aquí. Ahora cada vez que se actualice, vamos a encontrar los resultados de la sesión, los vamos a almacenar en una matriz Y luego los vamos a enchufar a esta función, cuyo propósito es filtrar o lo que sea para lo que estemos filtrando. Lo que sea que le digamos para filtrar, va a hacer eso. Ahora que ya terminamos aquí, vamos a entrar en esta. Ahora lo que podemos hacer es tomar esto y conectarlo a los resultados de la sesión, así como así. Ahora en lugar de hacer esto, en realidad me di cuenta podemos hacer un pin menos porque podemos simplemente tomar este y podemos enchufarlo y de hecho puedo borrar esto de aquí afuera y compilar porque aquí afuera en las sesiones finas, realmente no lo necesitamos para conectarlo aquí. Haga clic en todos y haga clic aquí. Realmente no necesitamos una entrada porque la estamos usando como una variable separada aquí. Realmente no necesitamos una entrada aquí para enchufarlo. Entonces podemos tener una entrada menos porque solo podemos usar esta variable que es más parecida. Ahora necesitamos agregarle algunos filtros para que no nos dé este error. Podemos filtrar en la siguiente lección. Por ahora, solo saltemos el filtrado. Pero lo que podemos hacer es simplemente volver a conectar este código, lo que sea por lo que filtremos Nuevamente, trata de ver si la longitud de la misma está por encima de cero. Si el de él no está por encima de cero, entonces necesitamos demostrar que no se han encontrado servidores cuando estás filtrando. Y vamos a hacer que se vea mejor aquí. aquí de nuevo for loop solo podemos conectar este resultado de sesiones en su lugar y eliminar este de aquí arriba. Ahora bien este debería funcionar bien, igual que antes. Si compilamos ahora puedes ver que obtenemos un error porque no hemos agregado ningún filtro. En lugar de hacer algo más en esta lección, saltemos a la siguiente lección y agreguemos un filtro aquí. 36. 4.07 Filtrado para el idioma del servidor: Bien, así que aquí es donde lo dejamos. Vayamos ahora a la gráfica de la camioneta. Y ahora tenemos que filtrar por el idioma Sera. Si haces clic aquí arriba, baja a la parte inferior y selecciona éste en la selección cambiada, ahora el ítem seleccionado es el idioma. Así que solo voy a hacer clic derecho aquí, promover esto a una variable, y llamar a esto un lenguaje de servidor. Este es el idioma del servidor que queremos filtrar. Puedes llamar a la variable quieras, realmente no importa. Ahora, filtrando a esto, voy a agregar la función que hicimos aquí. Entonces agregando esta función, vamos a establecer esto en una variable. Y entonces realmente no vamos a refrescar los servidores, pero vamos a filtrar los servidores dentro de aquí. Lo que podemos hacer es alejar todo esto para que tengamos algo de espacio. Arrastremos desde aquí y digamos que estamos haciendo una matriz igual que antes. Vamos a hacer aquí, tienes esta llamada propiedad literal de búsqueda de sesión. Ahora otra vez, arrastra de aquí y di make una vez más. Y queremos filtrar una cadena. Porque tenemos una cadena, tenemos un lenguaje de servidor, hazlo. Ahora tienes que agregar la clave que agregaste antes. Si no recuerdas lo que hiciste, siempre puedes volver a los planos Abre la instancia del juego. Dentro de aquí, filtramos para el idioma del servidor. Puedes salir y copiar esta llave. Puede volver al navegador del servidor. ¿Esta llave está aquí abajo? Ahora, tratando de encontrar lenguajes de servidor que se ajusten a lo que sea que intentes filtrar. Ahora puedes arrastrar esto hasta aquí. Por ejemplo, si éste está diciendo chino, va a buscar todos los servidores que tenían el idioma chino para ellos cuando fueron creados. Así va a funcionar esto. Si compilo ahora, ya no deberíamos obtener ningún error. Ahora podemos hacer esto un poco mejor porque si voy al diseñador del navegador del servidor, se puede ver que tenemos el idioma inglés. Sin embargo, no lo hacemos, donde mostramos todos los servidores, quiero eso porque quiero ver todos los servidores, el inglés, el alemán, el chino y el francés, todos a la vez. No quiero ver solamente inglés. Vamos a hacer clic en más Responder, o escribir todo aquí en el índice. Sólo voy a arrastrarlo por encima de todos ellos. Está aquí arriba. La opción de seleccionar, en realidad voy a configurarlo a todos. En cambio, adelante y compile y debería decir todo Ahora, por defecto ahora para el lenguaje all, no es realmente un idioma. No queremos filtrar por nada si el jugador lo ha puesto a todos. Porque queremos mostrarlo todo. Si intentas imaginar cómo puedes realmente hacer esto. En situaciones como esta, lo mejor es usar un nodo select si queremos filtrar o no. Dependiendo de si este es este valor o ese valor arrastrando desde los filtros, voy a buscar el nodo select Una vez más, vamos a seleccionar dependiendo de si este filtro para servir una cadena de idioma es igual a todos o no. Voy a arrastrar, si escribes tres cadenas iguales, esto es igual, exactamente, la cadena es exactamente igual a todos. Podemos arrastrarlo hasta aquí. Ahora lo que estamos diciendo, si la cadena aquí es exactamente igual al valor, si eso es cierto, no queremos filtrar. Esto va a estar vacío. Sin embargo, si es falso, lo que significa que en realidad seleccionamos un idioma, queremos conectar esto con el falso. Ahora estamos filtrando por un idioma porque hemos seleccionado uno. Déjame solo esto aquí así, y todo se ve bien. Ahora, antes de probar el juego, hagamos clic en el filtro para servir un idioma. Y recuerda que tenemos que establecer esto por defecto a todos. Hay que seleccionar esta variable y escribir toda por defecto, porque esto es lo que es por defecto. Ahora vamos a hacer clic en Reproducir. Aquí en mi segundo monitor, voy a crear un servidor, solo uno aleatorio. Y llamémoslo, o seleccionemos chino, por ejemplo, y creamos el servidor. Ahora por aquí en el servidor conjunto, intentemos esperar al servidor y veamos si podemos encontrarlo. Y cuando lo encontremos, veamos si el filtrado ahora está funcionando. Ahora encontramos el servidor y es chino. Lo puedo ver. Si me cambio al inglés, dice, no se encuentra ningún servidor. Pero ahora tenemos un error porque necesitamos eliminarlo realmente. Niños claros, nos olvidamos de limpiar a los niños. Pero se puede ver cuando selecciono todo puedo ver el servidor chino. Selecciono chino, lo puedo ver también, en realidad está funcionando. Sin embargo, también tenemos que limpiar a los niños. Dentro de aquí. Si tomo la lista de servidores, puedo decir claro hijos, eliminamos los viejos o agregamos los nuevos así. Ahora bien, debería funcionar bien. Sólo voy a saltar adelante hasta que encuentre el servidor. Bien, aquí estamos una vez más. Y me he refrescado y encontré mi servidor una vez más. Si cambio el idioma a alemán, no veo ningún servidor encontrado. Me cambio a inglés. Aquí no hay nada. Cambié a chino, puedo ver mi servidor, cambié a francés. No puedo cambiarlo a todo lo que pueda ver mi servidor. Una vez más, el filtrado para el idioma está funcionando perfectamente increíble. Ahora, podemos cerrar esto. Ahora, antes de que termine esta lección, agreguemos un lingote para que no nos pongamos el juego porque ahora mismo puedes mostrar, puedes filtrar aquí usando los resultados de esta sesión Aunque porque técnicamente solo puedes hacer clic en Joint Sera y puedes comenzar a filtrar justo antes encontrar o terminar actualizar los servidores y esto te molestará en el juego. Para evitar esto, podemos hacerlo mediante una simple variable. Si haces clic en el plus aquí arriba. Si llamas a esta variable, llamémosla es refrescante lista de servidores. Vamos a arrastrar desde aquí. Vamos a arrastrar en este jalón. Y si arrastramos, y tiramos y seleccionamos éste, jalamos. Ahora lo que estamos diciendo, no estamos refrescando la lista de servi Hacer una rama, luego seguir adelante y hacer el filtrado. No obstante, si en realidad estamos filtrando, no queremos hacer nada porque lo contrario vamos a hacer frente al juego. Esta es refrescante lista de servi. Tenemos que configurarlo en true siempre que estemos filtrando o encontrando sesiones en la sesión final, cada vez que empecemos a encontrar la sesión, voy a arrastrar esto y configurarlo en true. Estamos refrescando al servista por aquí cada vez que terminemos El refrescante, quiero arrastrarlo justo antes de que filtremos aquí. Quiero decir que es refrescante. Servista ahora es falso porque ya no nos estamos refrescando. Entonces ahora va a entrar de aquí y va a hacer lo suyo. Si compilamos play y me uno, trato de hacer esto, ya ves que no está molestando porque sigue refrescando los servidores Y va a hacer automáticamente este filtrado porque cuando termine va a filtrar y automáticamente va a leer este filtro para servir un valor de idioma que tal vez esté establecido en chino en ese momento. Y entonces todo va a funcionar bien. Bien, eso fue todo por ahora. Vamos a saltar a la siguiente lección. 37. 4.08 Filtrado solo en servidores LAN: Ahora vamos a filtrar por los servidores de línea. Si vuelvo y tomo esta casilla de verificación y voy a llamar a esta verificación por ejemplo, puedes darle el prefijo que quieras. Llamemos a esto uno solo servidores de línea y compilemos, configurarlo dos es variable. Ahora volvamos a la gráfica y aquí para la casilla, vamos a dar clic en este evento sobre cambio de estado, obtenemos un toro aquí está marcado. Podemos ver si la casilla de verificación está seleccionada o no. Vamos a hacer clic en éste. Promover esto a una variable. Llamemos a éste, Sólo servidores terrestres. ¿Bien? Si se comprueba, entonces solo queremos mostrar los servidores terrestres. Si no se comprueba, entonces solo los servidores terrestres son falsos. Bien, repasemos y veamos qué podemos hacer con éste. Ahora, en sesiones definidas, tenemos este plug aquí o esta entrada donde podemos agregar en servidores terrestres. Sin embargo, para encontrar sesiones realmente quiero encontrar todas las sesiones y luego cuando encuentre todas las sesiones quiero filtrar los servidores terrestres de ellas. En lugar de agregarlo aquí, agreguémoslo a nuestro filtro. Pasemos a la función show session results que creamos dentro de aquí. Aquí en el filtrado ahora ya estamos filtrando para el lenguaje serveral. Lo que podemos hacer ahora, al igual que antes, podemos hacer una nueva entrada aquí, romper con ella y buscar nuevamente la propiedad make literal session. Buscar propiedad. Déjame simplemente arrastrar esto arriba aquí, en realidad, así no veo esto y puedo arrastrar todo esto hacia abajo. Tenemos más espacio. Dará click en éste, ahora está más limpio. Lo queremos hacer aquí abajo otra vez, de cierre, hacer. Ahora tienes un valor de lingotes porque ahora tienes un lingote Tomemos el bullying por aquí. Ahora vamos a arrastrar esto solo servidores terrestres a los lingotes. Ahora bien, para la clave, realmente no hemos agregado la clave porque recuerda que estas claves provienen de la instancia del juego aquí. Realmente no agregamos una clave para usar servidores terrestres o no. Añadamos uno. Vamos a hacer clic en el más. Golpeemos desde aquí y digamos hacer un lingote de propiedad de sesión literal Ya tenemos este valor de suelo de uso. Podemos simplemente arrastrar esto aquí y hacer doble clic una vez más para hacer un nodo de ruta posterior. Ahora estamos usando éste. Podemos llamar a éste como queramos. Por ejemplo, se le puede llamar usar tierra y salir a compilar. Ahora tenemos esto. Si el uso de la tierra es cierto aquí, entonces éste va a ser cierto. Lo que podemos hacer aquí, entonces podemos cambiar esta clave para usar también la tierra. Ahora se va a echar un vistazo a lo que es este valor de suelo de uso cuando estamos filtrando. Si solo los servidores terrestres son ciertos, entonces solo vamos a encontrar servidores terrestres por aquí. Ahora también queremos encontrar servidores terrestres aquí en esta entrada porque ahora realmente no importa si el lenguaje del servidor de filtros que es igual a todos, si es falso o no. También queremos buscar servidores terrestres aquí abajo también. Porque recuerda este nodo selecto que hicimos porque queríamos ver si el idioma del servidor estaba configurado para todos o no. Teníamos estos dos insumos ahora, pero para los servidores terrestres, realmente no nos importa qué idioma estés buscando. Este en lugar de solo ser entrada aquí, lo que podemos hacer es arrastrar y decir make array una vez más. También tenemos que conectarlo aquí porque si no recuerdas si el idioma del servidor está configurado para todos, estamos viendo todos los idiomas, entonces vamos a bug cuando intentemos encontrar para servidores terrestres porque este va a estar vacío y no pasa nada. Tenemos que conectar esto aquí abajo también. Espero que no sea demasiado confuso. Bien, ahora antes de que probemos todo, volvamos al gráfico de eventos. Recordemos también actualizar el filtrado cuando establecemos este estado en true y false cada vez que marcamos esta casilla de verificación. Asegurémonos de que también refresquemos aquí. Utilice esta función. Ahora vamos a probar el juego. Voy a crear un sera aquí. En mi segundo monitor, voy a crear un sera. Y solo podemos seleccionar tierra, y voy a hacerla francesa, luego Create. Ahora aquí, vamos a unirnos a un servidor ahora, esperémoslo. Lo que debería decir ahora es que no se encuentran servidores porque en realidad es un servidor terrestre y no es un servidor público. Ahora puedes ver aquí dice que no se encontraron servidores, pero cuando hago clic en solo servidores terrestres, debería encontrar el servidor y lo hace aquí. Sin embargo, tenemos un error aquí abajo con el no servidores encontrados. Tenemos que arreglar esto. Pero como pueden ver, cuando lo agrego y lo elimino, el filtrado del servidor servidor en realidad está trabajando con los servidores que no encontraron este texto aquí. Podemos simplemente controlar C y controlar aquí abajo porque siempre que se muestre la primera vez, siempre que no encuentre nada, siempre que no encuentre nada, no se va a ocultar cada vez que encuentre más adelante. Porque nunca hemos especificado aquí que se debe ocultar por defecto. Así que vamos a conectarlo aquí y configurarlo oculto cada vez que volvamos a buscar, y ese problema debería ser arreglado. Ahora también estamos filtrando para servidores de línea. Pasemos a la siguiente lección y verifiquemos los servidores vacíos. 38. 4.09 Ocultar servidores vacíos: Derecha. Bienvenido de nuevo. Ahora vamos a Ocultar los servidores vacíos. Para ello, esto es muy sencillo. Ahora podemos dar click en Ocultar Servidores Vacíos. Vuelva a marcar Casilla. Cambiémosle el nombre a Check. Llamémoslo Ocultar Servidores Vacíos. Ahora vamos a convertirlo en una variable con esta. Bajemos al fondo una vez más y hagamos clic en verificar. Cambiado aquí. Hagamos clic derecho y promocionemos esto a una variable y llamemos a esta Ocultar servidores vacíos. Ahora esta encuesta en lo que tenemos que hacer es que podamos ir a la macro de sesiones finas. Tenemos éste diciendo servidores no vacíos solamente. Para que podamos arrastrar esto hasta aquí, esconder servidores vacíos y conectarlo. Siempre que tengamos un hide empty servers true, esto significa que no queremos ver servidores vacíos, entonces este debería ser verdadero, solo servidores no vacíos. Eso es en realidad. Entonces lo que podemos hacer ahora es bajar aquí, clic en esta macro en ella, y luego tenemos que refrescar las sesiones nuevamente. Porque tenemos que volver a encontrar sesiones donde no haya ninguno de los servidores vacíos solamente. Eso debería funcionar bien. Ahora podemos compilar y saltar a la siguiente lección. 39. 4.10 Filtrado para el nombre del servidor: Bien, entonces lo último aquí, queremos filtrar por el nombre del servo también. Entonces, al hacer clic en este cuadro, cambiémosle el nombre a Nombre del servidor de entrada. Ahora, ya hice esto y configurándolo en variable. Ahora lo que podemos hacer aquí en la gráfica, vamos a dar clic en él y dar clic en Cambio de texto, así conseguimos este evento. Ahora, para este texto, vamos a configurarlo en cadena, así que configúrelo en una cadena y haga clic derecho y promoverlo a una variable. Y llamemos a este filtro al nombre del servidor. Nuestro filtrado a este servoname que escribimos aquí. Nuevamente, recuerde ejecutar esta función porque tenemos que ejecutar el filtro cada vez que cambiemos este valor, abrirlo. Ahora, para el servoname, tal vez tengas la tentación de agregarlo aquí abajo. Pero el problema con este de aquí abajo es, se puede ver que trata de comparar esta cadena, por ejemplo, porque el lenguaje de servicio es igual a. Entonces este lenguaje de servicio aquí, siempre que sea igual a algo, va a filtrar. Para el nombre del servo, por ejemplo, si el reproductor de aquí y el nombre del servo solo escribe H E. En lugar de escribir hola, por ejemplo, el jugador escribe H E. Aún debe encontrar el servidor. Pero no lo haría porque está tratando de ver si la cadena que estás buscando es igual al nombre del servidor, y no sería el caso. Entonces todo esto es que realmente no podemos usar todos estos aquí iguales no iguales mayores que y así sucesivamente, así que no podemos usar esta parte del filtro. Entonces, en vez de eso , podemos ir por aquí, y vamos a hacerlo por aquí en su lugar. Entonces ahora lo que podemos hacer es que podamos tomar este filtro para servir nombre. Ahora, antes de que hagamos un bucle aquí, vamos a comprobar si este filtro para servir nombre está vacío o no. Entonces comprobando si el jugador realmente escribió algo. Así que arrastrando desde aquí y buscando vacío y seleccionando esta función Entonces, ¿es este filtro para cadena servanam? ¿Está vacía? Y yo sólo puedo hacer una sucursal aquí. Si está vacío, esto significa que el jugador no ha escrito nada. Y cuando el jugador no escribe nada, podemos simplemente seguir adelante y hacer un bucle como sea que lo hicimos antes, así que nada cambió. No obstante, si el jugador ahora escribe algo en la caja, tenemos que hacer algo aquí abajo. Ahora, no realmente aquí abajo sino aquí abajo en las cataratas. Entonces con esto, podemos simplemente copiar y pegar este código por aquí, y ahora podemos conectarlo. Antes de agregar todos los servidores a la lista aquí, podemos simplemente arrastrar esto lejos. Y podemos arrastrar esto y decir, obtener ajustes adicionales. Ahora bien, esta función aquí, en realidad la vamos a usar en el código del servidor eta. Entonces este, vamos a conectarnos por ahora. Así que obteniendo los ajustes adicionales, De nuevo, los ajustes adicionales. Recuerda, estos son de la instancia del juego. Puedes ver aquí, lo llamamos configuraciones extra. Entonces vamos a conseguir el servame de aquí. Esto es lo que estamos tratando de hacer. Estamos obteniendo este valor que se bloqueó aquí. Entonces yendo al navegador del servidor, una vez más, desde la configuración de G, obtener configuraciones adicionales. Podemos volver a arrastrar y decir, Get y ahora queremos conseguir una cadena porque queremos obtener el servaname Entonces ahora aquí, busquemos el nombre del servidor. Recuerda, esta clave es la clave que escribiste aquí, y yo la escribí y llamé servam para que puedas copiar esto aquí, y luego ahora tenemos este nombre de servo Entonces, ¿qué podemos hacer con él? Podemos intentar compararlo. Y lo bueno de una cadena, es por eso que aquí en el gráfico de eventos, lo hice a una cadena. Por eso no lo convertí en una variable de texto porque una cadena, puedes modificarla de tantas maneras. Entonces, si solo buscas cadena, porque tienes todas estas funciones puedes usar para usar realmente algo con la cadena. Y el que quiero usar es el que se llama Contiene. Si vas aquí arriba, tienes esta llamada Contiene. Si haces clic en él, ahora estás buscando en esta cadena. Y mientras estás buscando en la cadena, estás tratando de ver si contiene algunas de las letras que el jugador escribió aquí desde el filtro hasta servanam si ese es el caso, así que vamos a hacer una rama aquí y seguir adelante y conectarla aquí en el encontrado Y repasemos y conectemos esta parte de aquí abajo. Entonces ahora, está tratando de encontrar si puede encontrar un servidor que contenga este nombre de servidor que el jugador ha escrito, y si se puede encontrar, vamos a agregarlo a la lista. Si no se encuentra, no vamos a hacer nada. Entonces esto debería hacerlo. Ahora, hagamos doble clic en este y hagamos un nodo de ruta posterior y hagamos que se vea mejor. Ahora, sigamos adelante y veamos si funciona. Entonces voy a hacer click en jugar ahora. Y ahora sólo voy a crear un servidor aquí en mi segunda pantalla, da clic en crear sera. Ahora voy a llamarlo algo real aquí. Solo voy a llamarlo algo así como chino chino único servidor el mejor de todos los tiempos, y luego seleccionar Mirage y luego configurarlo en chino y establecer las ranuras en algo como 16 y hacerlo público y seguir adelante y crear el serv Bien, entonces ahora por aquí, sigamos adelante e intentemos unirnos al serva y siempre que lo encontremos, intentemos ver si todos los filtros funcionan. Entonces específicamente este gran serva porque hemos probado los otros. Entonces ahora intentemos filtrar por el nombre. Ahora bien, para el nombre, realmente no podemos verlo aquí porque aquí no hemos creado la tarjeta serva, así que aún no lo hemos personalizado, pero la llamamos solo china. Entonces solo busco chino, eso debería encontrarlo. No obstante, si solo agrego algo extra, así que ya no es chino, se puede ver que ya no lo encuentra. Si lo borro, recuperamos el servidor, y lo hicimos el mejor de todos los tiempos. Así es como lo llamé. Entonces, si solo busco el mejor de la historia, todavía va a aparecer. No obstante, si solo escribo algo, por ejemplo, como el mejor, y entonces tal vez algo como K aquí afuera, no va a aparecer. Entonces el filtrado para el servidor aquí y la barra de búsqueda está funcionando. Sin embargo, todavía necesitamos codificar es, por lo que en realidad nos muestra la información correcta. Ahora bien, esta está funcionando. Todo bien. Entonces ahora que esto está terminado, pasemos a la tarjeta del servidor y codificemos esa información en. 40. 4.11 Cómo obtener la configuración adicional para la tarjeta de servidor: Bien. Todo bien. Ahora, comencemos dentro de aquí. Entonces volvamos al menú principal de la interfaz de usuario. Y esta vez, vamos a ir a trabajar aquí dentro del Servo Cd. Así que vamos a abrirlo y hagamos clic en el primer texto. Ahora, vamos a cambiarlos todos ahora que lo somos. Entonces el primero, voy a llamar a texto Servanam. El siguiente, podemos seguir adelante y llamar a mapa de juego de texto. El tercero, podemos llamar texto cantidad de slots o cantidad de jugadores. También puedes llamarlos jugadores. Creo que eso es mejor. Y al último que podemos llamar texto Este, la bandera aquí, el icono, sólo voy a llamarlo lenguaje de imagen. Y haciendo clic en todas ellas, podemos seleccionarlas todas y ponerlas en la variable iss, para que podamos codificarlas posteriormente. Ahora, para esta lección, vamos a obtener los ajustes adicionales. Y recuerda, los ajustes extra son los que creamos dentro de la instancia del juego. Así que ahora estamos recibiendo toda esta información. Vamos dentro de aquí. Déjame simplemente borrarlo todo en la tarjeta del servidor. Permítanme crear una nueva función llamada get Extra settings. Bien, entonces dentro de aquí, lo que queremos hacer es que queramos tomar esta sesión encontrada que tuvimos. Recuerde, ingresamos esta información dentro de aquí cuando encontramos los resultados de la sesión Y podemos arrastrar desde aquí y decir, obtener ajustes adicionales. Entonces otra vez, esto es lo que hemos estado haciendo, si vuelvo atrás y les recuerdo aquí en el navegador servo. Recuerden, esto es lo que hicimos. En el navegador servo, obtuvimos los ajustes adicionales y la cadena de propiedad. Entonces esto es básicamente lo mismo que estamos haciendo aquí. Así que obteniendo los ajustes adicionales, arrastra desde aquí y di, consigue. Ahora, estamos obteniendo la cadena de propiedad. El primero que vamos a obtener es el nombre del servidor. Entonces, si solo escribes el nombre del servidor, y por cierto, la clave nuevamente es de la instancia del juego. Entonces, sea lo que sea que escribas aquí como clave para el nombre del servidor, tienes que usarlo aquí, de lo contrario, no va a funcionar. Voy a arrastrar aquí y hacer un nodo de retorno, y con este nodo de retorno, puedo arrastrar esta información hacia aquí, que haga una variable para mí, y puedo usarla más tarde. Y a esta variable voy a llamar Servam. Entonces ahora tenemos el nombre del servidor. Y vamos a arrastrar de aquí otra vez y digamos, consigue ahora voy a conseguir otra cadena. Adelante y conéctalo aquí. El siguiente que quiero obtener Primero consigamos el idioma del servidor. Entonces voy a obtener el idioma del servidor, y vamos a conectarlo. Ahora lo siguiente, otra vez, a partir de aquí, obtener cadena de propiedad, una vez más, seguir adelante y conectarlo. Ahora bien, este va a ser el mapa SerVA porque yo también lo necesito. Adelante, escribe eso aquí. Conectado. Ahora, realmente no necesitamos más porque ahora tenemos el vuelvo al diseñador. Ahora tenemos el idioma, el nombre del servo, y tenemos el mapa. Y estos dos los podemos hacer sin obtener ninguna información de aquí. Así que solo puedes arrastrar esto, encerrarlos. Entonces el primero es el idioma Serva. Entonces llamémoslo lenguaje serv. Y el otro es el mapa del servidor o el mapa del juego, como quieras llamarlo. Y nuevamente, puedes hacer doble clic en ellos para hacer notas de reencaminamiento. Todo bien. Y eso fue todo. Así que ahora hemos creado los ajustes adicionales. Y más adelante aquí en el gráfico de eventos, podemos arrastrarlo y podemos usar toda esta información para establecer la información de los servidores. 41. 4.12 Actualización de la información de la tarjeta de servidor: Empecemos ahora con actualización de la información de la tarjeta del servidor. Vamos a hacer click derecho, y voy a hacer una construcción de evento, una vez más, teniendo este evento. Recuerda aquí en el navegador del servidor, cada vez que encontremos sesiones, creamos esta tarjeta de servidor, cada vez que creamos la tarjeta del servidor, esta construcción de eventos va a jugar de inmediato cuando agregemos o cada vez que creamos esta tarjeta de servidor, vamos a actualizar con la información que necesitamos. Y vamos a arrastrar esto, obtener ajustes adicionales que creamos y enchufarlo. Ahora comencemos desde el principio. Lo primero que queremos editar es el idioma. Este, voy a arrastrarlo. Lo que queremos hacer es poner pincel. Tienes este conjunto de pinceles de Texture. Ahora necesitamos los íconos para ellos, y te los he dado los materiales de costo. Si aún no los has importado, solo entra en tu material a la carpeta de iconos y simplemente arrástralos a una carpeta de iconos aquí y aquí como puedes verlos. Por cierto, si quieres que la interfaz de usuario se vea mejor, siempre puedes volver a hacer clic en cada una de ellas. Establezca el grupo de texturas en la configuración de compresión de la interfaz de usuario a la interfaz de usuario dos D. Esto es lo que debería ser para su interfaz de usuario. Ahora vamos a cerrarlo y tenemos la bandera. Volvamos al bacalao sera. Dentro de aquí, hay que ponerla en la bandera dependiendo del idioma sera. Ahora lo que voy a hacer es que voy a mostrarte un método inteligente para hacer esto. Si tu variable de crédito llamas a este servidor idiomas. Ahora para éste, voy a cambiarlo en una cadena. Ahora vamos a cambiar esta en vez de una matriz. Hasta ahora hemos estado usando una sola variable y una variable array. Esto, voy a hacer un mapa. Variable. Un mapa de lo que es. Consta de dos variables como puedes ver aquí. El primero es string porque esto es lo que has seleccionado. Segundo, voy a simplemente buscar textura y seleccionar esta llamada textura dos D. Y seguir adelante y seleccionar una referencia de objeto. Una textura dos D es simplemente una imagen aquí. Qué está haciendo esto ahora si compilas, puedes verlo aquí abajo. Si hago clic en el más, ahora puedes ver estas dos variables, la cadena y la textura. Ahora la cuerda, podemos hacer lo que queramos. Por ejemplo, puedo decir para el inglés, quiero la bandera inglesa. Podemos tomar esta bandera americana y publicarla. Ahora volvamos a hacer clic en el más. Y digamos que para el idioma alemán, quiero la bandera alemana. Adelante y enchúfelo también. Porque el plus, una vez para digamos idioma chino, quiero que la bandera china sea la final. Para el francés, para el idioma francés, quiero la bandera francesa. Antes de hacer nada, de nuevo, tengo que recordar, configuraste esta escala de UI en 1.25 En realidad puedes ver que esto es lo que he hecho hasta ahora creando este mapa. Y podemos asignar una textura a las cuerdas. Ahora un método muy inteligente que podemos hacer es que podamos arrastrar este mapa hacia aquí. Y podemos arrastrar, si no sabes lo que puedes hacer con un mapa, siempre puedes ir a Utilidades. Haga clic en Mapa, y estas son las funciones que puede usar con un mapa. Puedes agregar un valor, puedes borrar el mapa, borrar todos los valores. Se puede ver si contiene algo específico. Puedes encontrar algo específico, y puedes verificar la longitud del mismo y así sucesivamente. Pero lo que queremos hacer es que queremos encontrar algo. Queremos encontrar el idioma para el sera que el serva tiene, por ejemplo, el chino elegido. Vamos a encontrar esto dentro de este mapa. Siempre que lo encontremos, vamos a encontrar la textura, vamos a buscar chinos. Y luego vamos a conseguir el icono de la bandera para ello. Este icono de bandera, vamos a enchufarlo aquí. Y luego enchufa esto aquí. Encontramos el icono de la bandera. Vamos a cambiar el idioma de la imagen a la bandera correspondiente. Ahora esto está hecho. Ahora sigamos adelante y continuemos. Este es el servoame. Tomemos este servoame. Di aquí, establece el texto. Esto es simplemente lo que estamos tratando de hacer. Estamos tratando de establecer el texto para el nombre del servo. El texto que queremos establecer es el servonombre aquí. Sólo voy a arrastrarlo y soltarlo y va a convertir mi variable de cadena en una variable de texto para mí. Ahora bien, esto es correcto, continuemos. Lo siguiente es el mapa del juego, volviendo atrás, arrastrándolo aquí diciendo set y voy a configurar el texto para Agregar y conectarlo de nuevo para el servidor Vaya, este es el nombre Servo. En realidad necesito hacerlo contrario para este de aquí, así que no me equivoco. El Servo Map en realidad está por aquí. Vamos a conectar eso. Ahora esto también se hace. Ahora por la cantidad de jugadores, volvamos ahora, la cantidad de jugadores, adelante y pongamos texto una vez más. Ahora cuando tienes dos valores dinámicos, para que veas que necesitamos la cantidad de jugadores en el servidor, pero también necesitamos los jugadores máximos que puedan estar dentro de un servidor. Cuando tenemos dos valores dinámicos como este y solo tenemos un bloque de texto, necesitamos usar algo llamado formato texto que arrastre desde aquí y diga Formatos seleccione este, formatear texto. Ahora lo que podemos hacer dentro de aquí es que podemos comenzar con un corchete. Entonces podemos escribir, por ejemplo, cantidad de jugadores. Entonces hay que recordar cerrar el corchete y presionar Inter. Cuando haces eso, puedes ver que obtienes una entrada para esto. Ahora déjenme solo escribir slash porque tengo este slash aquí Entonces tengo que conseguir la cantidad máxima de slots. Cantidad de ranuras. Voy de nuevo aquí después de la barra, abre el corchete y escribo cantidad de ranuras Entonces podremos hacer el corchete de cierre una vez más cuando golpeemos al Inter, obtenemos la segunda entrada. Se puede ver ahora que obtenemos entradas para las variables. La forma en que obtenemos la cantidad de jugadores y cantidad de slots es si podemos tomar esta sesión y solo puedes buscar jugador, puedes ver aquí, obtener jugadores actuales. Puedes arrastrar de nuevo a los jugadores obtener reproductores actuales, Conéctalo aquí. Y consigue jugadores. Max jugadores. Sí, conéctelo a la cantidad de ranuras y continúe y conéctelo. Compila todo, y continuemos ahora. Lo último es el ping. Al hacer click sobre él otra vez, arrástralo , establece texto, Adelante y establece el texto. Ahora para el ping, podemos obtener eso de aquí también. Si puedes arrastrar o copiar pégalo y busca ping ping en MS. Y sigue adelante y conecta ese valor dentro de aquí. Ahora en vez de solo conectarlo, puedes ver aquí tengo el valor y tengo MS al final. Nuevamente, hay que usar un formato de texto. Así que sólo voy a arrastrar y decir formato texto y seleccionado. Ahora abre un soporte de rizo que diga Ping por ejemplo. Se puede cerrar el corchete de rizo y luego voy a escribir MS al final porque quiero el texto MS al final. Voy a darle a Enter. Y ahora puedes enchufar el valor de ping. Ahora mismo, esto debería arreglar todo lo que hemos dicho, todo. veamos si todo está funcionando. Ahora si hago clic en Reproducir una vez más y creo un servidor, vamos a crear uno llamado, por ejemplo, Fun sera. Por favor, únase. Vamos a configurarlo en Mirage, configurarlo en alemán y configurarlo en 32 ranuras públicas Y voy a darle a Create. Voy a unirme al servidor y ver si puedo encontrar el servidor aquí. Ahora puedes ver que creamos el servidor. También se muestra el ping, el mapa y dice en Sera, por favor únase. Y también tiene la bandera alemana, y todo está funcionando como se supone que debe hacerlo. Lo último que tenemos que hacer es cuando haces clic en este botón, necesitamos unirnos a la sesión. Hagámoslo en la siguiente lección. 42. 4.13 Unirse a la sesión: Estamos de vuelta aquí en el código del servidor y lo último que tenemos que hacer es unirnos a la sesión. Si vuelvo al diseñador y hago clic en el botón, es este botón de aquí al que hacemos clic. Voy a cambiar el nombre para ello a Join server, por ejemplo, o compilar sesión conjunta. Y ahora vamos por aquí. Haga clic en los eventos on click. Ahora cuando hacemos clic en el botón, queremos usar este llamado Sesión. Elige este, el controlador del reproductor una vez más consigue controlador del reproductor y úsalo aquí. Ahora para la sesión a la que queremos unirnos, es simplemente esta sesión encontrada la que tenemos. Y eso debería ser bueno. Ahora podemos guardarlo todo. Y eso fue todo por éste. Y sigamos adelante. 43. 4.14 Navegador de servidores Back Button: Ahora ya casi hemos terminado. Vamos a codificar el botón atrás aquí. Haga clic en él. Voy a cambiar el nombre del mismo a botón atrás y configurarlo a su variable. Baja, establece el click aquí. Solo volvamos a, por ejemplo, lo hemos hecho antes. Vamos a abrir el menú principal. Vamos a retomar el menú principal aquí, copiar y pegar este código que creamos. Vuelva a la tarjeta del servidor, o una tarjeta de servidor, navegador del servidor, y peguelo aquí. Adelante y conéctalo. Ahora no tenemos la variable del controlador del reproductor. Vamos a agregarlo aquí en la construcción del evento antes de buscar servidores. Estoy otra vez, sólo podemos copiarlo y pegarlo. En realidad, si volvemos al menú principal, podemos copiar y pegar este código que creamos. Pégalo por aquí. Y eso debería ser arreglado. Adelante y conecta esto aquí. Conecta esto aquí. Hagamos clic derecho cuando veas que es gris. Esto se debe a que aún no hemos creado la variable. Vamos a hacer clic derecho y crear esta variable. Ahora se crea y debería funcionar aquí abajo también. Ahora cuando hacemos clic en el botón Atrás, queremos ocultar el navegador Servo. Y queremos mostrar el menú principal y compilar. Ahora si lo deseas, también puedes seguir adelante y crear animación para esto. Al igual que lo que hicimos para el Create Serva. Sólo una forma rápida de hacerlo es que podemos hacerlo rápidamente juntos. En realidad, si haces clic en este cuadro vertical, hagámoslo para este cuadro vertical. Yo solo lo voy a llamar navegador Sera aquí abajo en la animación, Pulsa en la llamada más, da clic en ella, haz una nueva pista para el navegador de Sera. Recuerda, tienes que tenerlo seleccionado. Adelante y haz clic en el más. Vuelva a hacer clic en el signo más, aquí abajo, seleccione la transformación. Ahora lo que podemos hacer es simplemente copiar y pegar el viejo. Si voy al crear sera, lo abro aquí en la pestaña de animación. Sólo voy a copiar esta transformación. Yo solo voy a seleccionar esto así aquí, controlar C. Si voy al navegador de Sera, sólo puedo dar click aquí, controlar V. Ahora dice que no se puede pegar. Voy a intentar hacerlo de nuevo. Sólo puedo copiar esta traducción y ver si puedo pegarla. Control aquí, control V aquí. Y eso funcionó, solo tuve que copiar de aquí en su lugar. Ahora que funcionó, se puede ver si hago esto, ya hizo la animación. Puedes copiar y pegar animaciones. Y es mucho más fácil para ti también. Si voy a la gráfica aquí, antes de hacer la sesión fina, sólo puedo reproducir la animación. Ahora aquí para la animación, vamos a arrastrarla y digamos jugar animación. Y hacer eso, queremos que mire una vez hacia adelante. Eso está bien para la velocidad. De nuevo, voy a configurarlo 1.1 así que es un poco más rápido de lo normal. Ahora si haces clic en el botón Atrás. No obstante, al igual que antes, quiero romper esto, romper una vez más la animación y decir Reproducir animación y seguir adelante y conectarla. Ahora vamos a volver a jugarlo, 1.1 velocidad. No obstante, esta vez vamos a jugarlo a la inversa. Podemos romper esto una vez más y decir conseguir tiempo. Entonces podemos agregar un retraso igual que antes. Esto es lo mismo que hicimos con la Creta Sera. Entonces agregando un retraso y luego conectémoslo ahora. Después del retraso, queremos cambiar esta pantalla así, claro. También puedes agregar la animación para el menú principal, pero te das la idea. Intentemos hacer clic en Reproducir. Únete a Serva, y así es como se ve. Cinco películas en la espalda. Así es como se ve. Bien, también tenemos animaciones para eso. Se ve genial. Vamos a saltar por encima en la siguiente lección y ver si tenemos algún problema, o dólares con el sistema que hemos creado por ahora. Pasemos a la siguiente lección. 44. 4.15 Prueba del resultado final: Justo aquí estamos de vuelta otra vez en el ojalá final. Sigamos adelante y probemos el juego. Ahora quiero que lo hagas es configurarlo a un número de jugadores, dos, y luego jugar como servidor de escucha. Intentemos reproducirlo dentro de esta ventana antes empaquetarlo y probarlo en otra computadora. Así que adelante y crea un servidor. Sólo voy a crear un servidor con esta pequeña pantalla. Simplemente crea un servidor aleatorio. Ahora voy a intentar unirme a ese servidor. Ahora se va a refrescar. Probemos también todo esto aquí arriba. Una vez que el servidor esté arriba. Ahora como se puede ver el servidor un bug. Porque ahora cuando hago clic aquí, puedes ver que no puede unirse a la sesión. También puedo ver que la cantidad de jugadores es cero. Hay algo mal. Si la cierro, creo que sé dónde está porque olvidé algo. Porque cuando quieres depurar algo como esto, básicamente lo que buscaría es que miraría la interfaz de usuario aquí en el servidor Create. Yo vería si crea el servidor correctamente. Aquí tienes toda la información. Tienes el nombre del servidor, la cantidad de slots que tenemos, la cantidad de slots establecidos correctamente. Tendrás que comprobarlo, sí, nosotros lo configuramos. Cuando cambiamos el valor aquí en el servidor de creación, este en el reproductor máximo, el público se conecta. El problema es que si tuvieras un error aquí y las conexiones públicas serían cero, entonces nadie podría unirse. Pero puedo ver que ya fijamos la cantidad de slots y todo está funcionando aquí, comprobando el join. Si hacemos clic en el saque, un código y donde hicimos la sesión conjunta, todo es correcto, la sesión conjunta está aquí. También puedes verificar si esta sesión es válida arrastrando desde aquí y buscando válida. Yo ya hice esto. Comprobé si esto era válido. La forma en que haces esto es si solo imprimes un mensaje en la pantalla. Justo aquí en el éxito conectado conecta este de aquí. Si intentas jugar y luego unirte al servidor, debería decir eso cierto, la sesión aquí es válida. No hay nada malo en la sesión, así que algo más está mal. Ahora, me tomó 5 minutos echar un vistazo a lo que era porque no podía ver lo que estaba mal. Pero la cosa es que olvidamos algo aquí en el plano De hecho lo hicimos antes, creo. Pero cuando cambiamos las cosas, nos olvidamos de escribirlas. Cuando creas el servidor y eliges el mapa aquí, cuando abres el nivel, tienes que dar click sobre esta flecha para ver esta opción. Y en realidad hay que escuchar, porque hay que escuchar esto, porque estamos creando un servidor cliente. Entonces hay que tener esta escucha antes de que pueda funcionar. Ahora si vuelvo a hacer clic en Reproducir, creo un servidor aleatorio en mi segunda pantalla, sea lo que sea, solo uno aleatorio. Volvamos aquí. Crear. Unámonos a un servidor. Ahora vamos a esperarlo. Ahora debería mostrarse con la cantidad correcta de jugadores y no deberíamos tener ningún problema para unirnos al servidor también. Vamos a esperarlo. Aquí está. Ahora puedo ver la cantidad de jugadores. Si hago clic en él, debería unirse al servidor. Y sí se une al servidor. Ahora todo está funcionando correctamente. Bien. Ahora bien, esto está funcionando correctamente. Lo que voy a hacer ahora es que voy a abrir cuatro jugadores. Si tienes una computadora lenta, solo ten cuidado puedes fallar porque es mucho abrir tantos servidores. Y también voy a poner la escalabilidad del motor a baja, así que en realidad puedo ejecutar muchos de ellos. Además, si quieres optimizarlo, siempre puedes ir a la configuración del proyecto, puedes buscar sin problemas, tienes algo aquí llamado velocidad de fotogramas suave. Y puedes marcarlo y luego seleccionar cuál debería ser el FPS máximo. Tu computadora no funciona, máximo, puede hacer eso. En realidad, eso fue un problema en la cola de granja. Cuando lo solté, no estaba al tanto de esto. Y funcionó a como 600 FPS o lo que sea y quema las GPU de Peoples Simplemente establezca un máximo de fotogramas por segundo. No necesitamos más de 200 en este juego. Ahora intentemos abrir cuatro de ellos. Vamos a hacer clic en Reproducir. Ahora tengo cuatro de ellos. Sólo voy a crear servidores aleatorios y volveré contigo. Bien, así que ahora he creado los servidores. Voy a dar click en Servidor Conjunto. Y por cierto, la lista de actualización aquí va a ir mucho más rápido una vez que la empaques en Steam. Entonces esto solo lleva mucho tiempo porque estamos buscando nuestros propios juegos. Como pueden ver aquí, hice un par de servidores. De hecho hice tres, pero uno de ellos es servidor terrestre. Ahora podemos comprobar si estos filtros están funcionando por aquí en el servidor create. A ver si funciona. Si busco jinks, encuentra el servidor Si intento buscar deathmatch, si acabo de escribir deathmatch, puedes ver que ya Ahora bien, esta búsqueda es muy inteligente porque busca también dentro de las oraciones. Por ejemplo, si solo escribo server o R, debería encontrarlos a ambos porque ambos tienen ER en ellos. Encuentra a los dos VR aquí, ambos la tienen. Si escribo algo mal, no los encontrará aquí en los idiomas. Si busco inglés, sólo me va a mostrar éste. Alemán, este chino no tenemos uno. Y francés no tenemos uno. Todos ellos. Ya estamos de vuelta aquí, escondiendo los servidores vacíos. Se va a actualizar la lista una vez más porque ahora se trata de encontrar servidores que no estén vacíos, que básicamente son todos ellos. Debería mostrarlos todos una vez más. Aquí están. Ahora bien, si solo muestro los servidores terrestres, puedes ver mi servidor terrestre que en realidad también creé, con dos jugadores solo aquí dice Únete al servidor Land aquí. Si lo quito, puedo ver mis servidores públicos. Sigamos adelante y unámonos al servidor terrestre. Si hago clic en este, debería unirse al servidor. Y me vuelve a mostrar este menú principal, porque es solo un mapa falso al que me acabo de unir. No es mi mapa de contraataque, pero ahora puedes ver que todo está funcionando. Pasemos a la siguiente lección, en realidad, y empaquetemos este proyecto para que realmente puedas enviarlo a tus amigos o agregarlo a Steam si lo deseas. Por ahora, adelante y guarda todo, y saltemos a la siguiente lección. 45. 4.16 Empaquetado del proyecto: Bien, aquí estamos de vuelta otra vez. Sólo voy a cambiar la escalabilidad a Epic una vez más. Y ahora estamos listos para empaquetar el proyecto. Ahora vas a conseguir diferentes épocas dependiendo de qué proyecto usaste, porque realmente depende de tu proyecto ahora. Pero para empaquetar tu proyecto, adelante y puedes hacerlo dentro de aquí. Pero antes de que lo hagas, lo que me gusta hacer es que me gusta ir a ventana y mostrar el registro de salida. Ahora dentro del registro de salida, podrás ver todas las eras que tienes para tu juego antes de que yo haga esto. Ahora para este juego, algo que puedes arreglar. Si has vuelto a hacer este juego de contraataque, puedes hacerlo aquí en Game Instruct.com Aquí es donde libero mis cursos Y este es mi sitio web personal. Y siempre puedes encontrar cursos dentro de ahí, incluyendo tiradores, multijugador dos juegos D en Unreal y así sucesivamente Pero por ahora, quiero que abras, si has hecho este proyecto, solo abre esto. Vamos al jugador, abramos la animación, abramos el plano de animación dentro de aquí Quiero que den click en el estado de movimiento. Entonces quiero, en la configuración por defecto, quiero que hagas clic en el más y pongas el estado predeterminado a running, que es algo que realmente nos perdimos. Así que adelante y compile esto. Vamos a cerrarlo ahora para empaquetar el proyecto. Adelante y primero guardemos todo. Asegurémonos de nuevo, tienes tus bloqueos de salida abiertos. Ahora, hagamos clic derecho, borre las cerraduras. Esto es lo que me gustaría hacer primero, verdad? Despeja los registros. Entonces sigue adelante y da clic aquí arriba, Ir a Windows y Paquete, y luego Package Project. Ahora tienes que seleccionar dónde quieres empaquetar el proyecto. Ahora ya tengo una carpeta en mi escritorio llamada paquetes. Simplemente puedes hacerlo dentro de aquí si deseas seguir adelante y seleccionar carpeta. Ahora va a empaquetar el proyecto. Lo que suelo buscar aquí en el registro de salida es Er, nuestros errores y advertencias. Si haces clic aquí arriba y eliminas los mensajes así, podrás ver todos los errores y advertencias. Sólo que ahora no tenemos ninguno en estos momentos. En realidad solo voy a hacer clic en los mensajes para ver qué está haciendo por aquí. A veces toma 1 minuto, a veces toma 5 minutos. Solo hay que esperarlo hasta que empaquete el proyecto. De nuevo, depende del proyecto que estés usando. Porque algunos proyectos tendrán errores que son específicos del proyecto. Tendrás que intentar corregir esos errores. Por supuesto, puedes escribir y yo puedo tratar de ayudarte con el empaque de tu proyecto. Ahora a veces obtienes errores cada vez que trabajas con bibliotecas como lo he hecho en este proyecto. Pero si obtienes un error dentro de aquí donde dice Estructura desconocida, tendrás que dar click en una de las funciones y luego hacer clic en Archivo, Refrescar todas las notas. Después hay que dar click en el segundo, Archivo, refrescar todas las notas. Tendrás que hacerlo para todas las funciones que tengas si tienes una biblioteca de funciones. Así que solo ten en cuenta esa, ¿verdad? Como puedes ver aquí ahora la compilación es exitosa y está terminada. Y siempre puedo quitar los mensajes para poder ver cuáles son mis advertencias aquí. Es algo de la animación y no es realmente algo demasiado importante a veces ten en cuenta que estos errores, a veces si los borras e intentas empaquetarlo la segunda vez, van a ser corregidos automáticamente. Así que solo ten en cuenta eso también. Intenta empaquetar la segunda vez. Aquí hay algunas cosas de animación. Eliminar duplicados realmente no importa en este momento. Eso no es importante. Ahora he empaquetado mi proyecto y puedo ver mi proyecto aquí en los paquetes. Ahora dentro de aquí, quiero que solo seleccione todos los archivos, haga clic derecho. Ir a Winrar, por ejemplo. Agrégalo a un archivo. Yo sólo quiero beberlo aquí. Conviértelo en una carpeta Sip. Yo sólo quiero llamar a éste, por ejemplo, cualquiera que sea el contraataque o mi juego, lo que tú quieras. Haz clic en Aceptar y espera a que se convierta en una carpeta Sip. Ahora lo que quiero que hagas es este archivo p, puedes dárselo a tus amigos, ahora puedes subirlo a Google Drive o subirlo a una USP. Yo voy a hacer eso. Voy a extraerlo en mi segunda computadora. Tengo todos esos archivos en mi segunda computadora. Entonces voy a probar este juego, jugarlo desde mi laptop con esta PC también. Voy a tratar de hacer eso. Bien, ahora estoy de vuelta. Lo he agregado a mi laptop y he creado un servidor. Entonces, lo que quiero que hagas es hacer clic aquí arriba, establecer el número de jugadores en uno, y luego configurar el modo Net para que juegue de manera independiente. Esto se debe a que ahora vamos a vapor para probar el juego. De nuevo, tienes que tener vapor abierto, así que asegúrate de que tu vapor esté encendido, asegúrate de que estás encerrado, el número de jugadores es uno. El modo Net es independiente. Entonces aquí arriba, adelante y haz clic en Reproducir. Como juego independiente, tienes que hacer eso para probarlo en Steam, así que solo asegúrate de hacerlo ahora. Se va a abrir aquí, veamos si encuentra el servidor desde la computadora. Dice, hola jinks. Este es mi vapor. Y sigamos adelante y hagamos clic en Servidores conjuntos. Debería buscar mucho más rápido que antes. Y puedes ver aquí, dice, únete a mí por favor desde laptop. Y esto es de mi laptop. Ahora bien, este ping al ser 9,999 tiene algo que ver con el firewall y otra cosa también Escribiré esto aquí dentro de mi blog, en mi página web, para que siempre puedas comprobarlo si también quieres una solución para esa. Voy a tener algunos problemas de depuración por los que puedes pasar. Y si, puedes echarle un vistazo a eso cuando quieras. Pero en vez de aquí, se puede ver los jugadores son ocho. Todo está funcionando. Puedo buscar el servidor. Si escribo algo mal, desaparece. Si escribo, por ejemplo, únete, lo puedo ver. Escribo, quita la búsqueda está funcionando. Ahora puedo buscar servidores en inglés, servidores alemanes, otros idiomas. O volver a todo lo que puedo mostrar solo servidores terrestres y va a desaparecer porque este es un servidor público, no un servidor terrestre. Voy a hacer click en Ocultar servidores vacíos, se va a actualizar una vez más, no hay servidores vacíos. Básicamente se debe mostrar el servidor. Vuelvo a hacer clic en Refrescar. Puedo quitar esto una vez más y todo está funcionando bien. Puedo dar click en él y debería unirse al servidor. Aquí puedes ver un Únete al servidor. Ahora puedo seleccionar, por ejemplo, Counter Terroriest, y así es como agregas Steam Multiplayer a tu proyecto. Adelante y guarda todo. Muchas gracias por volver a ver. Siempre puedes ir a Game Instru.com y lanzaré muchos más cursos sobre multijugador en Steam, en dos juegos D en Unreal Engine Cualquier cosa que realmente desees. Así siempre puedes venir a mi servidor de Discord, en el servidor de la comunidad, y siempre puedes escribir tus deseos para qué cursos quieres ver si necesitas alguna ayuda También estoy disponible para ayudarte también. La comunidad es muy agradable y también puedes hablar de muchas otras cosas de desarrollo de juegos. No tiene que ser temas. Muchas gracias por ver. Gracias por apoyarte y espero verte en mi próximo curso. Gracias.