‫Hola y bienvenido.
‫En esta lección, tomaremos nuestro lío de planos y los organizaremos ordenadamente en funciones para que podamos
‫leer y comprender fácilmente lo que sucede en nuestro gráfico de eventos de planos.
‫Vamos a sumergirnos y ver cómo hacer esto.
‫Ahora, si alejamos nuestro gráfico de eventos, podemos ver que comienza a tener mucho ruido.
‫También puedo ver un par de nodos que no están conectados a nada.
‫Hay un nodo para obtener munición, que voy a eliminar, y un nodo para establecer munición, pero pueden ver que se está volviendo
‫muy ruidoso.
‫Cada vez es más difícil entender lo que está pasando aquí.
‫Ahora, una solución típica que la gente hace es decir: Bueno, este bloque de nodos aquí tiene que ver con generar el
‫proyectil.
‫Entonces puedo seleccionar estos.
‫Puedo presionar la tecla C y va a poner un bloque alrededor de esto llamado bloque de comentarios.
‫Y luego podría escribir proyectiles de generación y eso me permite saber qué está haciendo ese bloque de código.
‫Esa es ciertamente una forma de organizar su código.
‫Sin embargo, en mi opinión, no es la mejor manera y tenemos mejores herramientas para hacer esto llamadas funciones.
‫Entonces, ¿qué todas las funciones?
‫Las funciones ejecutan bloques de planos y hacen que nuestros juegos hagan cosas.
‫Muchos nodos proporcionados por Unreal ya son funciones.
‫Así que nos hemos encontrado con estos.
‫Cuando vas y haces zoom, digamos en nuestro nodo de proyectil de actor de generación, esa es una función.
‫Cuando observamos agregar impulso, esa es una función para la mayoría de estos nodos, incluso cosas como adelantar el vector
‫activo que no tiene un pedal de ejecución no es azul también es una función que
‫puede notar porque tiene un pequeño símbolo f en la parte superior izquierda que significa función, pero no estamos restringidos a las
‫funciones que proporciona Unreal.
‫También podemos crear nuestras propias funciones, y es muy fácil hacerlo en planos.
‫Nos permiten mantenernos organizados y nos permiten reutilizar bloques de código.
‫Entonces eso es mejor que un comentario porque un comentario tienes que copiar y pegar.
‫Mientras que una función nos permite compartir un bloque de código entre múltiples lugares de uso.
‫Así que echemos un vistazo a cómo podemos convertir algo como esto en un bloque de código.
‫Bueno, podemos eliminar el bloque de comentarios, en primer lugar, porque no creo que sea necesario.
‫En su lugar, voy a seleccionar todos los nodos desde Gets Play a -- hasta el final para agregar impulso,
‫hacer clic derecho sobre ellos y seleccionar colapsar para funcionar.
‫Y eso crea un nuevo bloque y reemplaza todos esos nodos anteriores que estaban allí antes.
‫Ahora voy a obtener esta función, un nombre que puede ver en el panel de la izquierda.
‫Se creó una nueva función en la sección de función en el panel de mi modelo y se seleccionó para
‫que yo cambie el nombre automáticamente porque definitivamente, definitivamente deberíamos cambiar el nombre de estas funciones
‫y lo llamaré proyectil de generación.
‫Y una buena denominación es absolutamente vital en la programación porque el código se trata esencialmente de comunicación.
‫Estamos tratando de comunicarnos con nosotros mismos para que podamos entender lo que hemos escrito.
‫Estamos tratando de comunicarnos con nosotros mismos en el futuro.
‫Cuando volvemos a este proyecto y olvidé por qué lo escribimos de cierta manera, y cuando trabajas
‫en equipo, también estás tratando de comunicarte con el resto de tu equipo.
‫Algunos dicen que una buena métrica para la calidad del código es cuánto diablos hay por minuto.
‫Entonces, si estás leyendo un fragmento de código y dices: Qué diablos, 50 veces por minuto, es un código
‫bastante malo si lo lees y solo dices: Qué diablos, una o dos veces por minuto,
‫entonces probablemente sea un código bastante bueno y siempre obtendrás algo, ¿qué diablos?
‫Así que solo estamos tratando de reducir ese número que funciona.
‫Fundamentalmente, tendemos a nombrar funciones como verbos.
‫Hay algunas excepciones a esta regla de las que hablaremos más adelante, pero la mayoría de las funciones son cosas que
‫están haciendo algo.
‫Así que usamos palabras para hacer y si no está seguro de cómo nombrar esta función, entonces si está trabajando en
‫un equipo, puede hablar con alguien más y preguntarle cómo cree que debería llamarlo y qué
‫tipo de cosas. tener sentido para ellos.
‫A menudo descubre que está tan arraigado en un problema que no puede pensar en cómo hablar de él.
‫Así que puede que se pregunte: Bueno, ¿adónde fue todo mi código cuando creé esta función de proyectil de
‫generación?
‫Bueno, puede volver a ese detalle de cómo se implementa realmente esta función haciendo doble clic en el gráfico
‫de eventos o haciendo clic en la pestaña Mis Blueprints o haciendo doble clic en la pestaña
‫Mis Blueprints.
‫Y puede ver que tenemos todos nuestros nodos aún residentes aquí, ahora están en una pestaña separada, por lo
‫que puede volver a la pestaña del gráfico de eventos o puede sumergirse en la pestaña del proyectil Spawn que
‫muestra solo ese función.
‫Y pueden ver que hay un nuevo nodo aquí, este pequeño nodo morado, que es el punto de entrada a nuestra
‫función.
‫Esto dice que esto es lo que debemos hacer cuando se inicia la función.
‫Es solo un punto de entrada.
‫Y cada vez que se llame, ese nodo se activará y activará el resto de los nodos dentro de
‫nuestra función.
‫Así que volviendo al gráfico de eventos y.
‫Alejando, tal vez uniendo un poco los ánodos ahora que hemos hecho nuestro gráfico de nodos mucho más pequeño y más
‫fácil de leer.
‫Creo que hay un par de candidatos más aquí para que saquemos funciones y reemplacemos cosas.
‫Uno de ellos sería donde estamos imprimiendo munición.
‫Entonces, en este caso, imprimir munición es algo que hacemos en dos lugares.
‫Lo hacemos al comenzar el juego y lo hacemos hacia abajo en el proyectil de generación.
‫Y luego, el otro lugar, la otra cosa, la pieza de funcionalidad que podríamos extraer en
‫una función sería donde estamos disminuyendo la munición que podría ponerse en una función de reducción de munición en su lugar.
‫Entonces, justo antes de presentarles el desafío, me gustaría eliminar el nodo de conversión e imprimir el nodo
‫de cadena después del proyectil de generación porque esto complicará las cosas.
‫Me gustaría copiar la funcionalidad desde arriba para que ambos se vean exactamente iguales.
‫Entonces, si copiamos los tres nodos de Begin Play y los pegamos abajo y conectamos los pines de ejecución, entonces puede
‫ver que tenemos exactamente el mismo conjunto de nodos, tenemos la misma funcionalidad entre los
‫dos, y no hay confusión cuando llegamos a extraer esto en función.
‫Así que me gustaría desafiarte a hacer algunas funciones más.
‫Lo primero que recomendaría hacer es disminuir la munición.
‫Entonces, tomando los tres nodos involucrados en la disminución de munición, extrayéndolos en una función y dándoles
‫un nombre.
‫Y luego el segundo es munición impresa.
‫Así que ahí vas a extraer la funcionalidad de obtener, convertir e imprimir la munición
‫en una sola función.
‫Y debido a que tenemos dos sitios donde estamos imprimiendo munición, desea eliminar uno de ellos y traer la
‫función en su lugar, lo que puede hacer arrastrando desde el panel de mi plano.
‫Y finalmente tenemos un par de mensajes de bienvenida, salida de nodos de mensajes de bienvenida.
‫También puede extraerlos en una función de impresión de mensajes de bienvenida.
‫Pausa el video y pruébalo.
‫Bueno.
‫Bienvenido de nuevo.
‫Así que primero vamos a extraer nuestra munición reducida.
‫Entonces, hay tres nodos involucrados que harán clic con el botón derecho en colapsar la función.
‫Entonces lo llamaremos disminuir munición y eso es bastante sencillo.
‫Así que genere proyectiles que disminuyan la munición y luego imprimiremos la munición.
‫Así que tomemos los tres nodos, obtengamos la conversión y la cadena de impresión y haremos clic con el botón derecho
‫en colapsar la función y llamaremos a esta munición de impresión.
‫Ahora, como dije, tenemos esta funcionalidad repetida en dos lugares, así que eliminaremos donde hace esto y
‫comenzaremos la placa y simplemente arrastraremos la munición de impresión de nuestra lista de funciones y conectaremos los pines de ejecución para
‫que se ejecute después de nuestro cadena de impresión.
‫Lo que me lleva a la última función que quiero crear, que dijimos llamará imprimir mensajes de bienvenida.
‫Así que voy a seleccionar las dos cadenas de impresión.
‫Tengo que comenzar a reproducir colapsar para que funcione y llamarlo imprimir mensajes de bienvenida.
‫Y este nodo, ahora podemos reorganizar todos nuestros nodos para que sea mucho más fácil leer todo esto en una
‫pantalla completa.
‫Puede ver que ahora es mucho más fácil comprender la funcionalidad de nuestro juego porque todo cabe
‫en una pantalla y está muy bien llevado a un nivel similar de abstracción y comprensión.
‫Y esto es lo que llamaríamos código autodocumentado, porque es un código que no necesita comentarios o documentación
‫para explicar lo que hace.
‫Simplemente se lee como inglés.
‫Buena cosa.
‫Te veré en la próxima conferencia.