‫Hola y bienvenido de nuevo.
‫Ahora, ya hemos creado la capacidad de manejar la muerte para el tanque y la torre, y vimos que esto
‫implicaba algunos pasos adicionales con nuestro tanque desde que accedimos al controlador del jugador para desactivar la entrada y desactivar
‫mostrar el cursor del mouse.
‫Ahora nos gustaría tener nuestra propia clase de controlador de jugador personalizado para que podamos agregarle funcionalidad
‫que manejará esto por nosotros.
‫Y luego nos gustaría crear un plan basado en esta clase para que podamos acceder a algunas de
‫las variables expuestas en el controlador del reproductor, como qué cursor del mouse mostrar una vez que realmente comencemos a mostrar el
‫cursor del mouse.
‫Así que vamos a crear una clase de controlador de jugador y agregar habilitar y deshabilitar la funcionalidad de entrada.
‫Y luego vamos a crear un plano y configurar el tipo de cursor del mouse en planos.
‫Ahora, crear esta clase es algo que sabes cómo hacer.
‫Por lo tanto, creará una clase de controlador de jugador para su desafío, creará una nueva clase de C++ y
‫elegirá el controlador de jugador como clase principal.
‫Llámalo tanques de sintonía, controlador de jugador o algo así.
‫Y una vez que haya terminado, cree un plano basado en esta clase.
‫Ahora, una vez que tenga el plano, puede asignarlo como el controlador de jugador predeterminado en el plano del
‫modo de juego.
‫Haz esto en el modo de juego, el plano mismo.
‫Pausa el video y crea ahora la clase de controlador de jugador para el tanque.
‫Bueno.
‫Así que estoy de vuelta en el editor.
‫Voy a hacer clic con el botón derecho en nueva clase de C++ y desplazarme hacia abajo y veré que el controlador del reproductor es
‫una opción aquí.
‫Así que voy a seleccionar el controlador del jugador y nombraré mis nuevos tanques de sintonización del controlador del jugador.
‫Jugador, controlador y haga clic en crear clase.
‫Y aquí tengo mi nueva clase de controlador de jugador.
‫Ahora el siguiente paso es crear un plan basado en esto.
‫Así que estoy de vuelta en el editor y no te dije que hicieras esto, pero voy a crear una nueva
‫carpeta aquí en mi carpeta de planos llamada Player Controller.
‫Y si desea la misma estructura de carpetas, puede crear esta carpeta ahora si aún no lo ha
‫hecho y luego mover el plano del controlador del reproductor a esta.
‫Si no sabe cómo mover un plano de una carpeta a otra, es bastante simple.
‫Vaya a la carpeta que contiene el plano, haga clic y arrastre a la carpeta correcta y haga clic en
‫mover aquí.
‫Ahora, no quiero mover mi proyectil a esta carpeta, así que solo voy a hacer clic aquí en el
‫navegador de contenido para cancelar esa acción.
‫Así que ahora tengo una carpeta de controlador de reproductor.
‫Voy a hacer clic derecho y hacer clic en Blueprint Class y en esta búsqueda voy a buscar toon tanks,
‫player controller y seleccionar esa clase y hacer clic en Select.
‫Ahora puedo llamar a este pitido subrayado toon tanks jugador controlador.
‫Así que ahora tengo un controlador de jugador.
‫Ahora necesito configurar esto como el controlador de reproductor predeterminado.
‫Así que voy a ir a la carpeta de modo de juego, abrir pitido, sintonizar tanques, modo de juego y abrir el plano completo.
‫Editor Y aquí veo la clase de controlador de jugador.
‫Voy a hacer clic en el menú desplegable y seleccionar BP tune tanks, player controller y compilar y guardar
‫y cerrar eso.
‫Así que ahora tenemos la clase de controlador de jugador personalizada.
‫Estamos listos para agregar algunas funciones a esto.
‫Entonces, lo que me gustaría es una función aquí que pueda establecer el estado habilitado del reproductor, ya sea que el
‫reproductor esté habilitado o no para agregar una entrada que moverá el tanque.
‫Ahora planeo llamar a esto desde el modo de juego cuando el actor muera.
‫Así que voy a hacer una sección pública aquí y la función quedará anulada.
‫Y simplemente voy a llamar a este estado habilitado del jugador, que puede tomar un booleano llamado jugador B
‫habilitado.
‫De esta forma, si llamamos a esta función, podemos pasar verdadero si queremos que el reproductor esté
‫habilitado o falso si queremos que esté deshabilitado.
‫Así que implementemos esta función en tune tanks, player, controller.
‫CP Así que aquí está mi función y, por supuesto, necesito el nombre de la clase aquí.
‫Así que va a ser un ajuste de tanques, jugador, controlador y está el operador de resolución de alcance.
‫Ahora, esta función va a ser bastante simple.
‫Verificará el valor del reproductor B habilitado, y podemos hacerlo con una simple verificación if.
‫Entonces, voy a decir si el jugador B está habilitado y me gustaría acceder al peón y habilitar o deshabilitar la
‫entrada y la forma de acceder al peón que posee este controlador de jugador es usar la función, obtener
‫peón.
‫Esto regresa y un peón y la clase de peón tiene la función.
‫Habilitar entrada y habilitar entrada como hemos visto requiere un controlador de jugador para que podamos pasar esto.
‫Ahora obtengo los garabatos rojos porque necesitamos incluir ese tipo de clase de peón y podemos ver
‫fácilmente la inclusión del peón yendo a la documentación del motor irreal para un peón, o simplemente podemos
‫ir a nuestra clase de peón base que hereda de un peón.
‫Y debido a que hereda de un peón, hemos visto que necesita incluir el encabezado del peón allí para que
‫pueda copiar ese marco de juego incluido, un peón de barra.
‫Así que volvemos a sintonizar el controlador de jugador de tanques.
‫Puedo pegar ese incluir aquí en la parte superior para deshacerme de esos garabatos rojos.
‫Así que esto se encarga del caso cuando el reproductor B está habilitado, pero también necesitamos un caso LS aquí.
‫En el caso de LS vamos a llamar a obtener peón y hay una función como habilitar entrada que
‫está diseñada para deshabilitar entrada y se llama, como puede suponer, deshabilitar entrada.
‫Y esto también requiere un controlador de jugador por el cual pasaremos en esto.
‫Ahora el controlador del reproductor tiene que mostrar el cursor del mouse y también lo configuraremos.
‫Y nos gustaría configurarlo en función de si el reproductor debe estar habilitado o no.
‫Entonces, cualquiera que sea el valor booleano del reproductor B habilitado, vamos a configurar B para mostrar el cursor del mouse en ese valor.
‫Así que vamos a decir que el cursor del mouse B sho es igual al reproductor B habilitado.
‫Ahora aún no hemos mostrado el cursor del mouse.
‫Vamos a llegar a esa parte.
‫De hecho, nos gustaría ver el cursor del mouse mientras jugamos para saber hacia dónde apunta
‫nuestro tanque.
‫Así que llegaremos a eso pronto.
‫Pero por ahora tenemos esta buena función en el controlador del reproductor y nos gustaría llamar a esta función desde el
‫modo de juego ahora para mostrarles lo que quiero decir.
‫Voy a volver al modo de juego y aquí está la función actor muerto y verás que estamos deshabilitando la entrada y estamos
‫configurando b mostrar el cursor del mouse aquí.
‫Entonces, la razón por la que me gustaría tener una.
‫Función en el controlador del reproductor para que podamos simplemente llamar a esa función pasando un valor booleano.
‫En este caso, pasaríamos falso para que se llamara a la función de entrada de desactivación y B para que el cursor
‫del mouse se establezca en falso.
‫Entonces, simplemente podemos llamar a esa función aquí ahora en lugar de llamar a tank get player controller que devuelve un
‫controlador de jugador.
‫Me gustaría tener una variable de puntero que nos permita acceder a ese controlador de jugador.
‫Así que aquí, en los modos de juego Tune Tanks, voy a agregar una variable privada.
‫Voy a declararlo hacia adelante y será de tanques de sintonía tipo A, jugador, controlador, eso es un
‫puntero.
‫Y voy a llamar a este ajuste Tank's Player Controller y puedo configurarlo aquí en el modo de juego
‫Tune Tanks y comenzar a jugar usando estadísticas de juego.
‫Ahora, si te estás preguntando si las estáticas del juego tenían una función de controlador de jugador, tenías razón.
‫Esta es una de esas prácticas funciones estáticas que requiere un objeto de contexto mundial y un índice
‫de jugador para que podamos continuar y copiar la inclusión para las estadísticas del juego y llamarlo aquí en Begin Play.
‫Así que veo en la parte superior aquí, ya tengo estadísticas de juego, eso es porque ya lo estamos usando aquí y
‫comenzamos a jugar para llamar a obtener jugador --.
‫Vamos a hacer lo mismo aquí para configurar el puntero del controlador del reproductor.
‫Ahora bien, esto es algo que usted debe saber cómo hacer.
‫Entonces, ¿por qué no pausas el video y haces un pequeño mini desafío aquí y simplemente estableces el valor de
‫tune tanks, player controller?
‫Bueno.
‫Así que vamos a decir sintonizar tanques, jugador, controlador, y lo configuraremos igual al resultado de sus estadísticas
‫de juego, obtenga el controlador del jugador y sabemos que el objeto de contexto mundial puede ser este y el índice del jugador
‫no es nueve sino cero .
‫Y, por supuesto, sabemos que esto devuelve un controlador de jugador y no un controlador de jugador de tune tanks.
‫Entonces, tal como hicimos con Tank aquí, vamos a lanzar.
‫Así que voy a decir lanzar a un controlador de jugador de tanques de sintonización y estamos lanzando el resultado de obtener controlador de
‫jugador.
‫Así que ahora, después de Begin Play, tendremos los tanques tune, el controlador del jugador.
‫Y ahora podemos subir aquí y en lugar de obtener el controlador del jugador usando obtener el controlador del jugador
‫directamente desde el tanque, podemos verificar para asegurarnos de que nuestro controlador de jugador de tanques de sintonización variable sea válido y luego
‫podemos llamar a esa función que hicimos.
‫Volvamos atrás y mirémoslo.
‫Se llama establecer el estado habilitado del jugador y aquí, en el modo de juego, nos gustaría deshabilitar la entrada y dejar de mostrar el
‫cursor, lo que significa que pasaremos falso por esto.
‫Así que vamos a decir tune tanks, jugador, controlador, establecer el estado habilitado del jugador y estamos pasando falso para esto y estamos
‫usando tune tanks, jugador controlador, lo que significa que necesitamos incluir tune tanks,
‫jugador controlador.
‫Así que aquí en la parte superior vamos a incluir tanques de sintonización, controlador de jugador.
‫Y ahora tenemos este tipo de OC definido.
‫Sigamos adelante y compilemos esto.
‫Y lo último que haremos antes de terminar con esto es ir a nuestro modelo de controlador de reproductor y
‫me gustaría que se desplace hacia abajo hasta la sección de la interfaz del mouse y verá que dice Cursor predeterminado del mouse.
‫Ahora podemos hacer clic en el menú desplegable y hay varios cursores diferentes para elegir.
‫Y voy a elegir Crosshairs.
‫Ahora, todavía no mostramos el cursor del mouse, pero una vez que comencemos el juego, mostraremos el cursor.
‫Y cuando lo hacemos, me gusta que sea una cruz en lugar de la flecha blanca predeterminada que siempre vemos cuando miramos
‫el cursor del mouse.
‫Así que configure el cursor del mouse predeterminado en la cruz y podremos ver esas cruces una vez que
‫habilitemos el cursor del mouse.
‫Entonces, en resumen, creamos una clase de controlador de jugador personalizada y la estamos usando para habilitar o deshabilitar la entrada
‫con una función que colocamos en esa clase.
‫Y también estamos usando esa función para mostrar el cursor del mouse u ocultar el cursor del mouse según el
‫booleano pasado.
‫Y en el modelo que creamos, configuramos el tipo de cursor del mouse y vamos a ver muy pronto cómo se ve
‫ese cursor del mouse en forma de cruz cuando comencemos a mostrar el cursor del mouse cuando comience el juego.
‫Gran trabajo.
‫Ahora tenemos este controlador de jugador y estamos listos para continuar implementando la funcionalidad del juego.
‫Así que te veré en el próximo video.