‫Oye, bienvenido de nuevo.
‫En este video, vamos a trabajar en mostrar texto en la pantalla para avisarnos que el juego está comenzando.
‫Y este es el primer paso para mostrar el temporizador de cuenta regresiva para que el jugador sepa que
‫el juego aún no ha comenzado, pero comenzará pronto.
‫Ahora, esto va a involucrar eventos implementables de planos.
‫Un evento implementable de blueprint es una función de C++ que podemos llamar desde C++, pero en realidad implementamos
‫la funcionalidad en el lado del blueprint.
‫Así que podemos tener nuestra clase de C++ como el modo de juego, y podemos tener una función
‫marcada como un anteproyecto, evento implementable, y luego podemos implementar ese comportamiento en anteproyectos.
‫Entonces, cuando llamamos a la función C ++ marcada como un evento implementable de blueprint, entonces se activará el evento
‫en el blueprint.
‫Y se llamará a cualquier lógica de plano técnico que conectemos con ese evento en el plano técnico.
‫Así que voy a crear una función de evento implementable de blueprint aquí en tune tanks, los modos de juego y los
‫eventos implementables de blueprint no pueden ser privados.
‫Así que voy a agregar esto a la sección protegida.
‫Ahora voy a hacer de esto una función nula y simplemente voy a llamar a este juego de inicio.
‫Ahora, para hacer de este un evento implementable de modelo, tengo que darle una macro de función U con la
‫función U.
‫Especifique el evento implementable del blueprint.
‫Ahora, una vez que marcamos este evento implementable de blueprint, ni siquiera necesitamos darle un cuerpo de
‫función aquí en C++.
‫Unreal Engine esperará que implementemos la funcionalidad para esto en planos, pero podemos llamarlo desde C++
‫y eso es exactamente lo que haremos aquí en Manejar el inicio del juego.
‫Entonces, justo después de que hayamos configurado el tanque y las variables del controlador del jugador, llamaré al inicio del juego
‫y ahora podemos compilar esto.
‫Y saltando de nuevo aquí en el editor, voy a abrir el modo de juego BP tune tanks y aquí es
‫donde podemos implementar la función.
‫Entonces, si hacemos clic con el botón derecho y escribimos start game, entonces aquí está el evento start game que se creó
‫tan pronto como declaramos la función y le dimos la macro de función con el evento implementable blueprint.
‫Entonces, en el lado de C++, estamos llamando a esto y en blueprints, este evento está respondiendo.
‫Podemos probar esto con un nodo de cadena de impresión simple y para la cadena podemos decir Iniciar juego.
‫Ahora, si presionamos reproducir, veré iniciar el juego en la parte superior izquierda.
‫Entonces sabemos que nuestro evento implementable de blueprint está funcionando.
‫Ahora, lo que nos gustaría que hiciera este evento es mostrar un widget que contenga texto que informe al jugador que el juego está a
‫punto de comenzar, lo que significa que necesitamos crear un widget para mostrar.
‫Así que voy a crear una nueva carpeta en la carpeta de blueprints y voy a llamar a esto widgets y voy a hacer
‫doble clic en widgets.
‫Y aquí es donde voy a crear un nuevo modelo de widget.
‫Ahora, si hago clic derecho y voy a la interfaz de usuario, aquí está Widget Blueprint.
‫Ahora, si hago clic en esto, crearé un nuevo modelo de widget y llamaré a este W BP
‫para Widget Blueprint, guión bajo para iniciar el widget del juego.
‫Y si hago doble clic aquí, abriré el editor de Widget Blueprint y verá que se
‫ve un poco diferente al editor de Blueprint que estamos acostumbrados a ver.
‫Y eso es porque esto es para un widget.
‫Los widgets son buenos para mostrar cosas en la pantalla como texto.
‫Ahora hay mucho aquí y solo vamos a hacer un widget muy básico que muestre texto.
‫Hay varios tipos diferentes de elementos que podemos agregar a un modelo de widget, como
‫bordes, botones, casillas de verificación, imágenes, etc.
‫Pero lo que nos interesa es este de aquí que dice Texto.
‫Ahora mira aquí abajo en el panel de jerarquía, verás que tenemos el widget general de inicio de juego de WB en la
‫parte superior.
‫Y si hacemos clic en eso, podemos cambiar las propiedades de este widget.
‫Ahora podemos arrastrar elementos de widgets a esta jerarquía.
‫Así que voy a buscar en la paleta el panel de lienzo y lo arrastraré a mi jerarquía.
‫Ahora, un panel de lienzo nos permite colocar elementos de widgets y configurarlos en la ubicación deseada en la pantalla
‫para que podamos arrastrar un elemento de texto directamente al gráfico.
‫Y verá en la jerarquía este nuevo elemento debajo del panel de lienzo.
‫Y dice, Texto.
‫Bloque de texto.
‫Ahora, este bloque de texto entre comillas es el texto que se configura automáticamente para este widget de texto.
‫Y aquí, en el panel de detalles, con este widget de texto seleccionado en contenido, vemos una propiedad de texto y
‫está configurada en bloque de texto.
‫Pero podemos configurar esto para cualquier texto que queramos, como prepárate.
‫Ahora, después de configurar esto para prepararse, verá que el texto aquí en la pantalla dice: Prepárese.
‫Entonces, el editor de Widget Blueprint nos permite personalizar nuestro aviso de widgets en la parte superior izquierda de
‫la pantalla, este medallón aquí, esto se llama ancla.
‫Nuestro widget de texto se coloca en la pantalla en relación con el ancla.
‫Entonces, si el tamaño de la pantalla cambia, la distancia desde ese ancla permanecerá constante.
‫Y podemos cambiar el ancla si queremos.
‫Por ejemplo, podemos configurar nuestro widget de texto en relación con un ancla en el medio de la pantalla
‫yendo al panel de detalles y debajo de la ranura vemos anclas.
‫Y si hago clic en el menú desplegable, puedo seleccionar este ícono que tiene un cuadrado en el medio.
‫Si selecciono eso ahora, el ancla está en el centro de la pantalla, y si quiero que mi
‫widget esté completamente centrado, puedo cambiar su posición X e Y aquí en la categoría de ranura para poder configurarlo en cero para la
‫posición X y cero. para la posición Y y desplazándome con la rueda del mouse para acercar, verá que está en la esquina
‫superior izquierda como en el medio de la pantalla.
‫Ahora, este campo de alineación aquí puede permitirnos centrar esto perfectamente eligiendo valores de 0. 54 X y 0. 54 Y, y ahora está
‫completamente centrado en el medio de la pantalla.
‫Ahora, para un widget de inicio del juego, probablemente sea apropiado colocar este texto un poco más
‫arriba.
‫Entonces, para la posición Y, puedo hacer clic y arrastrar esto hacia la izquierda, lo que hará que el valor de la posición Y sea
‫negativo en el editor de planos del widget, el eje y apunta hacia abajo.
‫Entonces, si queremos elevar nuestro widget de texto, vamos a hacer que esa posición tenga un valor más bajo.
‫Voy a colocarlo aquí arriba alrededor de -300.
‫Ahora, en la categoría de apariencia, puedo cambiar una serie de propiedades para este texto.
‫Si hago clic en el menú desplegable de fuente, puedo cambiar el tamaño de la fuente para decir algo como 42.
‫Ahora para tipografía en lugar de negrita.
‫Me gusta la tipografía normal.
‫Creo que se ve un poco mejor ahora.
‫Observe que el texto de nuestro widget de texto es más grande que el rectángulo verde aquí, pero podemos cambiar el tamaño de
‫este rectángulo verde.
‫Y mientras estoy cambiando el rectángulo, verá aquí en el panel de detalles que el tamaño X y el tamaño y
‫están cambiando.
‫Ahora, observe que la posición X se ha movido un poco desde que la cambié.
‫Puedo volver a ponerlo en cero y dado que la alineación de la x es 0. 5, está perfectamente centrado.
‫Así que ahora tengo un widget que dice Prepárate.
‫Lo único que queda por hacer es agregar esto a la ventana gráfica para que podamos verlo en la pantalla.
‫Notarás que si presiono reproducir y empiezo a jugar, no vi ese widget en la pantalla.
‫Eso es porque tenemos que agregar esto activamente a la pantalla, y es por eso que creamos este
‫evento implementable de plano en el modo de juego para que podamos agregar este widget a la pantalla aquí.
‫Así que hablemos de cómo hacer eso.
‫Ahora.
‫La forma de crear un widget a partir de planos es mediante el uso de un nodo de creación de widgets.
‫Puede hacer clic derecho en el gráfico de eventos de cualquier proyecto y comenzar a escribir el nombre de un nodo y
‫luego seleccionar ese nodo en particular.
‫El nodo que necesitamos es crear widget.
‫Ahora verás que dice Create Coolness Widget.
‫Y eso es porque tan pronto como agregué el nodo Create Widget, seleccioné la clase Widget Blueprint aquí
‫en el menú desplegable de clases.
‫Esto es necesario para que Unreal Engine sepa qué clase de widget crear.
‫Ahora, después de usar un nodo de creación de widgets, usamos un nodo de agregar a la ventana gráfica para agregar este
‫widget a la ventana gráfica y luego podemos verlo en la pantalla del juego.
‫Tenga en cuenta que los cables de ejecución están conectados y también que el nodo crear widget devuelve esta salida azul y esto
‫debe conectarse a la entrada de destino en agregar a la ventana gráfica ya que agregar a la ventana
‫gráfica necesita saber qué widget agregar a la ventana gráfica y el nodo crear widget devuelve el valor de ese widget.
‫Entonces, ahora que sabe cómo crear un widget en planos, irá a la clase de modo de juego
‫BP tune tanks y usará un nodo de creación de widgets.
‫Vas a conectar esto desde nuestro cable de ejecución de eventos implementable de blueprint.
‫Llamamos a Iniciar juego.
‫Ahora, en el nodo Crear widget, debemos seleccionar la clase de widget para crear, así que seleccione el widget de juego de inicio de WB,
‫ese nuevo modelo de widget que acabamos de crear y luego use un nodo Agregar a la ventana gráfica para agregar este
‫nuevo widget a la ventana gráfica y enganchar hasta los cables de ejecución.
‫Y no olvide vincular el valor de retorno de crear widget a la entrada de destino en agregar a la ventana gráfica.
‫Así que pausa el video y agrega estos nodos al plano del modo de juego del tune tank ahora.
‫Así que estoy aquí en el plano del modo de juego Tanks tune y voy a hacer clic con el botón derecho y
‫escribir crear widget y elegir el nodo Create Widget.
‫Ahora observe que dice Construir Ninguno.
‫Y eso es porque va a decir eso hasta que seleccionemos la clase de widget apropiada en el menú desplegable
‫de clases.
‫Pero antes de hacer eso, voy a conectar el cable de ejecución desde el inicio del juego de eventos.
‫Entonces, en realidad ejecutamos esta funcionalidad tan pronto como nuestro juego de inicio de evento implementable de blueprint
‫se llama desde C ++.
‫Ahora, para el menú desplegable de clases, voy a seleccionar WP Start Game Widget y ahora el título del nodo
‫cambia para decir Create WP Start Game Widget Widget.
‫Ahora podemos ver que este es un nodo de creación de widgets.
‫Ahora voy a hacer clic en el cable de ejecución y arrastrarlo y luego escribir agregar a la ventana gráfica.
‫Y luego, si selecciono agregar a la ventana gráfica, los cables de ejecución se conectan automáticamente para mí,
‫pero no conecta el valor de retorno de crear widget a la entrada de destino para agregar a la ventana gráfica.
‫Así que necesito hacer clic y arrastrar eso yo mismo.
‫Entonces, cuando se llame a Start Game desde C ++ y la clase de modo de juego, ejecutaremos esta lógica de
‫modelo que dará como resultado la creación de un nuevo widget basado en el widget WP Start Game y luego lo agregaremos a
‫la ventana gráfica.
‫Así que voy a hacer clic en reproducir y ahí está el widget Prepárate.
‫Ahora mencionamos que esto mostrará un temporizador de cuenta regresiva, pero aún no hemos implementado esa funcionalidad,
‫por lo que estará disponible pronto.
‫Entonces, en resumen, creamos el plano del widget de inicio del juego y, por ahora, solo tiene un texto que
‫dice Prepárate.
‫También usamos un nodo de creación de widgets y un nodo de agregar a la ventana gráfica para agregar este widget a la ventana gráfica para
‫que podamos verlo tan pronto como comience el juego.
‫E iniciamos esta funcionalidad usando nuestro evento implementable de modelo que creamos en la clase de C++ del modo
‫de juego llamada Iniciar juego en los videos que vienen, vamos a cambiar el texto en este widget en tiempo
‫de ejecución para que muestre cuánto tiempo queda en ese temporizador de inicio del juego para que el jugador sepa
‫cuánto tiempo debe esperar antes de que pueda comenzar a jugar.
‫Te veré pronto.