Transcripciones
1. Por qué debes ver este curso: Por lo que has aprendido a agregar un cuerpo rígido como componente a un objeto de juego, posible
que incluso hayas comprobado qué es un cuerpo rígido en la documentación de Unity. Y ahora conoces todas las propiedades y métodos. Eso es lindo. Pero puedes agregar un cuerpo rígido a un objeto de juego, empieza a moverlo alrededor, agregar animaciones para hacer que los sprites caminen en un mundo que construimos usando un conjunto de teselas. Permita que interactúe con el mundo y pase de una escena a otra. Ah, y además tener un guión que sea 600 más líneas de código para manejar nuestro sistema de batalla con otros
seis guiones de batalla todos trabajando juntos sistemas como los artículos. Mi nombre es Michael Moore, fundador de WM game dev, y mi objetivo es convertirte en el mejor
desarrollador de juegos de la manera más divertida posible y desarrolló una estrategia que ha ayudado a miles de aspirantes a juego los desarrolladores lograron sus objetivos de crear los juegos del mundo real. Y yo quiero hacer lo mismo por ti. Lo que he aprendido es que puede ser muy difícil saber por dónde empezar y qué pasos tomar para ir de principiante a intermedio a profesional. No sólo en el desarrollo de juegos, sino en la programación y el aprendizaje a codificar. Y aquí es donde entra la estrategia. Yo lo llamo la pirámide inversa, donde empezamos por aprender los conceptos muy fundamentales y la programación C-Sharp, motor
Unity y diseño de juegos usando diapositivas y documentación unitaria, entonces de inmediato usamos lo que aprendimos para realzar nuestra juego. Pero no nos detenemos ahí. Seguimos usando lo que hemos aprendido de formas más complejas y divertidas. Ahondamos más profundo que cualquier otro curso. Y a motor Unity, programación
C-Sharp, y diseño de juegos. Y lo más sorprendente es, es que estamos haciendo todo esto. Pero la última versión de Unity fue las técnicas y contenidos más recientes y desarrollo de juegos modernos. Y puedo decir con absoluta confianza puntajes hace que sea fácil para cualquier principiante con experiencia de codificación 0 saltar y empezar a aprender a crear juegos increíbles. He ayudado a miles de personas a crear juegos
del mundo real y quiero que seas una de esas personas. Entonces, ¿cómo vamos a hacer esto? ¿ Ahora? Tenemos un montón de secciones. Yo sí creo que hay como 15 secciones, así que los voy a echar un vistazo muy, muy rápido. Por lo que tenemos la Sección 1, que es la introducción y configuración, descargará Unity, descargará Visual Studio, hablará de la interfaz, creará nuestro primer programa y entenderá cómo utilizar este curso, que es la revisión que estás viendo en este momento. Tenemos la Sección 2, que es el jugador. Seguimos adelante y agregamos una capa, agregamos animaciones para aprender algunas cosas fundamentales como cuerpos
rígidos en colisionadores y así sucesivamente en unidad. Entonces empezamos a mirar las escenas crearán múltiples niveles. Por lo que el primer nivel donde residirá nuestro jugador va a estar en un pueblo. Entonces creo que nos mudamos a algún tipo de montañas o algo así. También comprenderemos la gestión vista y cómo Scene Manager puede pasar de una escena a la siguiente utilizando los colisionadores que hemos aprendido previamente. Y luego vamos a aprender sobre los mapas y la máquina del centro. Por lo que vamos a usar conjuntos de teselas para crear nuestros propios mapas. Y vas a crear tus propios mapas. Vas a añadir tu propia mano de obra para el juego. Y vamos a utilizar una de las últimas técnicas y unidad, que son las máquinas Cinna para permitirnos seguir al jugador mientras se mueve alrededor del NADPH. Entonces vamos a añadir Doyle del orgánico porque qué tipo de RPG no tiene diálogo. Para que podamos interactuar con diferentes enfáculos y así sucesivamente. Pero luego mira en las estadísticas de los jugadores. Entonces como saben, en cada RPG tendría la fuerza, defiende el mono sano y así sucesivamente y así sucesivamente. Entenderás cómo podemos crear todo esto y esto es muy importante. Esta sección aquí mismo también, donde profundizamos en C Sharp y las cosas empiezan a ponerse un poco complejas, pero no te preocupes por ello. Te llevaré a través de cada paso muy fácilmente, para que no tengas que confundirte. A continuación, tenemos la Sección 7, que es el sistema de menús, porque obviamente necesitamos algún tipo de menú donde podamos ir a los ítems, a las estadísticas de personajes para tal vez queremos simplemente guardar y cargar y así sucesivamente. Entonces tenemos el sistema de inventario, obviamente porque a medida que nos movemos por el mundo aprenderemos a crear artículos, a recoger artículos, a agregar a cada artículo que todos estadísticas y añadirlos
al inventario que tenemos creado en el sistema de menús agregará un sistema de dinero. Y por mi sistema, quiero decir, vamos a predecir un poco consistente si no te resulta familiar, no te preocupes, hablaremos de eso también. Y obviamente tendremos tiendas donde podemos comprar ciertos iconos en lugar de solo recogerlos y lo salvaje, y también pueden venderlos. Hablaremos de misiones porque obviamente cada rol VIP de RPG en RPG, juego de rol, RPG es obviamente donde tienes misiones que completar. Tendremos el guardar y cargar aprenderá cómo funciona el juego de trampas a detalle. Y aprenderemos a ahorrar carga y todas esas cosas buenas. Y el ahorro y carga se aplicará al inventario, a los artículos, al dinero, a las estadísticas de los jugadores y todo eso. A esto me refería cuando hablo de la pirámide inversa. Entonces hemos aprendido lo básico que hemos creado. Digamos que hemos aprendido un poco de C-sharp. Se. Después aprendimos a crear dinero e inventario y demás. Y luego usamos la orden del jugador prefs para combinar todo eso juntos. Entonces esto es lo que quise decir por pirámide. Empiezas con lo básico y luego seguimos construyendo encima de todo eso. Entonces también agregaremos música y práctica sonora, porque obviamente qué juegos no ha usado, realmente
le falta sabor y carácter si no hay música y efectos de sonido. Y por último, las cuatro últimas secciones son personalmente mis favoritas porque vamos a construir un sistema de batalla. Empezaremos con el sistema regular batallado donde vamos a diseñar todo e iniciar ciertas batallas
y cargar a los enemigos y a los jugadores hasta esa batalla. Después veremos cómo el enemigo puede atacar y estar en la sección 4, intangible, ver cómo el jugador puede atacar. Y por último, estamos llegando a ver cómo podemos matar a enemigos, matar capas, y el Betel dar recompensa, premios, etcétera y demás. Entonces, ¿qué debes esperar para el final de las anotaciones? Te convertirás en un maestro solucionador de problemas. Entenderás los fundamentos de la codificación y aprenderás a programar juegos, igual que los que estás viendo en pantalla en este momento. También tendrás la oportunidad de flexionar tus músculos de desarrollador de juegos porque con cada video hay un mini reto para loop completa. Y aunque puedas averiguar cómo hacer el reto, No te preocupes, estaré ahí para ayudarte ético probado y completar el reto con. Todo en nuestra ganancia será configurable. Para que puedas retocar, jugar y dar a los juegos y sentir individual y especial. Entonces estarás metiendo tu propia creatividad en ella y realmente haciéndola tuya. Estoy tan emocionado de empezar y espero que tú también lo estés. Este es el momento perfecto para empezar a aprender a codificar. Así que sumérjase conmigo y le ayudaré a lo largo cada paso de su viaje de desarrollo de juegos. Y te veré en el siguiente video.
2. Sección 1: cómo utilizar este curso: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. Y este video, en realidad, y no en este video. He creado este video con el fin de que podamos maximizar el potencial de aprender de este curso. Entonces te quiero, quiero guiarte a través de un par de pasos que podemos utilizar con el fin de
exprimir por completo toda la energía
de aprendizaje del curso que estás tomando actualmente porque ya lo has hecho, ya estás gastando su tiempo aquí. Entonces, ¿por qué no maximizarlo? Entonces lo primero que vamos a entender es cómo funciona la Q&A. Entonces mientras estás viendo los videos, estás mirando a través de ellos, tal vez surge algo que no debería entender del todo. Entonces lo que puedes hacer es seguir adelante y deslizarte en las discusiones aquí mismo. Y puedes ver que tienes múltiples opciones. Puedes iniciar una conversación, hacer una pregunta o simplemente compartir un proyecto. Entonces aquí, puedes hacerme cualquier pregunta que quieras. No hay duda es de límite. Pero hay un pequeño paso que debes hacer antes de hacerme una pregunta. Y es decir, adelante y haz tu propia investigación. ¿ Por qué te pido que hagas eso? Bueno, porque a veces cuando te tropiezas con un problema y vas adelante y buscas una solución tú mismo, y entonces o la encuentras o no. Y cuando vuelves y me haces la pregunta, es mucho más fácil de entender. ¿Por qué es eso? Porque ya has pasado por un par de sugerencias, tal vez ninguna de ellas era adecuada. Pero a medida que avanzas buscando la solución a tu problema, has ganado mucho conocimiento. Y cuando vengas a mí, cuando le preguntes a Michael y pasamos juntos por encontrar la solución, entenderás cómo todo clica y más adelante, cuando tal vez te encuentres con el mismo problema o tal vez veas esto problema para otro estudiante. Puedes ayudarlos y es mucho más fácil. Y finalmente, siempre que sí encuentres una solución
a tu pregunta a tu pregunta y le agregues un prefijo de sal
porque otros estudiantes podrían tener el mismo problema y encontrarán una solución para su problema si ven el prefijo resuelto detrás de ella. Y por último, antes de irme, sólo
quieres decir una cosa que no hay cuestión de límite. No hay preguntas estúpidas, no
hay preguntas tontas. Solo hay desarrolladores de juegos no profesionales. Nadie nació profesional. Todos tenemos que aprender a través del ensayo y el error. No creerías cómo citar entre comillas, mis preguntas eran tontas. Porque yo, o, soy, no
nací un profesional en unidad me llevó años de práctica, juicio y error o hacer preguntas, Google cosas. Entonces este es un proceso. No te preocupes, no tengas miedo, no seas inseguro con algunas de las preguntas que podrías querer hacer. Sé lo suficientemente valiente como para ir a buscar una solución si no encuentras una, no te preocupes, solo deja una pregunta. Yo siempre, siempre respondo a todos mis alumnos y siempre
profundizamos lo necesario para encontrar una solución a cualquier problema. Y ahora hablemos del servidor Discord. Y aquí es donde puedes profundizar en la comunidad que hemos creado aquí en el desarrollo de juegos de WMD. Por lo que puedes ir ya sea al enlace en la descripción de este video o puedes visitar mi perfil y encontrar el enlace en algún lugar de ahí. Y sí te recomiendo que te sumes a la discordia. ¿ Por qué? Porque la mayor parte del tiempo me podría tomar un par de horas para responder en base a dónde eres. Entonces tal vez nuestra vivimos en diferentes zonas horarias. A lo mejor cuando me hagas la pregunta, es medianoche y necesitas una solución rápida. Podría estar durmiendo, quizá no pueda llegar a mi computadora. Por lo que es muy beneficioso para ti unirte al canal de discordia que hemos creado. Y déjame solo mostrarte el canal de partitura aquí mismo. Este es el inicio de nuestro canal de discordia. Se puede ver que tenemos a la comunidad en general. Tenemos el chat C-sharp, tenemos el chat de diseño de juegos, tenemos el show off tu juego. Tenemos las preguntas generales de desarrollo de juegos. Y se puede ver que todavía no tenemos nada aquí porque es bastante nuevo ya que estoy grabando esto. Pero más adelante, cuando entres aquí, notarás que hay una enorme comunidad de personas esperando para ayudarte y tal vez gente esperando para obtener ayuda de ti. Y es muy beneficioso tratar de resolver la pregunta de otras personas. No creerías lo mucho que he aprendido de sólo ayudar a otras personas. Y puedes ver aquí que tenemos múltiples cursos. Estos son todos los cursos que doble m gamma game down tiene o he creado. Y podemos ver también podemos compartir memes y aquí tenemos discusiones generales de juego, juegos
AAA, no sé lo que te guste jugar. Podemos discutirlas aquí y el canal social o categoría y así sucesivamente y así sucesivamente. Por lo que sí te recomiendo que te unas a nuestro servidor de discordia. Es muy divertido. vamos a divertirnos mucho. Y eso es todo. Eso es todo lo que quería decir sobre el servidor Discord. Ahora, pasemos a las diapositivas de desafío. Entonces, ¿qué son las diapositivas desafiadas? A medida que avanzas por cada video, te darás cuenta de que en algún momento, te
voy a decir que pausas el video e inicies el reto. Entonces cuando veas esta diapositiva, esperarás a que termine todos los puntos y luego tienes que pausar el video. ¿ Por qué estoy enfatizando la palabra, tener un jefe? Porque es mucho mejor aprender haciendo y no solo viendo muchos cursos que he aprendido de que tomé personalmente donde me sentí carente en el Departamento de hacerlo. Simplemente te sientas, ves a alguien creado de nuevo. Está bien. Eso es muy bueno. Y ahora se acabó. ¿ De acuerdo? Y luego terminas el curso. Y después de un par de semanas, te das cuenta de que en realidad no sabes hacer nada. Por lo que las diapositivas de desafío que he creado es extremadamente importante porque tú en este punto comienzas a hacer en lugar de ver. Y aunque no puedas averiguar cómo hacer el reto, No te preocupes por ello. Estaré ahí para ayudarte después de que lo hayas intentado y ayudar a completar el reto contigo. Por lo que nunca te quedan solos. Y además de eso, al igual que mirar a través de las respuestas a tus preguntas antes de hacer en la Q&A, cuando haces un reto, tropiezas con múltiples variables que quizás no hubieras considerado antes. Y cuando veas cómo completa el reto, lo
tendrás arraigado mucho mejor en tu cabeza cuando te encontraste con el mismo problema cuando sí empiezas a crear tus propios juegos. Y ahora sigamos y terminemos con la estructura del curso. Ahora, tenemos un montón de secciones. Yo sí creo que hay como 15 secciones, así que los voy a echar un vistazo muy, muy rápido. Contamos con la Sección 1, que es la introducción y configuración, descargará Unity, descargará Visual Studio, hablará de la interfaz, creará nuestro primer programa y entenderá cómo utilizar este curso, que es el video que estás viendo ahora mismo. Después tenemos la Sección 2, que es el jugador. Seguimos adelante y agregamos un jugador en las animaciones y solo entendemos cómo todo va a funcionar con aprender algunas cosas fundamentales como cuerpos rígidos, colisionadores y así sucesivamente y unidad. Entonces empezamos a mirar las escenas crearán múltiples niveles. Por lo que el primer nivel donde residirá nuestro jugador va a estar en un pueblo. Entonces creo que nos mudamos a algún tipo de montañas o algo así. Y luego así sucesivamente y así sucesivamente. También entenderemos la gestión vista y cómo un gestor de escenas puede
transitarnos de una escena a la siguiente usando los colisionadores que hemos aprendido previamente. Entonces vamos a aprender sobre los mapas y la máquina de cine. Por lo que vamos a usar conjuntos de azulejos para crear nuestros propios mapas. Y vas a crear tus propios mapas. Vas a añadir tu propio sabor al juego. Y vamos a utilizar una de las últimas técnicas y unidad, que es la máquina Cinna para permitirnos seguir al jugador a medida que se mueve por el mapa. Entonces vamos a sumar diálogo o ganancia, porque ¿qué tipo de RPG no tiene diálogo? En serio, necesitaremos agregar un sistema de diálogo a nuestro juego para poder interactuar con diferentes embajadas y así sucesivamente. Pues entonces mira en las estadísticas de los jugadores. Entonces como ustedes saben, en cada RPG tenemos la fuerza, defensa, la salud, el maná y demás y demás. Entenderás cómo podemos crear todo esto y esto es muy importante. Esta sección aquí mismo también, donde profundizamos en C-Sharp y las cosas empiezan a ponerse un poco complejas, pero no te preocupes por ello. Te llevaré a través de cada paso muy fácilmente, por lo que quieres tener que confundirte. A continuación, tenemos la Sección 7, que es el sistema de menús. Porque obviamente necesitamos algún tipo de menú donde podamos ir a los ítems, a las estadísticas de personajes para tal vez queremos simplemente guardar y cargar y así sucesivamente. Entonces tenemos el sistema de inventario, obviamente porque a medida que nos movemos por el mundo aprenderemos a crear artículos, a recoger artículos, a agregar a cada artículo sus propias estadísticas y
añadirlas al inventario que nosotros han creado en un sistema manual. Vamos a sumar un sistema de dinero. Y por sistema monetario, quiero decir, crearemos un sistema Bitcoin si no te resulta familiar, no te preocupes, hablaremos de eso también. Y obviamente tendremos tiendas donde podemos comprar ciertos artículos en lugar de solo recogerlos en la naturaleza, y también podemos venderlos. Hablaremos de misiones porque obviamente cada RPG, el papel en RPG TR para juego de rol, RPG es obviamente donde tienes misiones que completar. Tendremos el guardar y cargar aprenderá cómo funcionan a detalle los prefs del jugador. Y aprenderemos a ahorrar carga y todas esas cosas buenas. Y el ahorro y carga se aplicará al inventario, a los artículos, al dinero, a las estadísticas de los jugadores y todo eso. Esto es lo que quise decir cuando hablo de la pirámide inversa. Por lo que hemos aprendido los conceptos básicos que hemos creado. Digamos que hemos aprendido un poco de C agudo. Después aprendimos a crear dinero e inventario y demás. Y luego usamos los prefs del jugador y el orden para combinar todo eso juntos. Entonces esto es lo que quise decir por pirámide. Empezamos con lo básico y luego seguimos construyendo encima de todo eso. Entonces también agregaremos música y efectos de sonido porque obviamente ¿qué juego? Y no tiene música, realmente
le falta sabor y el personaje si no hay música y efectos de sonido. Y por último, las cuatro últimas secciones son personalmente mis favoritas porque vamos a construir un sistema de batalla. Empezaremos con el sistema de batalla regular donde vamos a diseñar todo e iniciar ciertas batallas y cargar enemigos y jugadores en esa batalla. Entonces veremos cómo puede atacar el enemigo. Y el, en la Sección 14, entonces veremos cómo puede atacar el jugador. Y por último, vamos a ver cómo podemos matar a enemigos, matar capas, y la batalla, dar recompensa, recompensas y demás y demás. Entonces con eso todo dicho, solo
quiero decirles que lo más importante en puntajes es que ustedes maximicen tanto como puedan. Toda la información que está aquí, ya
te has tomado el tiempo para iniciar los puntajes. Entonces mi par de consejos que te quiero dar. En primer lugar, siempre que encuentres un problema a tu propia investigación, si no encuentras una solución o no encuentras una solución adecuada a tu problema, asegúrate de hacer una pregunta. No hay preguntas de límite, ninguna en absoluto. tercer consejo es unirse al servidor de Discord. Es muy importante unirte a la comunidad para tener esta sensación de que no estás solo en la batalla, la batalla. Y piensa dónde está el cuarto consejo que tengo es seguir hasta el final. Por lo que empezarás aprendiendo lo básico. A lo mejor ya tienes un poco de conocimiento y unidad. Si lo haces, quizá algunas de las secciones parezcan un poco estancadas porque paso por cada paso con mucho, mucho cuidado. Porque mucho, digamos, tal vez eres uno de ellos. Quizás no tengas ni idea de cómo funciona C-sharp. No tienes idea de cómo funciona. Por lo que sí necesitas ese cuidado extra y ralentizar. Entonces si ya está familiarizado con la Unidad, verá agudos. Algunos de los videos podrían parecer un poco lentos, pero entiendan que es muy importante para otros estudiantes también en el campo tratando de aprender desde cero. Entonces con eso dicho, no perdamos más tiempo. Y pasemos al siguiente video.
3. Descarga la unidad y Visual Studio paso a paso: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, vamos a estar descargando unidad y estancando bien e integrando con él las herramientas de Visual Studio que vamos a necesitar para las partituras. Entonces, empecemos. Lo primero que necesitas para entrar a Google y luego
ir, simplemente ve a teclear aquí mismo, descarga Unity. Es tan simple como eso. Cuando teclees, obtendrás muchas sugerencias. Así que asegúrate de que encuentres el que tiene el Unity 3d.com y el get unity por supuesto, y haz click en la descarga Unity, que abrirá esta página aquí mismo. Por lo que aquí necesitarás descargar Unity Hub si nunca antes habías usado Unity. Ahora bien, ¿qué es Unity Hub? Unity Hub es como un lugar donde mantendremos todas nuestras versiones de Unity y también todos los proyectos que realizamos. Ahora antes de Unity Hub, nuestro proyecto estará por toda nuestra computadora, en
algún lugar de diferentes directorios y así sucesivamente. Por lo que el Unity Hub realmente hace mucho más fácil pasar por tu proyecto y realmente tener, si realmente buena organización. Por lo tanto, asegúrate de descargar Unity en función del sistema operativo que tengas. Por lo que si tienes la macOS, debes asegurarte de descargar la unidad 40 macOS. Y si tienes un Windows 7, entonces lo descargas para Windows 7. Por lo que simplemente haga clic en descargar Unity Hub. Y cuando termines de descargar, Q debería tener esta carpeta de instalación aquí mismo. Cuando hagas doble clic en
él, te preguntará, ¿quieres? Sí. Por lo que
continúas, das click en De acuerdo, eliges el destino donde quieres poner tu Unity Hub. Y luego inicias la instalación. Ahora porque ya tengo instalado Unity Hub, no lo
volveré a instalar. Así que asegúrate de instalar todo y te veré en tan solo un poco. Oh, bien, bienvenido de nuevo. Entonces si has instalado Unity Hub correctamente, deberías recibir un mensaje o una ventana aquí mismo que se vea algo así. Ahora bien, aún no tenemos ningún proyecto, pero aquí es donde estarán todos nuestros proyectos presentes y podemos acceder a ellos a nuestro tiempo libre. Ahora, antes de continuar, Unity tendrá que asegurarse de que tenga una cuenta. Entonces esta es mi cuenta aquí mismo. Utilicé mi Google Gmail para crear una cuenta en Unity. Puedes crear una cuenta nueva o también puedes usar tu Gmail o Facebook. No estoy seguro si lo permiten. Y una vez que hayas creado una cuenta en Unity, puedes ir aquí mismo a las instalaciones. Y aquí es donde descargamos diferentes versiones de Unity. Ahora, para este curso, estaré usando la última versión de Unity que tenemos actualmente. Ahora bien, si quieres instalar una nueva versión de Unity o cualquier tipo de versión de Unity, simplemente ve aquí mismo al anuncio. Haga clic en Agregar. Y aquí dentro se puede ver que tenemos diferentes tipos de unidad que podemos instalar. Ahora, en primer lugar, tenemos los lanzamientos recomendados. Estos son los que ya han sido probados y probados a fondo y funcionan perfectamente. Pero también puedes ir a buscar los lanzamientos oficiales. Ahora, vamos a estar usando esta versión aquí mismo. Y esta es una muy buena versión. Puedes instalarlo. Y también tienes el preestreno es ahora comunicados de prensa son hacer trabajo igual que el comunicado oficial y los lanzamientos recomendados, pero a veces son un poco buggy y posible
que te encuentres con un par de bugs en los comunicados oficiales. También podría ser capaz de fastidiar tema, pero no son tan evidentes como en los lanzamientos anteriores. Puede que no encuentres ningún problema, pero te recomendaría que utilices el lanzamiento oficial porque son más nuevos que los lanzamientos recomendados y menos voluminosos que los pre lanzamientos. Entonces descarga la última versión que tengas en tu computadora. O actualmente tal vez eres del futuro y tienes una versión más nueva que yo. Así que descarga la última versión. Y no te preocupes, este curso funciona o el proyecto que vamos a crear funcionará en cualquier versión de Unidad y el futuro. Ahora, vamos a dar click en Siguiente aquí mismo. Y esta es una parte muy importante de descargar e instalar Unity ahora. Y aquí tenemos módulos, y estos módulos son como complementos a nuestra unidad que nos permiten crear juegos en diferentes plataformas. Entonces por ejemplo, aquí puedes ver que ahora podemos cargar módulos para diferentes plataformas. Entonces, por ejemplo, si quieres crear un juego en Android, puedes usar el módulo para Android. O si quieres crear un juego para el iOS o iconos y así sucesivamente. También puede estar buscando crear juegos para Linux o Mac OS o qué. Entonces, en base a lo que quieras crear, puedes elegir uno de estos módulos modelo, o simplemente puedes esperar más adelante, puedes descargarlos en cualquier momento. También tienes las documentaciones que te recomiendo descargar. Estas documentaciones son la documentación de Unidad y son muy importantes. A veces se quiere buscar ciertas cosas. Y finalmente tienes el paquete de idiomas. Y tal vez si eres chino o coreano, no
estoy seguro de cuáles son estos, honestamente, no tengo ni idea. A lo mejor puedes usar uno de estos paquetes de idiomas. Pero lo más importante, y debes asegurarte de que tengas instalada
la Comunidad Microsoft Visual Studio 2019 o más reciente con tu unidad. Porque vamos a estar usando Visual Studio para codificar todo, todo, y todos los comportamientos de los objetos que creamos inmunidad. Ahora, esto es todo lo que necesitas hacer. Simplemente haz click en Siguiente y comenzarás la instalación de tu Unidad. Entonces con eso dicho, es hora de tu primer reto. Y tu reto va a ser descargar Unity y Visual Studio. Entonces descarga Unity Hub, igual que te mostré, asegúrate de que si tienes un Mac, descargues la versión para Mac. Si tienes un Windows, descarga la versión de Windows. Entonces necesitas descargar la última versión. Y por último, asegúrate de descargar también Visual Studio con Unity. Así que pausa el video ahora mismo y sigue adelante y descarga la unidad con Visual Studio. Y en el siguiente video simplemente repasaremos la interfaz de unidad y Visual Studio que acabas de ver podemos superar nuestros miedos iniciales. Entonces te veré en el próximo.
4. Unity y VS 101: De acuerdo, así que bienvenido de nuevo a otro video. A ver ¿qué es la unidad? Unity es un desarrollo de motores de juegos multiplataforma desarrollado por Unity Technologies. Usaremos Unity para desarrollar nuestro juego. Entonces, ¿qué significa Multiplataforma? Significa que podemos usarlo en diferentes plataformas. Y es un motor de juego. Y qué motor de juegos es,
es un ambiente para que desarrollemos juegos y agreguemos física y añadamos cosas diferentes para crear nuestro juego. Entonces veamos cómo es realmente Unity y
te explicaré un par de cosas sobre ella. Entonces Esto es unidad. En primer lugar, tenemos esta barra de herramientas aquí arriba por encima de todo. Y esto proporciona acceso a las características de trabajo más esenciales. A la izquierda, contiene las herramientas básicas para manipular la vista de escena y los objetos del juego dentro de ella. En el centro tenemos el play, la pausa y el botón de control de stub. Y los botones de la derecha te dan acceso a la cuenta de Unity Collaborate, unity Cloud Service y Unity, y no entrarán mucho en eso. En el lado derecho de esos, tenemos el menú de la unidad de visibilidad de capas. Y tenemos el editor, que proporcionan algunos diseños alternativos para la ventana del editor y te permite guardar tus propios diseños personalizados. Entonces si no tienes el mismo diseño que yo, simplemente
puedes hacer clic aquí en layout y puedes elegir el layout predeterminado. Y este es el jugador por defecto que tenemos. Son los proyectos aquí mismo y inspector y todo. A continuación hablaremos de la ventana jerárquica justo aquí. Se trata de una representación de texto jerárquica de cada objeto de juego en nuestra escena. Por lo que cada elemento de la escena tiene una entrada en la jerarquía. Por lo que las dos ventanas están intrínsecamente vinculadas. En la siguiente jerarquía se revela la estructura de cómo los objetos de juego se unen entre sí. Entonces aquí mismo tenemos la escena muestral. Y si hacemos click en eso, tenemos la cámara principal debajo de ella. Y si agregamos otro objeto de juego, también aparecerá aquí mismo. Y aquí está el inspector, como se puede ver a la derecha. Este es el inspector de ventanas y
da, permite ver y editar todas las propiedades del objeto de juego seleccionado actualmente. Entonces si no seleccionas el objeto del juego, no
vemos nada. Al hacer clic en Cámara Principal, tenemos estas diferentes ventanas aquí mismo, y los diseños y contenidos del contador de la ventana
del inspector cambiaron cada vez que seleccionas un objeto de juego diferente. Entonces ahora no tenemos un objeto de juego diferente, así que nos conformaremos con la cámara. Siguiente. Entonces tenemos es esta vista de escena aquí mismo. Y la vista de escena te permite visualizar y navegar y editar tu escena. La vista de escena puede mostrarte ya sea
una perspectiva 3D o una perspectiva 2D dependiendo del tipo de proyecto que estés utilizando. Por lo que en partituras se estará utilizando la vista de proyecto 2D, pero también se puede escribir aquí, dar
click en el botón al y se irá 3D. Como puedes ver, tenemos esta vista 3D pero no vamos a necesitar, simplemente pasará al modo 2D. Y por último, quiero hablar de la ventana del proyecto aquí mismo, que muestra su biblioteca y activos que están disponibles para usar en su proyecto. Por lo que cuando importes activos a tu proyecto, aparecerán aquí mismo. Entonces por ejemplo, por ahora no tenemos ningún activo, sólo
tendría la carpeta escenas. Y dentro de la carpeta de escenas, tenemos esta carpeta de muestra. Entonces esta es una visión rápida de la unidad y lo que son todos esos paneles y gadgets. Nosotros, por supuesto,
profundizaremos en ellos a medida que pasemos por el curso. Pero ahora quiero hablar del, algo muy importante y ese es el Visual Studio. Entonces, ¿qué es Visual Studio? Visual Studio es un Microsoft Visual Studio. Se usa bien, es desarrollado por Microsoft y es un IDE. Y IDE es un entorno de desarrollo integrado. Y lo que haga, realidad, si me preguntas en Visual Studio, nos
ayudará a escribir el código utilizado para manipular objetos de juego en la unidad y usando algo llamado guiones. Entonces, ¿cómo usar Unity con Visual Studio? Por lo que necesitamos una forma de unidad y Visual Studio para comunicarse. Pero no simplemente hacen eso. Tenemos que agregarle algo llamado el archivo CSS dot, y ese es nuestro guiones. Y esos scripts son, en realidad
tomamos esos scripts, adjuntamos a objetos de juego, y el uso de esos scripts será capaz de agregar un comportamiento demasiado diferente. Tipos de objetos de juego, y lo veremos muy, muy pronto. Entonces, vayamos a Visual Studio y veamos de qué se trata. Este es Visual Studio. Y tal vez la primera vez que lo abras, tendrás diferentes paneles justo aquí a
la derecha y las ventanas delanteras justo aquí a la izquierda. Siéntase libre de cerrarlos todos. Y no te preocupes por lo que pase a continuación. Por supuesto, no lo tendrás la primera vez que inicies Visual Studio, pero lo verás pronto. Y sólo te presentaré un par de líneas de códigos aquí mismo. Entonces, vamos a acercarnos sólo un poco. Y aquí mismo en la parte superior se puede ver que estamos usando colecciones del sistema. Estamos utilizando colecciones de colección de sellos genérico. Y lo más importante, estamos usando el motor Unity. ¿ Cuáles son todos esos? Bueno, esos se llaman espacios de nombres. Y básicamente estas son bibliotecas que nos dan la oportunidad de usar diferentes tipos de pelaje. Entonces por ejemplo, el motor Unity, que agregamos aquí mismo, nos
permite utilizar para el método de inicio y el método de actualización y diferentes motores para crear juegos y hacerlo mucho más fácil. Y simplemente escribimos aquí usando motor Unity. Y nos ahorra mucho oro y nos da toda la biblioteca para usar. A continuación tenemos el nombre de clase pública. Y este es el, en realidad el ClassName, que debería estar justo aquí. Será el guión del que hemos hablado y se adjuntará a un objeto de juego. Y abarcará todo el código que cambiará
el comportamiento de nuestro objeto de juego y juego sidewall y comportamiento
mono es una clase base y en realidad
es estos dos significan que hereda del comportamiento mono, que le permite utilizar diferentes tipos de manipulaciones y motor y física y así sucesivamente y demás. Y lo siguiente que tenemos es el inicio y arriba es algo llamado lo común. Entonces cada vez que escribas código y añades estas dos líneas aquí mismo, comentará las cosas y los comentarios en realidad no se ejecutan en el GOP, el código, el código, el código y son perfectamente seguros. Por lo que arranca, se llama inicio antes de la primera actualización del marco. Por lo que en cuanto comience nuestro juego, el método de inicio, y esto se llama método que empezaremos a ejecutar. A continuación tenemos la actualización, y la actualización se llama una vez por franco. Por lo que cada fotograma que tenemos en nuestro juego, se llama
la actualización. Por lo que inicio se suele usar para dar las propiedades o configuraciones iniciales a ciertos objetos. Y la actualización se utiliza para objetos que se están moviendo o cambiando cada fotograma. Entonces si tenemos un auto, por ejemplo, y
arrancamos, podemos darle el color, el nombre, la velocidad a la que puede ir. Una actualización estará moviendo el auto, estará haciendo el salto, estará haciendo que el auto vaya más rápido, tal vez aumente su velocidad. Por lo que obtienes la idea básica de Visual Studio y ahora es el momento de tu reto. Tu reto es ir a hacer una misa. Por lo que abre Unidad, crea un proyecto. Y si no sabes crear un proyecto, lo
haremos en el siguiente video. Y cuando termines, después de que vayas a hacer masa de heno, ve al siguiente video y haremos nuestro primer código y empieza. Entonces te veré en el siguiente video.
5. Tu primer código: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, vamos a estar creando nuestro primer código y nuestros primeros objetos de juego. Entonces como puedes ver aquí mismo, tenemos un objeto de juego llamado Hello World en nuestro corazón y nuestra jerarquía. Está presente aquí mismo en nuestra escena, aunque no lo vemos muy bien. Y tenemos el guión aquí mismo adjunto. También hemos creado los criterios de guión en nuestro proyecto. Y en consola. Si hacemos click en Play, realidad
obtenemos un mensaje que muestra Hola Michele, que soy yo. En tu caso, va a estar mostrando tu nombre. Por lo que estoy muy emocionado por este video porque es nuestro primer ahondar en el mundo de la Unidad. Entonces espero que hayas disfrutado el video y te veré en solo un rato. De acuerdo, entonces lo primero que vamos a hacer es abrir el Hub de la Unidad. Y actualmente no tienes proyectos aquí, lo cual cambiará en solo lo primero que haremos es dar click en Nuevo aquí mismo. Y tendremos que elegir una plantilla para nuestro juego. Entonces estaremos creando un juego 2D, no un 3D. Y estas son diferentes opciones también para diferentes tuberías de proyecto. A continuación tendremos que añadir un nombre de proyecto. Siéntase libre de nombrarlo lo que quiera. Lo estaremos llamando por ahora, el Hello World, el proyecto. Y asegúrate de elegir una ubicación para tus proyectos de Unity. Entonces vamos a dar click en este y vamos a volver y guardarlo dentro de los proyectos de Unity. Entonces selecciona la carpeta y ahora tenemos una ubicación para nuestro juego. Necesitas hacer. Todo lo que necesitas hacer en este momento es hacer click en concreto. Por lo que da click en Crear y Unidad comenzará a crear tu proyecto. Y no te aburriré con la espera aquí. Usaré la magia de la edición y simplemente saltaré al proyecto. Entonces nos vemos en un rato. Bienvenido de nuevo. Por lo que espero que su proyecto también haya terminado de configurar. Entonces esta es nuestra escena. Si no tienes este tipo de vistas, como te he dicho, siempre
puedes ir al layout y elegir el layout por defecto. Y tendremos el mismo diseño, los dos. Entonces antes de que
empecemos, primero que nada en algo llamado la consola. Y como pueden ver, incluso antes de que empecemos nada, tenemos esta ventana de consola justo aquí. Y lo que esto hace es que nos muestre los mensajes. Y vamos a usar esta ventana de consola para ver las cosas que se imprimirán desde nuestro código. Y si no lo tienes, simplemente
puedes subir aquí en la ventana, dar click sobre ella. Y justo arriba aquí, puedes ver en el general tendrá la consola, así que haz click en ella, debería aparecer
una ventana y puedes acoplarla donde quieras. Yo lo voy a atracar aquí mismo a proyectos. En otra cosa de la que quiero hablar es en el, dondequiera que hayas guardado tu proyecto. Lo he guardado en proyectos D, Unity y Hola mundo. Entonces como pueden ver, tenemos diferentes carpetas aquí mismo. Tenemos los activos, mantenemos nuestras escenas y todo lo que creamos y proyectamos. Puedes ver los activos y activos del proyecto aquí mismo. También tenemos la biblioteca que crea automáticamente cada vez que entramos a un proyecto, tenemos registros, tenemos paquetes, tenemos Configuración del Proyecto, todo aunque
todos esos son detalles que no van a entrar demasiado. Y la carpeta temporal, que discutiremos más adelante en el tubo mágico al juego. Entonces volvamos a Unidad. Y aquí dentro vamos a estar creando nuestra falda. Entonces vamos a hacer clic aquí. Y vamos a entrar en Crear y crear. En realidad podemos crear múltiples cosas, como puedes ver, haremos un par de ellas en nuestro proyecto, pero por ahora simplemente creemos un guión C-sharp. Entonces haga clic en eso. Y antes de que hagas nada, Así que ahora no hagas nada, deja todo. Tendrás que asegurarte de que cada vez que nombre un script que lo hagas con precisión porque causará un error más adelante si quieres intentar cambiar el nombre de tu script. Así que asegúrate de nombrarlo correctamente desde el principio. Por lo que vamos a nombrar a este hola mundo sin ningún espacio y dar click en Entrar cuando estés seguro de que has decidido por el nombre del guión. Entonces da click en Entrar y te diré por qué en tan solo un poco. Entonces como pueden ver, tenemos algo justo aquí en el inspector. Y tomó un poco de tiempo y es porque la unidad necesita compilar el código aquí mismo. Y en realidad se puede ver el código en el inspector. Y por qué les dije es tan crucial asegurarse de que el nombre del guión aquí mismo se defina antes de dar click en Entrar como porque va a ser el nombre de nuestra clase. Entonces si cambias el nombre de nuestro guión aquí mismo, Tick Last name no cambiará. Y habrá un error donde unidad o el Visual Studio no
podrá encontrar el script correcto en el proyecto y esto provocará errores. Por lo tanto, para evitar eso, simplemente se asegura de que nombre a su guión de manera correcta y precisa desde el principio. Ahora, ¿qué debemos hacer a continuación? Es muy sencillo. Simplemente haz doble clic en Hello World y el Visual Studio debería abrirse. Y como puedes ver aquí mismo, esto es lo que hemos descrito un par de tal vez en el video anterior. Entonces, ¿qué vamos a hacer aquí? Simplemente vamos a imprimir algo a nuestra consola y lo haremos dentro de stock. Entonces sigamos adelante e imprimimos. Entonces como puedes ver de inmediato, Visual Studio, nuestro gran amigo empieza a ayudarnos y nos da una sugerencia para lo que queremos usar. Por lo que escribimos la impresión y nos da la sugerencia. Y ahora simplemente puedes dar click en Tab y se lo terminará por ti. Y ahora abrimos nuestros corchetes y podemos ver que Visual Studio nuevamente nos ayuda. Y nos dice que necesitamos agregar un mensaje de objeto dentro de aquí. Ese mensaje objeto va a ser una cadena. Hablaremos de cuerdas más tarde. Pero por ahora, string es una cadena de caracteres que ponemos dentro de estas dos comillas aquí mismo. Entonces sigamos adelante y sumamos de nuevo estas dos citas a. Y ahora escribimos dentro de estas dos citas, hola mundo. Entonces, ¿eso es suficiente? Bueno, en realidad, no, porque si ven aquí mismo, tenemos esta línea ardidamente roja. Y si pasamos por encima de
él, nos dice que espera un símbolo, que es éste. Y cada línea de código en C Sharp, tienes que añadir este punto y coma aquí mismo. Entonces guarde eso. Y ahora, porque lo hemos puesto dentro de inicio, cuanto iniciemos nuestro juego, este mensaje debe ser impreso en la consola. Entonces intentemos eso. Volvemos a la Unidad y entramos a la consola. Pero si hacemos clic en play, como pueden ver, no se está mostrando nada en nuestra pantalla. ¿ Por qué es eso? Debido a que no basta con crear un script, en realidad
necesita adjuntarlo a un objeto. Entonces vamos a crear un objeto. Y la forma en que hacemos eso, simplemente
entramos en nuestra jerarquía. Hacemos clic aquí. Podemos crear un objeto de juego vacío. Haga clic en eso, y ahora tenemos un objeto de juego. Adelante. Podemos cambiar el nombre de ese objeto de juego. Lo llamaremos. Vamos a llamarlo hola mundo objeto. Da click en Entrar, y debajo de ella puedes ver que tenemos la transformación. Y esta transformación nos dice la posición de nuestro objeto de juego en el mundo. Y aquí arriba tenemos las herramientas para manipular. Entonces si haces clic en el taburete, realidad puede poner el objeto hacia arriba o arrastrar el objeto hacia abajo, llevarlo a la izquierda o a la derecha y ponerlo en cualquier lugar que queramos. Y actualmente no podemos ver que no tenemos nada que representar ni objeto de juego. Simplemente tenemos sus ordenadas y su transformación. Entonces vamos a adjuntar el guión de este objeto de juego. Para ello, basta con hacer clic en el script y arrastrarlo a la jerarquía y a los objetos hola mundo. Entonces si hace clic en Hello word object aquí mismo, se
puede ver que tiene un script justo debajo de la transformación adjunta a ella. Y ahora si hacemos click en play en la consola, podemos ver que tenemos hola mundo. Enhorabuena, acabas de escribir tu primer abrigo y acabas de utilizar tu primer objeto de juego para mostrar algo a la consola. Go rate, y ahora es el momento de tu reto. Tu reto va a imprimir tu propio banco. Entonces en lugar de hola mundo, necesitarás imprimir tu propio nombre. Entonces cambia helloworld a hola. Y en lugar de esos tres puntos, claro que va a ser tu propio nombre. Te daré un par de pistas. Por lo tanto, agrega tu nombre y tamaño de los puntos. Guardar Visual Studio. Recuerda siempre guardar Visual Studio, estamos usando el control como ir a Unity y haz clic en jugar y revisa tu consola. Así que asegúrate de que funcione. Pausa el video ahora mismo y ve a hacer el reto. Oh, ¿cómo te equivocaste con eso? Espero que hayas intentado lo mejor posible y ese reto. Vamos a Visual Studio. Y en lugar de mundo, voy a borrar eso y pondré mi propio nombre, que es michelle. Entonces hola Michelle. Y sólo vamos a añadir una exclamación o tres signos de exclamación por el efecto dramático. Y para asegurarte de que has guardado tu proyecto. Me refiero a tu guión. Cuando miras aquí mismo, puedes ver que tiene un pequeño ataque de astérix, tan estricto como las drogas adjuntas a él. Y para guardar que haces click en, y eso significa que no se ha guardado. Por lo que unos cuantos sostienen Control, S, haga clic en control. Como se puede ver que el asterisco como trixie desaparece, y eso significa que el guión se ha guardado, vuelve a Unidad. Y se puede ver que hay un astérix aquí mismo, también al lado de la escena muestral. Entonces guarde eso. Y ahora si vamos a consola, puedes ver aquí mismo que tenemos este botón despejado. O si das click hacia abajo, puedes ver que podemos dar click en Play. Eso se puede quitar. Siéntete libre. No importa. Simplemente lo eliminaremos para ver los cambios que suceden en este momento si damos click en Play, tendremos hola Michelle,
o hola, sea cual sea tu nombre como mis compañeros estudiantes. Y eso es 0. Tan claro que, que se esfuercen de nuevo, haga clic en jugar y hola Michelle. Hola, Mis desarrolladores de juegos favoritos. Espero que disfruten del video y te veré en el siguiente.
6. Control de versiones 101: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, vamos a estar aprendiendo todo sobre el control de versiones, árbol de
fuentes, y la creación de repositorios de nuestros proyectos. Entonces como puedes ver aquí mismo, hemos creado un nuevo proyecto y hemos descargado el árbol de fuentes. Ahora tenemos un par de commits aquí,
y en realidad hemos revertido algo. Hemos creado nuestro commit inicial, añadido un cubo, lo hemos revertido. En realidad podemos revertir este compromiso. A lata. Entonces dar click en Sí. Como pueden ver, podemos volver a la recarga de Unity y tenemos nuestro cubo aquí mismo. Estaremos aprendiendo todo a minuto detalle. Entonces dame toda tu concentración. Esto es muy importante. Se trata de un video o lección extremadamente útil y nos quedaremos contigo para siempre siempre y cuando estés comprometido a
convertirte programador profesional o desarrollador de juegos. Entonces, no perdamos más tiempo y empecemos. O K. Entonces control de versión eso y ponme mi control de versión láser. Es difícil de aprender. Es aún más difícil enseñar, pero trataré de mantenerlo lo más simple posible. Y cuando te lo coges, confía en mí, es muy sencillo y fácil de usar. Además es una habilidad indispensable que debes aprender si
buscas convertirte en un desarrollador de juegos profesional o incluso en un programa profesional. Entonces empecemos con lo que es. En primer lugar, se trata de un sistema que se
encarga de gestionar los cambios a los programas informáticos. Entonces esto significa que cada vez que creamos cambios en nuestros programas, realidad
podemos guardar esos cambios en cada paso de nuestro proyecto. De esta manera, en primer lugar podemos comprobar lo que hicimos. Podemos crear diferentes tipos de versiones donde
podemos volver atrás y cambiar las cosas que hemos creado. Permite un mejor trabajo en equipo. Entonces, por ejemplo, digamos que tienes cuatro o cinco personas trabajando en un mismo proyecto, pero cada una de ellas tiene una tarea diferente que necesitan crear. Por lo que el control de versiones es una muy buena forma de manejar todo esto. ¿ Y por qué lo necesitamos? Bueno, ¿por qué nosotros, en realidad lo usamos? Bueno, lo usaremos para recordar la versión anterior de nuestro juego y tener más flexibilidad para experimentar. Por lo general, el desarrollo de juegos es un entorno en el que se requieren muchas experimentaciones. Por ejemplo, quieres agregar algún tipo de propiedad a algún tipo de objeto de juego y tal vez rompa todo tu proyecto. Por lo que quieres tener siempre una versión anterior de tu proyecto antes de añadir este mecánico rompedor de juegos. siempre puedas volver atrás y empezar fresco a partir de ahí. Por lo que esto es extremadamente importante, sobre todo para los desarrolladores de juegos que siempre necesitan estar experimentando con nuevas ideas y cosas en sus juegos y proyectos. ¿ Y cómo lo vamos a utilizar? Bueno, vamos a estar usando algo llamado árbol fuente, y este es el control de versiones. Nos permite crear diferentes versiones. Y su primero, es gratis. Es muy fácil para principiantes, muy flexible, y tiene una interfaz muy sencilla que podemos utilizar como principiantes. Entonces sigamos adelante y descarguemos el árbol de fuentes. Déjame mostrarte dónde podemos hacer eso. Si abres Google Chrome o cualquier navegador que tengas, simplemente ve a Google y justo aquí, descarga el árbol de fuentes. Deberías encontrar un enlace aquí mismo, y debería ser el árbol de origen. Arriba. Al hacer clic en él, vas aquí mismo a su página web. Si te desplazas hacia arriba, puedes ver que tienes la opción de descargar para Windows. Pero si estás en un Mac, asegúrate de hacer clic aquí y descargar árbol
fuente para Mac OS o no funcionará para ti. Entonces si tienes un Mac, descarga la versión para Mac, si tienes un Windows, descarga la versión para Windows. Suficientemente simple. Ahora, cuando termines de descargar, deberías conseguir este archivo aquí mismo. Y cuando haga doble clic en él, debe iniciar la instalación. Ahora porque ya tengo árbol fuente, no
lo estaré instalando en otro momento. Simplemente te llevaré a través del proceso de instalación realmente. De acuerdo, Entonces esta es la primera ventana que aparecerá para ti. En primer lugar, es necesario aceptar la licencia, por supuesto. Y tal vez puedas apagar esto si no quieres ningún correo electrónico a tu manera desde el árbol de fuentes y etcétera en la lección. Lo siguiente que debes hacer es que necesitas crear una cuenta en ocasiones, puedes ir a en lysine y colocando como la empresa matriz del árbol fuente puede seguir adelante y crear una cuenta allí, o puedes usar una cuenta existente si ya tener un Gmail. Personalmente creo uno usando Gmail. Es mucho más rápido, Es mucho más fácil y no te spam con muchos correos electrónicos. Lo siguiente aquí dentro, vamos a conectarlo a una cuenta. Ahora bien, esto es, por supuesto, no
vamos a estar haciendo esto. Si quieres hospedar tu código en ciertos sitios web como GitHub o Bitbucket. No vamos a estar haciendo eso, por lo que simplemente puede hacer clic aquí en configuración omitida. Por último, mientras se instala el árbol de fuentes te dirá que no es capaz de localizar get. Entonces para completar esto, simplemente haga clic en Descargar y versión incrustada de Git y continuar. Y entonces también puede pedirte algo llamado mercurial. Ahora, Mercurial es un sistema diferente, al igual que get. Nos permite guardar diferentes versiones de nuestro proyecto. No estaremos usando Mercurial, así que simplemente puedes hacer click en, no
quiero descargar o no quiero usar Mercurial. Y esto debe ser cuando termines de instalar. Deberías tener esto aquí mismo. Y tu, bueno, esta ventana justo aquí cuando inicias árbol fuente, si no simplemente haces clic aquí en Crear y deberías obtener esta ventana. Ahora, aquí es donde realmente creamos nuestro repositorio. Y aquí dentro se puede ver que tenemos la ruta de destino, el nombre, y el tipo de control de versión que queremos utilizar. Por supuesto que estaremos usando el GET. También tenemos la opción de crear una cuenta, pero como les he dicho, estamos manteniendo las cosas muy simples. Es nuestra primera vez, así que no estaremos creando ninguna cuenta. Entonces aquí vamos a elegir cuál es la ruta de destino de nuestro repositorio. Entonces qué, cuál es el proyecto del que realmente vamos a estar creando un repositorio para versiones posteriores de. Bueno, vamos a crear nuestro primer proyecto que vamos a estar usando. Entonces aquí que se abre el Hub de la Unidad. Y como puedes ver, ya tenemos Hello World que
no tenemos en un video anterior que está dando click en Nuevo. Y asegurémonos de que sea un proyecto 3D. Y este va a ser nuestro ciberespía 2087. Sigamos adelante y creemos este proyecto. Entonces da click en Crear. Y yo, por supuesto, siempre usando mi magia de edición con el fin de acelerar este proceso. Te veré del otro lado. De acuerdo, bienvenido de nuevo. Entonces espero que todo te haya salido bien. Por lo que ahora tenemos un nuevo proyecto que es cibernético despecho 2087. Entonces ahora que tenemos nuestro proyecto creado, en realidad
podemos seguir adelante y empezar a crear un repositorio. Ahora, si volvemos a nuestro árbol de fuentes aquí mismo, podemos hacer clic en Navegar y en realidad podemos seguir adelante a los proyectos de Unity. Y se puede ver que tenemos un mundo hola y tenemos un ciberespacio para 2087. Entonces vamos a seleccionar esta carpeta. Creará un repositorio con este nombre. Si golpeamos Crear, se va a preguntar un problema. No te preocupes por ello. Haga clic en Sí. Y voila, ahora en realidad hemos empezado a crear un repositorio. Tienes los archivos escenializados aquí mismo. Tienes diferentes tipos de perillas. No hace falta que te preocupes por ninguno de ellos por ahora, solo céntrate en los archivos escenializados, en los archivos por etapas y comete aquí. Ahora bien, si nos desplazamos hacia abajo en estos archivos en el escenario, se
puede ver que la mayoría de ellos son de la biblioteca. Nos desplazamos hacia abajo hasta el final, podemos ver algunos de ellos son Tampa 10 o temporalmente. Podemos ver también que tenemos configuraciones de proyecto y estos son todos los archivos que nosotros para nuestro proyecto. También tenemos activos aquí para la unidad en las escenas por ejemplo. Entonces este es un repositorio el cual es una versión de nuestro proyecto actual. Ahora, el problema aquí es que, como pueden ver, hay una tonelada y tonelada de archivos, y B no va a estar necesitándolos todos. Bueno, en realidad vamos a necesitar casi ninguno de ellos. Sólo necesitaremos cierto tipo de archivos. Por lo que queremos estar ignorando la biblioteca y los archivos temporales temporales. ¿ Por qué es eso? Bueno, déjame mostrarte abriendo el directorio de nuestro proyecto. Oh, bien, Así que esto es Cyberspace por 2080 directorio sevens dentro del proyecto Unity, como se puede ver aquí arriba. Entonces tenemos los activos, los registros de
la biblioteca, paquetes, etcétera, y etcétera. Ahora bien, ¿cuál es la carpeta temporal y cuál es la carpeta de la biblioteca y por qué en realidad no las necesitamos? Por lo que temporal es sólo una forma de que la unidad se abra más rápido cada vez que iniciemos el proyecto. Y siempre se crea cada vez que abrimos un proyecto. Entonces, por ejemplo, si entro aquí mismo a Unity y en realidad la cierro, verás que el archivo temporal. Desaparecerá. Y aunque eliminemos la biblioteca ahora mismo, así que sigamos adelante y eliminemos esta biblioteca por completo. Si volvemos a nuestro Unity Hub y abrimos ciberespía 287. Como puedes ver aquí mismo, viste que la biblioteca se ha creado de nuevo y también se ha creado la carpeta temporal. Entonces, por supuesto, el proyecto debería tardar un poco más de tiempo ahora en abrirse. Pero esto es evidencia de que una biblioteca y las carpetas temporales no
son necesarias para que siempre nos comprometamos y escenificemos. ¿ Y a qué me refiero por etapa? Entonces cada vez que
escenificamos nuestras carpetas, en realidad creamos un commit a partir de ellas, cualquier versión de ellas. Y biblioteca ocupa mucho espacio. Como pueden ver, si nos desplazamos hacia abajo, ocupa la mayor parte del espacio y no queremos ninguno de ellos en absoluto. Entonces, ¿cómo debemos proceder? Bueno, en realidad podemos ignorar todas las carpetas que están debajo la biblioteca simplemente yendo y eligiendo cualquiera de las carpetas que tienen biblioteca en ellas. Haga clic derecho en él. Y aquí dentro se puede ver que tenemos la opción de ignorar a uno de ellos. Entonces haga clic en ignorar. Y aquí dentro tienes opción de ignorar este nombre de archivo exacto, ignorar todos los archivos con esta extensión, o puedes ignorar todo debajo de una biblioteca, y esto es lo que queremos. Entonces da click en Ok. Y como pueden ver, todo lo que hay debajo de la biblioteca ahora ha sido ignorado, por lo que no podemos escenificarlo, por lo que no podemos guardarlo en nuestra versión más reciente. Y si te desplazas hacia arriba, podrías haber notado que tenemos una nueva carpeta aquí que es el dot git ignore. Y cuando hacemos clic en él a la derecha, se
puede ver que tiene la biblioteca. Y, y si hacemos doble clic en él, realidad
podemos abrirlo en nuestro bloc de notas y aquí dentro podemos agregar los diferentes archivos que también queremos ignorar. Entonces, ¿cuáles son los expedientes que queremos ignorar? Bueno, hay una tonelada de archivos, pero afortunadamente, alguien realmente ha pasado por todos estos archivos y ha creado una lista de todo lo que podemos ignorar cada vez que creamos controles de versión o versiones de nuestro proyecto. Y para poder encontrar ese archivo, puedes ir de nuevo y a Google o al frente. Adelante y busca dot git, ignora la unidad. Y deberías tener este enlace aquí mismo para el github.com. Y estará alojado en GitHub. Si abres este enlace
, te llevará aquí mismo. Entonces este es el dot gitignore y es la unidad dot git ignore. Y estos son todos los archivos que podemos ignorar al crear versiones de nuestro proyecto. Puedes hacer click en fila justo aquí, y se abrirá esta ventana o pestaña. Vamos a seguir adelante y seleccionarlos todos haciendo click en control a. copiaremos todo esto usando el control C. Y lo vamos
a pegar aquí en nuestro bloc de notas gitignore de puntos. Y ahora tenemos el bloc de notas gitignore
lleno de todos los archivos que no usaremos para nuestro positivo 3. Vamos a guardar eso usando Control S. Y ahora de vuelta en Unity o me refiero de vuelta en el árbol fuente, puede ver que cuando tuvimos el git ignore, todo se ignora. Vamos a escenificar todo eso. Y cuando escenificamos todo eso, se
puede ver que estos son los expedientes que se van a comprometer. Y estos serían nuestro compromiso inicial o nuestra versión de repositorio inicial del proyecto. Y por lo general cada vez que creas tu commit inicial, llamamos a esto la inicial. Puedes capitalizarlo, el inicial, oops, compromiso inicial. Y hacemos click en Comprometir aquí mismo. Entonces ahora si miras a la izquierda, puedes ver que aquí tenemos sucursales y tenemos la rama maestra. Enhorabuena, hemos creado nuestro primer compromiso. Muy bonito. Ahora, permítanme mostrarles cómo vamos a avanzar más abajo de la línea, pesar de que este video ya ha sido lo suficientemente largo. Pero creo que necesitamos obtener una base adecuada para el árbol de fuentes y el control de versiones a medida que avanzamos por nuestro proyecto. Entonces digamos que estamos en nuestro proyecto aquí mismo. Y vamos a seguir adelante y crear algún tipo de cubos. objeto 3d. Haga clic derecho en la jerarquía. objeto 3d, crea un cubo, y ahora tenemos un cubo. Vamos a escalarlo un poco. Así que escalar en la x, la y, y la z. Genial. Entonces ahora tenemos un cubo y nuestra escena. Y ahora si entramos en árbol fuente, vamos a guardar eso antes de irnos. Y necesita guardarlo en cierta escena. Entonces vamos dentro de escenas. Esta será nuestra escena muestral. Seguro. Muestra de escena, sí, sustitúyala. Por lo que tenemos esta escena de muestra atrás y árbol fuente. Espéralo un poco, y puedes ver que tenemos cambios no comprometidos. Entonces si hacemos clic en ellos, se
puede ver que los archivos en el escenario son cambios dentro de las escenas, que es la escena de muestra. Y aquí puedes mirar a detalle lo que hemos creado ahora. Es un poco raro aquí mismo, pero si miras de cerca, puedes ver que hemos creado un colisionador de cajas. Y básicamente esto representa el cubo que hemos agregado a nuestra escena. Entonces sigamos adelante y escenificemos todo eso. Podemos dar click en Commit aquí y nombrar esto añadido un cubo. Haga clic en comentario. Y ahora en nuestra rama maestra, se
puede ver que tenemos un commit inicial el cual no tenía ningún cubed. Y ahora en nuestro cubo agregado, hemos agregado un cubo. Por lo que felicitaciones. Y como nota final, esto puede parecer un poco engorroso. Esto puede parecer un poco raro, pero no tengas miedo esto es muy sencillo. Y lo que es más importante, es extremadamente importante para nosotros
entender a medida que avanzamos por nuestro proyecto, creamos versiones, versiones del mismo. Y si alguna vez
cometemos un error, en realidad podemos volver haciendo clic derecho aquí, revirtiendo el commit. Y sí, podemos revertir el compromiso si volvemos atrás y a la unidad, nos pedirá una recarga en vivo. Escribimos, recargamos, y ahora no tenemos el cubo ni ningún mecánico
rompejuego que hayamos agregado en el camino. Y ahora es el momento de tu reto. Tu reto va a ser descargar y configurar el árbol de fuentes y el archivo de ignorar. Así que descarga el árbol fuente y el puesto y configurar todo. Crea tu proyecto 3D en Unity Hub
, crea un repositorio para él y árbol de fuentes, ni los archivos de la biblioteca y consigue el punto ignore archivo y agrégalo a tu repositorio, crea tu primer commit, y luego crea tu segundo compromiso. Incluso puedes seguir adelante y tratar de tal vez jugar con un par de cosas. Agrega un cubo, invierte el commit, ve qué pasa. Ponte cómodo con el árbol fuente. Y si estás teniendo un poco de problemas, puedes pausar el video de esta lista de cosas que necesitas crear. Y también siempre puedes volver atrás y ver el video y ver cómo lo hice todo y seguirme paso a paso. Entonces nos vemos en solo un poco.
7. Diseño de legiones de la conquista: Oye, mis compañeros desarrolladores de juegos. Entonces antes de ahondar en las partituras y en la forma en que vamos a estar creándola. Pensé que sería una muy buena idea hablar del diseño del juego de nuestro juego. Por lo que siempre te recomiendo que hagas esto. Y la forma en que comienzas construyendo un juego como solo hacer un concepto muy, muy, muy rudimentario y sencillo de tu juego. Por lo que decidí usar un demonio como sprite. Ya veremos en qué están los sprites en tan solo un poco. Y le van a llamar creo que lo llamé Jimmy en algunos momentos. Entonces vamos a tener el edema del gimnasio. Y acabo de dibujar un camino, el camino por el que vamos a estar caminando, vamos a tener pasto aquí dentro, como el pasto. Podríamos tener unas cuevas para alguna entrada. Podríamos tener un acantilado y aquí, y este es el trazado básico de los niveles que vamos a tener. Tendremos también un poco de agua. Ahora hablemos de los personajes y de nuestro juego. Tenemos M0, que es el demonio. Tenemos un tendero. A lo mejor incluso crearemos un lugar para el demonio Jimmy entre a una tienda donde podamos comprar artículos, vender artículos, tal vez hasta conseguir misiones, tener un poco de diálogo. Después tenemos a los dadores de misiones o simplemente MPC de los
que podemos hablar y encontrar misiones donde podamos conseguirlas. Para que podamos encontrar algún tipo de hermosa señora pelirroja donde nos dice que su tal vez hijo está desaparecido. Entonces tenemos que ir a encontrarlos. Entonces también tenemos a estos monstruos y aquí están los malos. Y yo los dibujé. A lo mejor los podemos encontrar dentro de cuevas o mazmorras o en lo alto de colinas. Y esta plaza azul frente a él es donde realmente iniciamos la batalla. Entonces si entramos a la plaza, inmediatamente
iniciamos un combate por turnos del que hablaremos en un poco. También podemos encontrar artículos en el suelo, por ejemplo, un Escudo Dorado. O podemos conseguir estos artículos después de ganar una batalla, o podemos comprarlos en la tienda. Por lo que todo eso está disponible para nosotros. Y podemos ver aquí dentro que tenemos aquí
estas casillas negras y ¿qué representan? Bueno, son una manera de ir de una escena a otra. Entonces vamos a crear un mapa de teselas. Discutiremos qué es el mapa de pila. No te preocupes por eso. Donde vamos a diseñar todo. Pero como saben, no podemos diseñar todo el juego en un solo mapa. Entonces lo que haremos es que vamos a transitar de nivel a nivel usando estas carreteras y salir de frente. Vamos a ahondar un poco más. Entonces hablemos de los combates por turnos y de qué se trata. Voy a echar un vistazo solo para mostrarles un par de juegos que implementan esto, profundizaremos más cuando lleguemos a esa sección y a nuestra ganancia. Se puede ver aquí, este primero fue el juego de Final Fantasy. Yo creo. Este es un juego muy nuevo. Creo que no muy nuevo, pero en los últimos años creado y es muy aclamado y realmente se vende mucho. Entonces solo te estoy mostrando los diferentes tipos de juegos modernos de combate por turnos. Entonces no sientes que, Oh, esto podría ser aburrido en realidad, no, todavía se usa en el desarrollo de juegos modernos. Y se puede ver aquí,
esta es la forma en que diseccionamos un mapa de teselas. Para que veas que cada una de estas son fichas que utilizamos para nuestro juego para dibujarlas todas. Y esto es para cosido cinco. Creo que es un juego bastante nuevo, tiene muy alto aclamado y es un combate por turnos donde cada jugador toma un turno para atacar a algún tipo de enemigo frente a ellos. Sigamos adelante. Hablemos de las leyendas del diseño de juegos de conquista. Entonces, ¿cuáles son las mecánicas centrales de nuestra ganancia? Va a ser caminar,
interactuar, y el combate por turnos. ¿ A qué me refiero con caminar e interactuar? Bueno, caminar es bastante sencillo. Es comprensible. Interactuar es interactuar con otros PNJ, interactuar con los tenderos y yo sólo voy a diseñar todo. Por lo que interactuar con los tenderos, interactuar con objetos quizá ocultos, interactuar con los dadores de misiones, interactuar con los enemigos, y el combate por turnos también es un mecánico central del juego. También hablaremos de la jugabilidad básica. Por lo que el juego principal es tomar misiones, derrotar monstruos en cuevas, ganar dinero y experiencia. Y también tenemos la actualización de nuestro jugador y nuestras armas. Por lo que vamos a crear un sistema donde tengamos estadísticas de jugador y las
actualizamos a medida que el jugador gana más experiencia y así sucesivamente. Por lo que esta es una pequeña escena junto al agua con un bote. Y eso es justo. Entonces hablemos de historia de juego. Y podrías estar pensando, Bueno, ¿por qué debería tener una historia de juego mientras estás trabajando en un proyecto? Si no tienes una historia de juego, si no tienes. El panorama general de tu juego, no sabrás a dónde te diriges. Te encontrarás carente de motivación a medida que avanzas por tu curso. Y verás que es despacio, despacio, pero seguramente dejando tu alma no más motivación. Entonces, ¿cuál es la historia del juego de nuestro juego? Eres un demonio desde la profundidad del infierno en
busca de tu Caballero Oscuro y hermano que fue capturado por el Emperador. Tu misión es matar monstruos en cuevas que persiguen pueblos en el imperio. Y he parado aquí, pero se puede ampliar mucho en esto. Por lo que podrías pensar que matas monstruos en los pueblos por el imperio, porque quieres que el emperador mantenga a tu amigo a salvo. A lo mejor quieres salvarlo al final. A lo mejor el emperador se convierte en algún tipo de demonio o algún tipo de arrastre al final y necesitas derrotarlo
después de salvar a tu amigo de lo que fuera, el Caballero Oscuro, en realidad usamos uno de ellos. No es batman, una noche oscura para la que encontramos unos sprites. que se pueda ver, por ejemplo, tenemos un sistema de diálogo donde platicamos con el tendero. Nosotros nos dice que es curandera. Ella nos dice, oye, soy curandero. Y también tenemos diferentes tipos de ambientes. Por lo que utilizamos múltiples sprites que se venden aquí. Esto tal vez no es algún tipo de periferia donde necesitas encontrar algún tipo de búsqueda, tal vez encontrar algunas hierbas para el curandero o lo que sea. Entonces sigamos fuera. Por fin o no. Por último, sabré Hablemos de los requisitos técnicos. Por lo que vamos a tener un conjunto de teselas para el fondo y los objetos sólidos. Vamos a tener entradas del teclado controlando nuestra ganancia. Vamos a tener una cámara de seguimiento. Yo sólo voy a abrir todos estos. Vamos a tener donde estuvimos siguiendo cam que seguirá al jugador usando algo realmente, realmente genial. Y eso es agregar un rezar a través de nuestra cámara, lo cual es muy raro que lo sé, pero eso nos permite usar la máquina Cinna. Por lo que se puede ver este es otro ambiente diferente donde tenemos lava y este monstruo. Y aquí tendremos estadísticas claras. Entonces tendremos destreza, defensa, HB, Manor, experiencia, etcétera. Todos estos serán estampados con un sistema de nivelación. Tendremos un sistema de diálogo, como viste en la diapositiva anterior. Tendremos un sistema de búsqueda. Tendremos un sistema de inventario, que va a ser una parte muy divertida del curso porque vamos a utilizar todos nuestros conocimientos en C-Sharp. Va a ser tan divertido, aprenderás tanto. Y entonces tenemos la tienda y el dinero, que también va a ser un muy complejo, pero a veces tomando dos ideas simples y combinándolas para trabajar juntos, que es el sistema de inventarios y un sistema monetario que va a crear, para trabajar juntos, para crear una tienda. Va a ser una creación muy, digamos, desafiante que hacer. Y por último, tenemos el sistema de combate por turnos en el que vamos a estar profundizando tanto y aprendiendo tanto. Y así hablemos de futuros de jugabilidad. Y voy a abrir todo para que podamos ver la imagen al final. Entonces esta es una foto que traté de tomar una captura de pantalla del combate por turnos. Para que veas que tenemos los nombres de nuestros jugadores con sus barras de salud. Son barras menores. Se puede ver que tenemos opciones para atacar, para usar magia, para usar objetos, y para huir. Y ya puedes ver tendremos múltiples tipos de jugadores. Y esta es la noche oscura de la que estaba hablando. Y esto es algún tipo de compañero viajero, un sombrío esqueleto que encuentras a lo largo tu camino y él acepta ayudarte con tus batallas. Entonces este es un maestro mayor que encontré y esto es un bélico. Y todos estos son sprites que encontré
gratis en una página web de la que estaré hablando y usando mucho. Entonces, ¿qué tenemos? Tenemos el movimiento Conquistador. Estas son las características de juego que tenemos al caminar tendrán caminar de múltiples maneras. Entonces vuelvo a mostrarte. Entonces tenemos, por ejemplo, al demonio frente. Pero aquí dentro, por ejemplo, tenemos al demonio mirando hacia la izquierda y hacia la derecha y hacia arriba. Entonces esto en realidad es una característica o un mecánico si quieres. En nuestro juego, tenemos interactuando con MPC. Esta es también una parte muy crucial del juego. Entonces, ¿cuáles son los interactables? Hemos hablado de cómo podemos movernos a través de niveles o escena. Ya verás qué escenas son cuando lleguemos al curso. Por lo que tenemos salidas de zona. Por lo que estas son las zonas donde podemos salir de N2, otras zonas, tenemos zonas de batalla. Aquí es donde hablé de donde tenemos algún tipo de enemigo
frente a nosotros y entramos a la zona de batalla y empezamos a combatirlos. Tenemos artículos en el suelo que podemos recoger. Contamos con MPC's para misiones o para comprar con. Tenemos un punto de inicio y final, lo cual es muy importante. Tendremos un punto de zona de salida por el que
camina el demonio para llegar a una zona a otra. También cuentan con las pastillas, que son los artículos en el suelo. Contamos con múltiples artículos también, y puedes agregar los tuyos propios. Esa es la parte más hermosa de todas las puntuaciones que
puedes agregar tus propios artículos a este juego. Actualmente utilizamos un acto de plata, un hacha de oro, una armadura de plata, una armadura dorada. Tenemos océanos monopoles, tenemos porciones de HP y así sucesivamente. Entonces, finalmente, te voy a emitir un reto, y ese reto va a crear tu propio diseño de juegos. Por lo que necesitarás descifrar una historia para tu juego. Sé que podrías estar pensando, en serio. Yo solo quiero aprender a codificar. Yo solo quiero crear este juego, por favor. Michael, déjame en paz. No. Necesitas descifrar una historia para tu juego. Confía en mí, cuando encuentres una historia, este curso será mucho mejor. Y no estoy aquí para enseñarte a crear. De nuevo, no estoy aquí para enseñarte a codificar en C Sharp. Estoy aquí para enseñarte a convertirte en desarrollador de juegos, A-Master, solucionador de problemas. Entonces lo primero que debes averiguar es la historia detrás de tu juego. Entonces quiero que averigmas las mecánicas del juego. Tú quieres. A lo mejor quieres añadir saltos, lo
mejor quieres añadir correr. Simplemente ponlos en el sitio. Aunque seas principiante, solo agrega todo lo que te encantaría tener en tu juego. A lo mejor no puedes implementarlo ahora mismo. A lo mejor no lo implementamos en nuestro juego. Pero a medida que avanzas por tu viaje de desarrollo de juegos, verás que al final de los puntajes tendrás todas las herramientas para crear todo lo que quieras para tu juego. Entonces necesitarás descargar tus propios sprites y por compensaciones, asegúrate de tener primer plano y fondo. Si quieres. Espera un poco este punto aquí mismo, cuando te muestro la página web, es arte de juego abierto. No es como algún sitio web secreto ni nada. Es arte de juego abierto. Ve a buscar tus propios sprites. Ve a encontrar tus propios personajes, enemigos, monstruos, PNJ, conjuntos de dial, lo que quieras, ve a buscar los tuyos propios. Yo realmente, realmente recomiendo que sí necesitas averiguar qué características quieres agregar. A lo mejor quieres tener algo diferente que simplemente artículos en el suelo. A lo mejor quieres tener algunos artículos ocultos. Puede querer tener cofres que se abran y encuentren los artículos. Vuelve loco divertido tus propias características. Y supongo que eso es todo. Estamos terminando nuestra sección. Entonces voy a dejar que este reto entre aquí frente a ustedes. Yo quiero que te tomes el tiempo para crear la historia. Yo quiero que te tomes tiempo para apuntar la mecánica que te encantaría tener en tu juego. Ponte creativo, aunque pienses que no tienes habilidad, hazlo, solo escríbalos. Estaremos lidiando con todo en este curso. Entonces, no perdamos más tiempo. Y te veré en el siguiente video.
8. Sección 2: configuración de la hoja de Sprite: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. En este video, como puedes ver, hemos creado un nuevo proyecto llamado las leyendas de la conquista al RPG. Yay, ten muy excitante. Esta es la mejor parte de crear proyectos. A continuación agregamos esta imagen de fondo. Agregamos nuestro pequeño demonio aquí mismo que llamará más adelante. Y también hablamos de láminas sprite y renders sprite. También hablamos de un sitio web muy emocionante, muy bonito donde podrás encontrar todos estos de forma gratuita. Entonces, no perdamos más tiempo y empecemos. Oh, bien, entonces lo primero que vamos a hacer es que vamos a crear un nuevo proyecto. Y aquí vamos a asegurarnos de que sea un juego 2D. Y vamos a llamar al RPG a estas leyendas de conquista. Y asegúrate de encontrar la ubicación adecuada. Yo lo voy a guardar dentro de los proyectos de Unity aquí mismo. Así que golpea Seleccionar carpeta. Ahora se guarda en proyectos de Unity. Se llama leyendas de conquista al RPG. Y vamos a crear el proyecto. Y voy a saltarme esta parte sólo porque
no quiero molestarte con todo el tiempo inútil. Oh, bien, bienvenidos de nuevo a todos. Entonces ahora que nuestro proyecto ha sido creado, empecemos a agregarle cosas. En primer lugar, agreguemos una especie de fondo solo para tener un lugar donde puedan entrar nuestros personajes. Así que he preparado algo llamado la imagen de fondo, y simplemente puedes arrastrarlo aquí mismo a los activos. Y ahora simplemente podemos arrastrarlo sobre nuestro c. Así que como puedes ver, es un poco pequeño. Déjame volver a centrar todo aquí mismo. Por lo que la posición está en el 0 en la x, 0 en la y, y 0 en el zed. Y como puedes ver, si ejecutamos el juego en este momento, es un poco demasiado pequeño. Ahora lo que podemos hacer, podemos aumentar la escala, pero un, otro truco muy astuto que podemos hacer, un click de cuota aquí mismo en la imagen. Se puede ver que los píxeles por unidad son de 100. Simplemente haz que este 30 para golpear aplique. Y como se puede ver, la imagen crece más grande. Y te explicaré más adelante qué píxeles por unidad. Ahora lo siguiente que vamos a hacer es que vamos a sumar a nuestro personaje. Y para eso, vamos a estar usando algo llamado sprite. Déjenme explicar qué es un sprite. Entonces, ¿qué es un sprite? Entonces este es un sprite de nuestro personaje, los que vamos a usar. Y esto también es un sprite del suelo que vamos a utilizar nuestro juego. Entonces un sprite es un objeto 2D. Tienen imágenes gráficas en ellas llamadas texturas, igual que puedes ver aquí, estas son texturas sobre un objeto 2D. Y se utilizan agregando un componente llamado renderizador sprite a un objeto de juego. Entonces déjame mostrarte cómo funciona eso. En primer lugar, volvamos a Unidad. Y vamos a seguir adelante y agarrar a nuestro personaje aquí mismo. Como pueden ver, tenemos muchas opciones. Entonces voy a elegir la vainilla de paseo aquí mismo y añadida a nuestros activos. Entonces vamos a darle a Enter. Y antes de continuar con eso, acabamos de cambiar el diseño aquí de la predeterminada uno a la dos por tres. Y esto nos ayudará mucho mejor. Agarra el juego y mira a tu alrededor ya que podemos ver la escena y el juego debajo de ella. Porque este juego estará muy enfocado en cómo se ve
todo comparado de la escena al juego. Está bien, genial. Entonces lo siguiente que vamos a hacer es que vamos a dar click en el paseo vainilla aquí mismo. Si presionas la flecha pequeña, puedes ver que todos los demonios se machacan juntos. Entonces si hacemos doble clic aquí, se
puede ver que todos los demonios están en la misma imagen, pero eso no queremos. En realidad queremos justo esta imagen aquí para poder mostrarla. Porque si solo lo agregamos ahora mismo a la escena, puedes ver que es demasiado pequeño y están todos empacados juntos. Por lo tanto, permítanme borrar esto. Entonces la forma en que vamos a hacer esto es en primer lugar, vamos a dar click en esta imagen. Podemos mirar aquí y al inspector, podemos primero tal vez hacer este 32 o lo cambiaremos más adelante. Mantengámoslo 100. Tenemos que cambiar estos modos privados a múltiplo. Tendrá que cambiar el modo de filtro a un punto. No se aplicará ningún filtro todo eso. Y ahora cuando hacemos clic en el editor de sprite, como puedes ver, podemos empezar a rebanar nuestros brotes. Si buscamos aquí arriba, tenemos la opción de rebanar esto automáticamente. Pero si tratamos de rebanar esto automáticamente, verás que no todos los cuadrados son del mismo tamaño. Y esto será un enorme problema más adelante cuando tratemos de animar, porque como puedes ver, esta es la animación de caminar. Tenemos múltiples tribus. Si no son del mismo tamaño, va a ser un poco duro. Entonces lo que vamos a hacer es cambiar de automático a cuadrícula por tamaño de celda. Y si golpeamos esta tecla de rebanada ahora mismo, se
puede ver que crea una rebanada muy ordenada de nuestra hoja de sprite grande. Por lo que puedes ver que cada sprite o rebanada del sprite es del mismo tamaño. Y esto nos ayudará tremendamente electrones. Por lo que ahora podemos golpear la rebanada, podemos darle al aplique. Y como puedes ver, cada rebanada tiene un nombre específico. Ahora puedes cambiar el nombre de los sprites para caminar uno correcto, por ejemplo, pero no creo que sea muy necesario. También puedes modificar el tamaño de las rebanadas aquí mismo, pero creo que esto es lo suficientemente bueno. Por lo que golpea Aplicar de nuevo. Salgamos. Ahora si presionamos la tecla de flecha, se
puede ver que aquí tenemos los sprites individuales. Y podemos empezar arrastrando éste, el principal, y ponerlo en nuestro mapa de azulejo o nuestra imagen de fondo, como se puede ver, aquí, no es visible. ¿ Dónde está nuestro pequeño demonio? Bueno, él está aquí, pero si lo movemos por detrás de la imagen de fondo, y también se puede ver que es muy, muy diminuto. Y aquí es donde podemos cambiar el píxel por unidad. Digamos que 32 había aplicado, y ahora es el tamaño correcto. Si lo movemos de nuevo aquí, se
puede ver que podemos verlo en el suelo. También podemos hacerlo más grande, tal vez hacer este 16 hit Aplicar. Y volvió a desaparecer. Vamos a moverlo desde el fondo. De acuerdo, ahí vamos. Creo que el 16 es un número suficientemente bueno, pero aun así se puede ver que no podemos verlo por detrás de la capa. Y este es un problema que podemos resolver esto ahora mismo, si miramos en el render sprite, este es un objeto de juego que tiene un renderizador sprite en él. Si, por ejemplo,
apagamos el renderizador sprite, se
puede ver que la imagen ya no se renderiza o que el sprite ya no se renderiza. Podemos volver a hacer clic aquí y volver al sprite. Y podemos cambiar el orden de la capa aquí mismo, 21. Y ahora si lo
movemos, lo podemos ver frente a nuestra imagen. Porque la imagen de fondo, que también tiene un renderizador sprite que podemos apagar, tiene una capa de orden de 0. Si lo ponemos a dos, se
puede ver que el demonio desaparece, pero esta no es una solución muy buena. Esto lo resolveremos en el siguiente video donde crearemos capas de clasificación. Pero antes de que hagamos eso, tengo un reto para ustedes. Y tu reto va a ser seguir adelante y crear tu propio jugador y funcionó. Así que explora un sitio web llamado Open game art que yo te muestro. Entonces este es el juego abierto art.org y es un sitio web increíble donde puedes encontrar una gran cantidad de activos gratuitos para usar en tus juegos 2D, juegos 3D. Y también puedes encontrar la música y los efectos de sonido y mucho, mucho más. Entonces por ejemplo, esta hoja sprite aquí mismo, esto, Digamos conjunto de azulejos. Lo obtuve del autor Savini the New York. No estoy seguro de cómo pronunciar esto, asegúrate de revisarlos. También tengo mis demonios aquí mismo de William Thompson como j, también en juego abierto art.org. Es un sitio web increíble. Te recomiendo que lo explores y encuentres tus propios personajes. Asegúrate de que el personaje que encuentres tenga estas animaciones de caminata sobre él. Por lo que volvamos a nuestro reto. A continuación, necesitas encontrar algunos personajes y sprites que se adapten a tu estilo. A lo mejor no quieres tener un demonio persiguiendo por un pueblo. Admito que esta fue una idea un poco torpe, pero quería probar algo nuevo. Para pasar al siguiente video, encuentra tus propios sprites, diviértete un poco, disfruta tu tiempo. Esto es, como he dicho en el primer video, todo
esto se trata de crear tu propio juego y agregar tu propio sabor y estilo al juego. No se trata de simplemente copiar lo que hago y lo que encuentro bueno para el juego. Necesitas agregarle tu propio sabor. Así que tómate tu tiempo, encuentra mercancía sprites, explora abierto Y las puertas son that.org, tal vez encuentres otros sitios web y te veré en el siguiente.
9. Clasificación de capas: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. En este video, vamos a estar aprendiendo sobre la clasificación de capas. Entonces ahora si hacemos clic en el fondo, se
puede ver que la capa de clasificación es el fondo. El jugador tiene su propia capa de clasificación, la capa de jugador. Entonces, no perdamos más tiempo y empecemos. Ah, está bien, así que como hemos dicho antes, realidad
podemos usar el orden en capa para cambiar el orden en el que se renderizan nuestros sprites. Pero en este video, te
mostraré otra forma mucho más sofisticada de hacer las cosas. Y en primer lugar, ¿por qué necesitamos de esta manera más sofisticada? Podrías estar preguntando, Bueno, Michael, simplemente
puedo añadir otro objeto, ponerlo a, digamos tres y luego cuatro, y luego cinco y así sucesivamente. Pero qué pasa si, por ejemplo, queremos agregar un artículo aquí y queremos renderizar este ítem sobre el, digamos los ítems del corazón y sobre los NPC normales, tendrías que volver cada vez y comprobar qué orden n capa es el MPC y el jugador y el fondo y así sucesivamente. Entonces para cambiar eso, con
el fin de tener una forma más dinámica de elegir las capas, podemos crear capas de clasificación. Entonces sigamos adelante y creamos nuestra primera capa de clasificación. Para ello, podemos subir aquí a las capas y hacer clic en Editar capas. Entonces como puedes ver aquí, tenemos las etiquetas, tenemos las capas de clasificación, y tenemos las capas. Ahora las capas y etiquetas se mantendrán para más adelante. Por ahora vamos a centrarnos en las capas de clasificación. Y aquí es donde elegimos qué Sprite o imagen agredida frente al otro. Ahora si miras hacia atrás en nuestra vainilla de paseo, eso ha cambiado esto y llama a esto el monstruo o
jugador, jugador demonio o vamos a mantenerlo como jugador. Se puede ver que la capa de clasificación que la suya es la predeterminada. Y eso se debe a que sólo tenemos una capa por defecto. Ahora sigamos adelante y añadamos una nueva capa haciendo clic en el pequeño plus aquí. Y llamemos a esto el fondo. Por lo que ahora podemos entrar en la imagen de fondo y podemos elegir la capa de clasificación para que sea el fondo. Entonces como puedes ver de inmediato, la capa de clasificación, que es el fondo, se renderiza frente al jugador. Y eso es porque el campo mira hacia atrás a las capas aquí dentro. Se puede ver que la capa está frente al valor predeterminado y es necesario asegurarse que estos estén ordenados correctamente y estén en cierto orden. De acuerdo, genial, Así que asegúrate de que el fondo esté delante de aquí. Ahora vamos a crear una capa para el jugador, pero va a ser tu reto. Tu reto va a ser crear la capa de clasificación. Por lo tanto, crea una nueva capa de clasificación llamada el jugador. Asigna a nuestro jugador a la capa de jugador y asegúrate de que el jugador se muestre delante de nuestro fondo. Por lo tanto, asegúrate de que el orden y las capas de clasificación sean correctas. Así que pausa el video ahora mismo y ve a hacer el reto. Oh, hey, bienvenido de nuevo. ¿ Cómo te pusiste con eso? Espero que lo hayas intentado. Es muy fácil. Simplemente hacemos clic en el extremo más aquí. Creamos una capa llamada el jugador. Después volvemos a nuestro jugador. Y aquí en lugar de por defecto, simplemente
elegimos al jugador e incluso podemos establecer el orden ahí dentro en 0. No importa. Por lo que ahora el jugador está en la capa de clasificación de jugadores. El fondo está en la capa de clasificación de fondo. Entonces aunque cambiemos el orden y la capa 2, digamos 600, pesar de que el jugador está en la capa de orden 0 aquí, todavía renderizado frente a la imagen de fondo. Por lo que espero que hayas disfrutado. Y antes de seguir adelante, nos olvidamos de hacer algo o en realidad no lo hicimos en el video anterior. Y eso es crear un repositorio. Ahora, no lo hice, no quería crear un repositorio. Y el primer video porque pensé que tal vez algunos de ustedes querrían
crear sus propios sprites y luego crear un nuevo proyecto. Por lo que la forma en que
creamos un repositorio, ya hemos cubierto esto. Hacemos click en el Navegar, buscamos nuestros proyectos, vemos la leyenda de la conquista. Seleccionamos esta carpeta y vamos a crear, asegurarnos de que sea una buena Vamos a crear lo positivo. Sí. Y ahí vamos. Tenemos que asegurarnos de que olvidemos la biblioteca o ignoramos. Es decir, así que ignora todo debajo de la biblioteca. Creamos. Este es nuestro archivo de ignorar. Entonces vamos a conseguir el ignorar cinco listas. Entonces n aquí, vayan con los amos. Ahí vamos. Podemos optar por ir Roll, Controlar a para seleccionar todo. De vuelta aquí. Dónde está el punto gitignore basó todo. Guarda esa salida. Y ahora veamos. Sí, todo parece estar bien. Etapa todo. Vamos a comprometer nuestro trabajo y normalmente, como hemos dicho, recupera el compromiso inicial. Y esta es la parte muy emocionante. Entonces ahora, y nuestros commits, ¿dónde están nuestros commits? ¿ Ahí? Ahí estamos, estamos, hemos creado nuestro primer compromiso y en realidad hemos iniciado nuestros proyectos. Entonces ahora estamos realmente comprometidos. No hay vuelta atrás mis amigos. Sigamos adelante.
10. Coloreados y rigidBody: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. En este video, vamos a estar aprendiendo cómo podemos agregar física a nuestro juego y ya no tener solo imágenes y sprites. En realidad tenemos cuerpos y física en nuestro juego. Por lo que hemos añadido un colisionador. También aprendimos qué es un colisionador. Hemos añadido un cuerpo rígido. También aprendimos qué es eso y aprendemos algo nuevo y un nuevo recurso de información, que es la documentación de Unidad. Entonces, no perdamos más tiempo y empecemos. Ah, kay, así colisionadores y cuerpos ricos, estas son partes y componentes muy esenciales de la unidad. Entonces, ¿por qué realmente necesitamos agregar esas dos cosas raras? Bueno, porque actualmente, aunque tenemos un jugador y él se ve genial y tenemos un terreno para pararnos. Y tenemos diferentes Walters y así sucesivamente y así sucesivamente. Pero estas son solo imágenes, estos son solo sprites. Entonces el jugador es solo un sprite, la imagen de fondo es solo un sprite y no podemos interactuar con él con nada, ni podemos movernos. Entonces comencemos por entender qué son los colisionadores. Entonces, ¿qué es un colisionador? Un colisionador hace posible que los objetos interactúen y choquen entre sí. Y lo usaremos para hacer que nuestro jugador golpee objetos e interactúe con otros objetos físicos que también tienen colisionadores sobre ellos. Ahora bien, ¿qué es un cuerpo rígido? Un cuerpo rígido hace algo o un componente en Unity que nos
permite controlar la posición de un objeto a través de la simulación física. Objeto de cuerpo rígido sería tirado hacia abajo por gravedad sin agregar ninguna capa. Y por último, también podemos aplicar nuestras propias fuerzas sobre ellos o sobre los cuerpos rígidos. Entonces ahora que tenemos un poco de comprensión de lo que son esos, permítanme mostrarles otra cosa muy cool de la que hay que estar al tanto,
y esa es la documentación de Unity. Ahora, se puede ver aquí, acabo de escribir Google cuerpo rígido 2D en Unity. Y se puede ver el enlace aquí. Es la unidad del punto docs. Y se puede ver cuál es el cuerpo rígido. Ahora no necesitas leer cada palabra aquí, pero sí te recomiendo que al menos escatimes más de un par de cosas aquí. Por ejemplo, la física re-lanzar el en colisión entrar. Esas son cosas que son buenas saber que al menos existen y se puede usar eso. Nunca recuerdo nada. Normalmente me encanta saber que hay algo útil en cuerpo rígido 2D que puedo usar más adelante. Y también tenemos una página aquí para el estudio del colisionador. Y se puede ver que tenemos un colisionador de círculo, un colisionador de caja, borde
poligonal, cápsula, y así sucesivamente y así sucesivamente. Entonces de vuelta en Unity, Vamos a seguir adelante y añadir un colisionador a nuestro jugador. Por lo que entraremos en el jugador, vamos a añadir un componente y va a ser un colisionador 2D. Puedes elegir qué colisionador quieres. Creo que un colisionador circular encajará muy bien aquí. Entonces como puedes ver, hay una línea verde. Es un poco delgado, pero si traté de cambiarlo, se
puede ver que hay una línea verde y esto es con lo que el jugador puede interactuar. Entonces vamos a hacerlo un poco más pequeño para que quepa justo alrededor del jugador. Y puedes editar el colisionador aquí pulsando este botón. También podemos cambiar el radio y cambiar el desplazamiento. Entonces lo voy a mover sólo un poquito arriba y tal vez sólo traté de hacerlo tan grande como debería ser. Nunca lo hagas más de lo que debería ser. Entonces casi del tamaño, creo que es lo suficientemente bueno. Y aquí tenemos el gatillo y utilizado por un factor. Veremos cuáles son todos esos más adelante, pero grandiosos. Ahora viste cómo agregamos un componente. Hice clic aquí en el botón Añadir componente, elegí un colisionador circular. Podría haber elegido cualquier otra cosa. Y necesitas elegir un colisionador basado en la forma de tu jugador o personaje y el mundo. Ahora, lo siguiente que queremos hacer es añadir un cuerpo rígido. Entonces esto va a ser parte de tu reto. Tu reto va a ser dar, ¿hay física? Entonces entra en el objeto de juego del jugador, revisa en el inspector, agrega un componente de cuerpo rígido y asegúrate de que sea a D, porque tenemos dos tipos de cuerpos rígidos. Tenemos cuerpo rígido normal para el 3D, y tenemos un cuerpo rígido específico solo para el 2D. Y si quieres, también puedes ejecutar el código y ver qué pasa. Así que pausa el video ahora mismo y ve a hacer el shell. Kay, bienvenido de nuevo. Entonces aquí vamos a entrar en el objeto de juego de jugadores. Vamos a revisar al inspector. Está bien, muy bonito. Y vamos a seguir adelante y añadir otro componente y va a ser un cuerpo rígido y va a ser un cuerpo rígido 2D. Entonces ahora tenemos un cuerpo rígido aquí. Y se puede ver que tiene masa, tiene arrastre lineal, tiene droga angular. No nos preocuparemos por eso por ahora. Pero lo que estaremos preocupando de esto, la gravedad que se suma, porque como les he dicho, tenemos gravedad automática en nuestro cuerpo rígido. Entonces cuando golpeamos Play, y ahora puedes ver que ha tenido nuestro pequeño daemon empieza a caer y eso es porque las fuerzas de la gravedad están actuando sobre él. Entonces, ¿qué podemos hacer al respecto? Bueno, si hubieras intentado leer el cuerpo rígido 2D, puedes ver aquí que tenemos tres tipos de cuerpos rígidos. Tenemos la dinámica, la cinemática, y la pila. Y puedes sentirte libre de seguir adelante y leer sobre todos esos. Lo que hay que entender es que cinemática y dinámica es siempre que la gravedad actúa o fuerzas externas actúan sobre nuestro cuerpo. Kinematic es cuando sólo las fuerzas que le damos, nuestra actuación sobre el cuerpo y estática, eso significa que ninguna fuerza puede actuar sobre el jugador. Entonces si golpeamos la cinemática, ahora ejecutamos el código. Y se puede ver que nuestro jugador ya no cae tan bien que ninguno, espero que lo disfruten. Tenemos que asegurarnos de que cometemos nuestros cambios. Entonces aquí hay un par de cambios. Etapa todos se comprometen. Se agregó un colisionador y un cuerpo rígido a mi jugador. Comete los cambios, y te veré en el siguiente.
11. Guiones y variables 101: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, hemos creado un script de jugador y lo hemos agregado al objeto de juego de jugadores. También aprendimos sobre las variables. Hemos agregado un poco de código y como pueden ver, tenemos este campo serializado. Muy aterrador. No, sólo estoy bromeando. Es muy fácil. Entonces necesito tu concentración total. No perdamos más tiempo y empecemos. O K. Así que ahora es el momento de empezar realmente a controlar nuestros objetos en el mundo. Y lo primero que queremos hacer es que queremos usar el cuerpo rígido que acabamos aplicar con el fin de empezar a mover a nuestro pequeño jugador demonio. Y creo que vamos a llamar a esto Jimmy, así que Jimmy el demonio. Entonces lo primero que vamos a hacer es que vamos a crear un script y añadirlo a nuestro demonio aquí mismo. Por lo que dentro de nuestros activos, vamos a hacer clic derecho y seguir adelante y crear un guión C-sharp. Y vamos a llamar a esto el jugador. Todo lo que puedes llamar a esto el controlador de jugador, jugador manager. Creo jugador, sólo para resumir, todo es un buen nombre. Así que asegúrate de llamarlo correctamente usando el jugador, pulsa Enter. Espera un poco solo para que el guión aquí se compile. Y notarás que cada vez que haga esta cosita aquí
mismo, ahora podemos usarla. Asegúrate de esperar a que esto suceda porque me dan muchas preguntas mientras no trabajo. ¿ Por qué nos has enseñado algo mal? No, solo necesitas esperar un poco. Tener pacientes. Ahora lo siguiente que tenemos que hacer es añadir el guión, el jugador. Por lo que simplemente lo arrastraremos sobre y hasta el objeto del juego del jugador. Y verán aquí mismo en el inspector que lo tenemos aquí dentro. Ah, dio muy bonito. A continuación, sigamos adelante y ábrelo y Visual Studio. Entonces, para abrir el guión, basta con hacer doble clic en el reproductor aquí mismo. Y Visual Studio debería abrirse. Oh, bien, correcto. Ahora, no te preocupes por todo esto iremos más adelante sobre cómo funciona Start,
cómo funciona Update, y todos estos aquí mismo, y el comportamiento mono y el jugador de clase y el público. Pero por ahora, Enfoquémonos en hacer que nuestro jugador se mueva. Para eso, necesitaremos el cuerpo rígido. Y para eso para poder acceder al cuerpo rígido necesitará una referencia al mismo. Entonces, ¿cómo obtenemos una referencia al cuerpo rígido? Bueno, necesitamos crear una variable de tipo cuerpo rígido. Y podría estar preguntando,
bueno, ¿cuáles son las variables? Pregunta muy bonita. Déjame explicarte. Las variables son igual que las cajas. Entonces digamos que tenemos una caja que se llama la vida. Y lo que hacemos es poner un tres dentro de esta caja. Entonces ahora tenemos una variable de tipo entero porque tiene un entero dentro de él, y se llama vidas. Por lo que una variable tiene un par de cosas que debes saber siempre. Entonces así es como escribimos una variable en abrigo o como
traducimos esta caja al código y nuestro Visual Studio. Por lo que en primer lugar, tenemos la accesibilidad. ¿ Quién puede acceder a esto? Tenemos un público o un privado y algo te voy a enseñar en tan solo un poco, que se llama campo serializado. Entonces, ¿quién puede acceder a esto como variable pública? Todo el mundo puede entrar. ¿ Es una variable privada? Sólo el script en el que lo estamos usando puede usar. Entonces tenemos el tipo, como ya he dicho, es un entero. Tenemos otros tipos que veremos más adelante como cuerdas, float, etcétera. Entonces una cadena es una cadena de números. Veremos más adelante qué tipos diferentes tenemos. Tenemos el nombre de la variable, y finalmente, tenemos los datos que se almacenan dentro de esta variable. Por lo que tenemos diferentes tipos de variables. Entonces, por ejemplo, digamos que las vidas pueden ser tres. Entonces tenemos tres vidas, pero la velocidad, por ejemplo, puede ser en algún momento 4.8 o 10.6. Entonces para representar la velocidad y otras cosas como la temperatura, necesitamos usar un flotador, donde podamos usar un punto flotante para representar 4 a. Entonces tenemos el booleano. Y el booleano puede ser verdadero o falso. Entonces por ejemplo, nuestro jugador, podemos crear una variable que se llama está muerta. Así es nuestro jugador que puede ser de tres o 4.8. Tiene que ser cierto o tiene que ser falso. Tan verdaderos y falsos son los dos datos que podemos poner en el booleano. booleanos son muy importantes, como verás a medida que avanzamos por nuestro proyecto. Entonces tenemos la cuerda. Entonces una cadena es una cadena de caracteres. Entonces el personaje M, I, C, H, E, L. Así que esta es una cadena de caracteres que representan, por ejemplo, la minería, que es Michael o Michelle. Puedes llamarme cualquiera que prefieras. Y esta es una cadena de caracteres. Poner juntos con el fin de representar la variable. De acuerdo, entonces con eso hecho, lo siguiente que vamos a hacer es crear una variable que sea de tipo cuerpo rígido con el fin de obtener una referencia al mismo. Entonces aquí vamos a crear un público. Tan público como se puede ver, el IDE ya nos ayuda mucho. Público. Cuerpo rígido 2D, y llamaremos a este reproductor profundo cuerpo rígido 2D. Y otra cosa que siempre tenemos que tener en cuenta es la forma en que nombramos nuestras variables. Como se puede ver, la primera palabra no estaba en mayúsculas. La segunda palabra está en mayúscula. Y también las palabras secuentes que tienes dentro del nombre de tu variable están en mayúscula. Y te mostraré por qué aquí dentro. Y en realidad podemos quitar el 2D. No necesitamos eso. Y aquí, guarde eso de nuevo en nuestra unidad. Podemos mirar a la derecha y se puede ver que aquí tenemos una variable de cuerpo
rígido y una referencia a ella. Por lo que ahora podemos agregar este cuerpo rígido, simplemente arrastrarlo hacia esta ranura vacía. Y ahora hemos hecho referencia a los jugadores cuerpo rígido y ahora lo podemos usar en nuestro guión. Y como he dicho, cada vez que capitalizamos una palabra, se
puede ver que agregamos un pequeño espacio aquí para el nombre. Por ejemplo, si hago de esto una pequeña b, guarde eso de nuevo en Unidad, cuerpo
rígido debe estar conectado. Y ahí lo tienes, lo está. Entonces por eso hemos agregado la B. Y puedes presionar Control zed, y podemos volver atrás y deshacer nuestros cambios. Tan muy agradable ahora que has aprendido sobre variables y cómo podemos crearlas que acaban de poner esto de nuevo aquí. Y ahora es el momento de un pequeño reto. Y tu reto va a ser crear una variable privada o no crear tal vez cambiado a I variable privada. Por lo tanto cambió variable de público a privado. Vuelve a Unity y comprueba la variable en el inspector. Pausa el video ahora mismo, cambia la variable de pública a privada y mira si sigue ahí en el Inspector. Oh, bienvenido de nuevo. Entonces aquí vamos a cambiar esto a un privado. Asegúrate de guardar siempre tu script y sabes que tu script no está guardado. Si puedes ver el pequeño asterisco como estricto de su control S, guarda nuestro guión de nuevo en Unity. Y ahora podemos ver que ya no tenemos la variable aquí. Entonces ahora ¿cómo podemos referirnos a nuestro cuerpo rígido? Bueno, podemos usar algo llamado campo serializado. Y déjame mostrarte lo que es un campo serializado. Y también explicaré por qué a veces necesitamos usar el campo público, privado y un campo supervisado. Entonces, ¿cuál es la diferencia? Por lo que una variable privada no está disponible de otras clases. No es visible en el inspector. Entonces, ¿por qué a veces necesitamos una variable privada? Digamos por ejemplo, tenemos la velocidad de nuestro jugador y no queremos,
por ejemplo, poder acceder a la velocidad de nuestro jugador por accidente desde, digamos, el elemento escudo. Por lo que lo hacemos privado. Por lo que sólo se puede acceder desde el guión del jugador. Entonces la velocidad que es privada o la velocidad del jugador es privada. Y sólo se puede acceder desde el guión del jugador, no desde el escudo, el guión, por ejemplo. Entonces este es el poder de usar variables privadas. Ahora, los objetos de valor públicos están disponibles de otras clases, son visibles en el Inspector y por supuesto no visibles en el Inspector. En realidad los puedes ver más columna creo que es inútil. Pero de todos modos, y el campo serializado, las articulaciones ambas obligan a lo público y lo privado, porque los campos serializados no están disponibles de otras clases, pero aún se pueden ver en el inspector. Y esta es una herramienta muy, muy útil en Unity. Entonces sigamos adelante y hagamos de nuestro cuerpo rígido un campo serializado. Entonces en lugar de privado, vamos a convertirlo en un campo serializado y asegurarnos de agregar siempre estos dos corchetes a su alrededor. Por lo que guardamos nuestro guión. Volvemos a la Unidad, y ahora tenemos la opción de agregar el cuerpo rígido y se puede ver que ya está ahí. Entonces vamos a guardar eso. Y en el siguiente video comenzaremos a usar nuestro cuerpo rígido para mover a nuestro jugador. Como siempre, no olvides cometer nuestros cambios. Voy a dejar de hacer esto, pero siempre voy a hacer con, al final de cada video solo porque lleva un poco de tiempo de todos modos. Bueno eso no, espero que lo disfrutes y te veré en el siguiente.
12. Entradas y velocidad del cuerpo: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, en realidad vamos a aprender sobre los insumos y vamos a utilizar nuestro cuerpo rígido para algo útil. Entonces ahora nuestro Jimmy, el demonio, no se queda ahí parado. En realidad puede moverse hacia arriba, moverse a la izquierda, moverse hacia abajo, moverse a la derecha. Y en realidad puede moverse no sólo horizontal y
verticalmente, también puede moverse. Entonces, no perdamos más tiempo y empecemos a usar nuestro demonio o k Así que primero abramos nuestro guión y vamos a explicar un par de cosas aquí. Entonces, en primer lugar, tenemos estas tres líneas aquí que empieza con el uso, y esta es una colección de bibliotecas. Entonces, por ejemplo, cuando escribimos usando el motor Unity, eso significa que accedemos a un código
enorme, enorme que nos permite usar, por ejemplo, el inicio, la actualización, el comportamiento mono y así sucesivamente. Y esto es lo mismo para las colecciones del sistema y las colecciones del sistema. Genérico, son enormes bibliotecas. Y en lugar de escribir todo el código para, por ejemplo, para el inicio y demás, simplemente
agregamos el uso aquí y podemos usar cualquier código que queramos. Veremos mucho más de esto más adelante donde estaremos agregando nuestras propias bibliotecas y usando diferentes aquí arriba. Ahora, lo siguiente, tenemos un jugador de clase pública. Entonces al igual que tenemos las variables que pueden ser públicas o privadas, también
podemos tener clases, y estas clases pueden tener dentro de ellas métodos y variables. puede pensar en ello como una colección de pequeños códigos dentro de la clase. Entonces tenemos el nombre de la clase que es jugador. Y bajo ninguna circunstancia cambias el nombre y aquí, porque si cambias el nombre aquí, pero no cambias el nombre del guión aquí dentro. Tendrás un enorme error y es muy difícil cambiar más adelante. A continuación tenemos esto, estos dos pequeños puntos aquí y comportamiento mono. Y no voy a hablar mucho de cómo funciona la herencia. Pero esto significa que la herencia del jugador del comportamiento
mono y el comportamiento moral es una clase base. ¿ Y qué es una clase base? Es donde tenemos el inicio y la actualización. Entonces, básicamente, cuando escribimos esto aquí, eso significa que podemos adjuntar al jugador a un objeto de juego determinado y podemos usar el inicio y la Actualización. Ahora, lo que nuestro inicio y actualización, tenemos un comentario aquí. Por lo que el comentario siempre está precedido por esas dos barras inclinadas hacia adelante. Y se llama inicio antes de la primera actualización del marco. Entonces cada vez que iniciamos nuestro juego, cada vez que el jugador de objetos inicia, el método de inicio realmente se ejecuta y podemos agregar un montón de cosas aquí que queremos
ejecutar siempre que aparezca o inicie el objeto del juego del jugador o lo que sea o venga a vida. Después tenemos la actualización y actualización llamada una vez por fotograma. Entonces creo que porque estás tratando de crear juegos, estás familiarizado con los fotogramas por segundo. Bueno, la actualización se llama cada fotograma por segundo. Aquí es donde realmente podemos mover a nuestro jugador y hacer varias cosas. Consulta alrededor del entorno, ve qué pasa y cómo el jugador interactúa con el mundo. Entonces si quieres empezar en cuanto a inicialización y actualización es para un movimiento y hacer ciertas cosas. Entonces empecemos a aplicar todo eso. Y vamos a estar aplicando en primer lugar, el movimiento de nuestros jugadores. Por lo que tenemos nuestro cuerpo rígido. Ahora, lo que queremos hacer es realmente queremos empezar a movernos. Entonces lo que podemos hacer es usar la velocidad del punto del cuerpo del jugador. Y se puede ver aquí, si tan solo pasamos sobre él, un cuerpo rígido, velocidad de punto
2D, velocidad lineal del cuerpo rígido en unidades por segundo. Entonces como puedes ver, es de tipo vector 2. Y todos sabemos lo que es un vector. Vector es sólo un componente en matemáticas que permite utilizar el eje x y el y y merecido. Pero debido a que estamos usando el vector 2, eso significa que sólo estamos usando el x e y Eso es porque estamos en 2D, no
importa si usamos el conjunto o no. De todos modos, de vuelta en nuestro código. Tan velocidad, siempre me gusta usar las sugerencias de ID y el nuevo vector dos. Y sólo vamos a darle uno por uno. Por lo que este código aquí mismo se llamará cada fotograma. Por lo que la velocidad de los jugadores cuerpo rígido vendrá el nuevo vector 2, 1 f, 1, f, que son las coordenadas. Por lo que debería empezar a moverse en la dirección superior derecha cuando iniciemos nuestro juego. Entonces vamos a guardar el guión. Vamos a volver a meternos en nuestro juego y vamos a probar esto. Entonces cuando le peguemos al play, ya verás, Ahí vamos. Por lo que nuestro pequeño demonio Jimmy empieza a moverse hacia arriba y se puede ver que sucede cada fotograma. Y también podemos probar el inicio más adelante. Está bien, genial. Ahora tenemos un poco de movimiento. Lo siguiente que queremos hacer es que realmente queremos usar movimiento solo cuando entramos desde nuestros Keats antes de sumergirnos. Yo sólo quiero dejar algo claro sobre los puntajes. No estoy aquí para mostrarles cómo se hace todo. Yo estoy aquí para enseñarte cómo se hace. Entonces mi objetivo no es solo para que te sientas y me veas escribir algún código. Mi objetivo es hacerte un problema maestro resolver. Y la forma en que hacemos eso es empezando a pensar como un desarrollador de juegos. Entonces digamos, por ejemplo, me topé con este problema. Yo quiero tener insumos para mi ganancia. Entonces, ¿qué hago? Bueno, entro a Google y digamos cómo ingresar en Unity. De acuerdo, entonces podemos ver aquí que tenemos algo llamado gestor de entrada. Entonces vamos a entrar en los insumos. Entonces miramos aquí, está bien, y lo ponemos muy bien. Tenemos acceso de get, muy bonito. Podemos desplazarnos hacia abajo y Whoa, tenemos las propiedades estáticas. Entonces nos desplazamos hacia abajo, leemos un poco, y luego vemos aquí los métodos estáticos. Y podemos ver que devuelve el valor
del eje virtual y esto devuelve el valor como nombre, sin suavizado. Está bien, Bonito. Entonces creo que el eje GET rho es algo que podemos usar. Ahora por supuesto, el proceso cuando lo haces mucho más tiempo, pero solo te estoy mostrando cómo resolvemos problemas a medida que avanzamos por nuestro camino. Y luego aquí vamos, el punto de entrada, obtenemos acceso. Rob, Qué conveniente. Ahora, digamos que no tengo ni idea de cómo usar esto. Puedo ver la descripción. Puedo leer cómo cambia el valor, y también puedo ver que lo usamos dentro de actualización. ¿ Qué tan conveniente? Por lo que aquí se puede ver que es de tipo float. Le damos una velocidad, obtenemos una entrada y lo multiplicamos por tiempo.Deltatime, que explicaremos más adelante. Y entonces en realidad podemos agregarlo en algún lugar. Muy bonito, tan genial. Pero, ¿qué significa esta horizontal aquí mismo? Bueno, qué conveniente tenemos en realidad la ventana de entrada Editar ajustes. Está bien, probemos esto. Entonces en unidad, entramos en la edición, entramos en la configuración del proyecto. ¿ Y dónde está nuestro insumo? Encargado de Input? Hacemos click en el eje y whoa, mira cuántos ejes tenemos. Entonces tal vez estoy sonando un poco
cursi, pero realmente así es como a veces resolvemos las cosas ya que estamos creando juegos y haciendo proyectos. Tan genial. Tenemos la horizontal, hacemos click en ella, vemos que su nombre es horizontal y el botón negativo es el izquierdo, el botón positivo como el derecho. Muy bonito. Sigamos adelante e implementamos en nuestro código. Por lo que de vuelta aquí, vamos a dar un Enter. Y como nos han dicho que recrear un flotador, lo
llamaremos el movimiento horizontal. Y va a ser igual a punto de entrada, obtener fila de acceso. Y aquí dentro nos dijeron que necesitamos agregar punta horizontal y muy importante. Y esto te ahorrará muchas, muchas horas. Confía en mí, siempre que tengas una referencia de cadena, eso significa que cada vez que tengamos algo que necesitamos poner entre dos citas, como aquí, por ejemplo, esta es una referencia de cadena si escribes horizontal incorrectamente aquí, este código no funcionará. Y no sólo eso, no obtendrás un error. Entonces, siempre que tengas una referencia de cadena, siempre es mejor copiarla en realidad y luego pegarla aquí. Está bien, genial. Ahora tenemos la entrada usando la fila get access en la horizontal. Y lo estamos poniendo dentro de una variable de tipo float llamada movimiento horizontal. Y ahora podemos poner esto en 0. Y en lugar de darle algún número arbitrario 1 f, en realidad
podemos darle el movimiento horizontal. Eso lo ahorraremos. Volveremos a Unidad. Y déjame oscurecer esto justo aquí al lado del, el inspector. Golpeamos a Play. Y ahora si hacemos clic en la a o la D, se
puede ver que nuestro jugador empieza a moverse. Pero si tratamos de golpear, podemos usar también las a y D, o la izquierda y la derecha, las flechas. Pero si tratamos de golpear el arriba y abajo, no
tenemos ningún movimiento. Y si tratamos de golpear a la W y S, tampoco
tenemos movimiento. Entonces es hora de aplicar la velocidad vertical. Y no tengo ganas de hacerlo. Entonces te lo voy a dar como un reto. Entonces consigue entrada vertical y una trama. Entonces consigue la entrada para el movimiento vertical. Aplícala a la velocidad del cuerpo rígido y pruébalo en tu juego. Así que pausa el video ahora mismo y ve a hacer enseñar reto. De acuerdo, bienvenido de nuevo. Por lo tanto, permítanme volver a ver nuestra configuración del proyecto. Hazlo un poco más grande. Entonces, ¿qué queremos? Queremos la vertical. Entonces abriré la vertical, vale, Así botón negativo abajo, arriba como W y se llama vertical. Por lo que copiaremos vertical. Podemos cerrar esto. Volveremos aquí. Vamos a duplicar esta línea y la forma en que la duplicamos
simplemente pondrá el cursor al final y pegará Control D. Así que ahora cambiamos esto de horizontal a vertical y pegamos la palabra vertical y aquí. Entonces como regla de pulgar, recuerda siempre, siempre que tengas una referencia de cuerda, siempre
vas y lo copias. Y ahora agregamos el movimiento vertical al vector 2. Entonces ahora ¿qué estamos haciendo aquí dentro? Estamos tomando el movimiento horizontal. Estamos tomando el movimiento vertical. Entonces estamos tomando la velocidad de nuestro cuerpo rígido jugador. Y lo estamos configurando como un nuevo vector a que se crea a partir del movimiento horizontal y del movimiento vertical. Está bien, genial. Con eso hecho, asegurémonos de que volvamos a guardar el guión en Unity. Golpeamos Play y ahora deberíamos poder movernos a la izquierda, derecha, y arriba, abajo. Ah, tasa de crecimiento. ¿ Qué tan guay es eso? Nuestro juego empieza a cobrar vida. Entonces espero que le hayas dado lo mejor de ti y asegúrate de comprometer nuestros cambios, como puedes ver, comprometido el último cambio donde
creé un guión de jugador y agregué una referencia a cuerpo rígido. Entonces te veré en la siguiente donde
empezaremos a animar a nuestro jugador y hacerlo un poco más rápido. Entonces te veré ahí.
13. Animador y animación: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. En este video, vamos a empezar a animar a nuestro Jimmy Dean. Entonces cuando habíamos jugado, quiero decir, no necesitamos golpear el juego. En realidad vamos a las animaciones. Podemos estar caminando hacia la izquierda, podemos estar caminando hacia la derecha. Podemos caminar hacia abajo. Y por supuesto, podemos estar caminando hacia arriba. Entonces, no perdamos más tiempo y empecemos a aprender sobre animaciones en unidad. De acuerdo, Así que animaciones y animadores en Unidad, muy divertidas. Y empecemos en primer lugar, entendiendo las animaciones. En primer lugar, tenemos algo llamado el controlador animador. Y esto nos permite, o te permite organizar y mantener un conjunto de clips de animación. Y verás cómo se ve eso dentro de Unity en tan solo un poco. A continuación, tenemos el componente animador, y se utiliza para asignar animaciones a un objeto de juego en tu escena. Entonces si tu objeto de juego tiene un animador, la unidad sabe que esto se puede animar. A continuación tenemos una animación. ¿ Y qué es una animación? Es varios sprites se renderizan uno tras otro, y se ve como un video. Entonces, ¿qué es un video cuando ves un video o una película, una serie, o varias imágenes justo al lado de la otra que se mueven o van de uno a otro extremo te sientes o tienes la ilusión como si todas fueran continuas? Y por último, tenemos el renderizador sprite. Ya hablamos de ello, pero acabaré aquí para recordarte de nuevo que renderiza una caída de sprite a los gráficos. Entonces sigamos adelante y creemos nuestra primera animación. Entonces de vuelta en Unity aquí dentro, ¿cómo vamos a hacer esto? Bueno, vamos a utilizar nuestros sprites continuos del demonio Jimmy moviéndose a derecha, izquierda, arriba y abajo. Entonces si hacemos doble clic en el sprite, se
puede ver que tenemos un movimiento hacia adelante, un movimiento hacia arriba o hacia arriba, hacia abajo, quieras llamarlo,
luego a derecha e izquierda. Entonces, empecemos a crear. En primer lugar, entraremos al jugador, daremos click en la ventana que aparece, bajaremos y pincharemos en animación. Entonces ahora tenemos la animación y aquí la atracaremos junto al juego. Y asegúrate de que el verdadero click en el jugador. Aquí puedes ver para empezar animando reproductor crear un animador y clip de animación. Por lo que en el inspector, sólo los
haré un poco más pequeños y haremos click en Crear. Entonces donde esto nos da la opción de donde queremos guardar estas animaciones. Entonces creo que en los activos, en las leyendas de la conquista y de los activos, solo
voy a hacer clic aquí, crear una nueva carpeta. esto lo llamaremos las animaciones. Haremos doble clic aquí. Crearemos una carpeta para el jugador. Y dentro de esta carpeta creará el caminar a la derecha, o a la derecha o como quieras llamar a tu animación. Entonces vamos a pegarle guardar. Y ahí tienes. Tenemos una línea de tiempo aquí. Tenemos la obra, tenemos el disco, y necesitamos asegurarnos aquí que estamos trabajando en el caminar ¿verdad? Animación. Entonces, ¿cómo vamos a tomar este precio de la caminata, verdad? Cuales son estos, y ponlo, ponlos aquí. Muy sencillo. Simplemente hacemos click en el primero. Mantenemos pulsado el turno, pinchamos en el último, y lo arrastramos aquí hasta la línea de tiempo. Entonces como puedes ver en este momento cuando golpeamos el juego, son extremadamente rápidos. Por lo que en realidad podemos separarlos. Para que podamos ponerlos diez marcos separados uno del otro. Por lo que ahora cuando nos tocamos a correr, se
puede ver que una especie de caminar. Te das cuenta de que definitivamente hay algo mal, no funciona correctamente. ¿ Por qué es eso? Pues bien, porque si solo detenemos esto por un segundo, comenzamos con el primer cuadro. Caminamos la pierna derecha, luego nos paramos rectos, luego caminamos por la izquierda, y luego de inmediato empezamos de nuevo aquí. Entonces lo que queremos es intentar suavizar este proceso. Por lo que vamos a elegir el primer cuadro. Nosotros lo vamos a copiar. Y luego moveremos diez cuadros a la derecha porque como sabemos aquí dentro, están separados por diez cuadros. Una pieza basada aquí. Vamos a jugar. Y ahí tienes. Se puede ver que tenemos una especie de animación normal trabajando para nosotros. Y si quieres, puedes retocar. Digamos que quizá los separemos un poco más. Entonces ahora cuando caminemos, ¿verdad? Creo que esto pero a sí, creo que esta es una buena velocidad. Necesitas elegir tu propia velocidad y ver cómo
quieres que luzca tu jugador mientras él, su caminar. Está bien, genial. Entonces ahora tenemos el derecho de caminar. Vamos a seguir adelante y crear la bajada caminando. Por lo que vamos a crear una nueva animación aquí. Entonces de la forma en que hice eso, me someto a crear primero un nuevo clip aquí cuando hacemos clic en nuevo clip, y vamos a llamar a esto el paseo hacia abajo. Entonces caminando hacia abajo, guarde eso. Ahora tenemos una animación totalmente nueva. Y si quieres, este mini reto de crear esta animación, en realidad
tendrás un reto más adelante. Entonces déjame solo hablarte otra vez. Vamos a los sprites. Elegimos nuestros sprites. Entonces este es el caminar hacia abajo, como pueden ver, los movemos aquí. Los separaremos. Digamos por 10. Nuevamente, tomaremos el último fotograma, lo
copiaremos. Entonces Control C, iremos al marco donde lo queremos poner, que está en el 50, y lo pegamos aquí. Y no creo que estos sean correctos. Entonces 10 entonces en el 2030 y éste está en el 40. Entonces cuando golpeamos el juego, podemos ver que nuestro demonio está funcionando correctamente de la manera que queremos que lo haga. Está bien, ¿verdad? Entonces vamos a parar esto ahora mismo. Por último, tenemos el caminar arriba y el caminar a la izquierda. Entonces este será tu reto. Tu reto es terminar las animaciones. Entonces, en primer lugar, crea dos animaciones más, 140 jugador caminando a la izquierda, y una para el jugador caminando hacia arriba. No estoy seguro de por qué son estos subrayados? Puedes nombrar tus animaciones como quieras. Depende de ti. A lo mejor cuando creé este reto, ¿
estás pensando llamarlos así? No se preocupe por ello. Los llamas como quieras. Así que pausa el video ahora mismo y ve a hacer el reto. O K. Bienvenido de nuevo. Entonces espero que hayas intentado hacer lo mejor posible. Algo que no mencionamos es el animador aquí mismo en el reproductor. Entonces como pueden ver, tenemos un animador en el inspector del jugador, y veremos más adelante el controlador del animador, ya lo
puedes ver aquí mismo. Si hacemos doble clic en el reproductor, Este es el controlador del animador, pero nos preocuparemos por eso en los próximos o en los próximos videos. Ahora terminemos nuestros nuevos clips. Entonces crearemos un caminar hacia arriba. Entonces caminando hacia arriba y vamos a entrar a donde está nuestro patrimonio, mientras que caminar hacia arriba. Entonces estos son nuestros sprites, sostén aquí el asentamiento Shift y hazlos muy separados. Copiar el primero. Ponlo en el último, pega Play. Sí. Suficientemente bueno. Y luego crearemos un nuevo clip y vamos a crear a la izquierda, pulsa Guardar. Y mientras que nuestro caminar a la izquierda, vamos a elegir estos cuatro, ponerlos aquí, separarlos por 30, copiará el primero, lo
pondremos como el último. Y ahora cuando nos acercamos al juego, estamos caminando a la izquierda. Entonces ahora tenemos el caminar hacia abajo. Nuestro monstruo camina hacia abajo. Déjame alejarme un poco y quizá ir al juego. Y no, que quien no trabaja, tenemos que elegir al jugador. Y tal vez si lo ponemos aquí arriba. Entonces ahora cuando caminamos justo en juego, entonces estamos caminando ¿verdad? Tuvimos la caminata con el juego. Estamos caminando hacia arriba. Estamos caminando hacia abajo, y estamos caminando a la izquierda. De acuerdo, Excelente. Entonces con eso hecho, espero que lo disfruten. Espero que hayas creado tus propias animaciones. Creo que nuestros sprites necesitarán un poco de ajuste cuando empecemos a sumar todo, pero sin preocupaciones. Y el siguiente video vamos a estar usando estas animaciones en nuestro controlador animador o en la máquina estatal, quieras llamarlo. Y los estaremos configurando o empezando estos diferentes estados a partir de nuestro código para que ninguno, espero que lo disfruten y los veré en el siguiente. No olvides completar tu trabajo.
14. Transición y fusión: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, vamos a estar aprendiendo todo sobre las transiciones y los árboles de mezcla y y en este caso y nuestro caso particular, queremos estar usando un blend trees en lugar de transiciones. Entonces cuando nos acercamos al juego, se
puede ver que tenemos todas estas cosas geniales justo aquí pasando. Y si movemos el cursor hacia la izquierda o Jimmy daemon empezará a moverse hacia la izquierda, hacia abajo. Se mueve hacia abajo, arriba y se mueve hacia arriba, la escritura se mueve ¿verdad? Y no sólo eso, el video es un poco largo porque en realidad tratamos retocar y mejorar la forma en que cortamos nuestros sprites. Entonces, no perdamos más tiempo. Este es un video muy largo y empecemos. Ah, entonces lo primero que tenemos que hacer es realmente necesitamos crear animaciones para las dos posiciones. Entonces es cuando el jugador realmente está de pie y no caminando. Entonces para hacer eso, vamos a crear un nuevo clip. Va a ser ya sea enlace hacia abajo. Eso lo guardamos, y simplemente vamos a arrastrar, ¿dónde está? ¿ Un marco? Por lo que esta es una animación de un fotograma. Cuando jugamos, nada cambia. Simplemente coloca este marco único y esto será importante más adelante. Ya verás cómo. Entonces de nuevo, crearemos el inactivo arriba, guarde eso. Vary, ve, juega. Está bien, genial. Crear Nuevo. Y ahí tienes. El EIDL, una izquierda. Genial. Entonces ahora tenemos el ralentí y caminamos. Lo siguiente que vamos a hacer es que vamos a crear transiciones entre todo. Entonces sigamos adelante a nuestro animador. Si no tienes tu animador, puedes hacer doble clic aquí en el inspector del jugador. O puedes ir a animación de Windows, el animador del que he hablado justo aquí al lado de la escena. Entonces como puedes ver en este momento tenemos todas las animaciones aquí mismo. Caminando a la derecha,
bajando, caminando hacia arriba, caminando a la izquierda, ralentí hacia abajo. ¿ Y qué más tenemos? El ralentí por la isla, a la derecha, y la izquierda ralentí. Entonces esto es un poco demasiado pequeño. Simplemente desacoplarlo en algún lugar de aquí y abrir la pantalla por completo para que podamos acercar y divertirnos. Entonces, ¿qué vamos a hacer aquí en realidad? Déjame hacer esto así, porque cuando hacemos click en una de estas animaciones, queremos ver al inspector. Entonces, ¿qué vamos a hacer? En primer lugar, tenemos la entrada y tenemos la animación por defecto. Entonces actualmente es la caminata, ¿no? Nosotros queremos cambiar eso. Digamos por ejemplo, las animaciones normales que queremos o la animación predeterminada que queremos es el ralentí, ¿verdad? Por lo que vamos a hacer clic derecho en la derecha de ralentí, y establecer esto como el estado predeterminado. Entonces en cuanto entramos, estamos a ralentí, ¿verdad? Está bien, genial. Ahora cómo vamos a la transición a caminar realmente, ¿verdad? Bueno, podemos poner la animación aquí. Podemos seguir adelante y hacer clic derecho Hacer y transitar y ponerlo al caminar, ¿verdad? Y como pueden ver, en primer lugar, tenemos una transición para entrar justo desde el ralentí, ¿verdad? Y si hacemos click en la transición que se representa aquí, se
puede ver que tenemos tiempo de salida. Podemos apagar esto. Podemos tener duración de transición. Entonces cuánto tiempo se tarda en pasar de una animación a la siguiente, el tiempo de salida. Entonces después de terminar la animación o después de cierto tiempo de terminar la animación, podemos salir de ella, y así sucesivamente y así sucesivamente. Hay muchas cosas que podemos tener aquí dentro, y también podemos agregar una condición para la transición de la derecha ralentí a la derecha caminando? ¿ Y cómo podemos hacer eso? Bueno, podemos hacer eso por ejemplo, digamos que vamos al parámetro. Podemos crear un parámetro. Puede ser un número entero flotante Boolean o puede ser un disparador. Entonces podemos crear un, por ejemplo, digamos que queremos empezar a caminar después de que nuestra capa se mueve a cierta velocidad. Por lo que creamos un flotador. Nosotros lo llamamos, digamos por ejemplo, movimiento y Entonces es el movimiento en el eje y. Y ahora si vamos a la transición, agregamos un plus. Y aquí se puede ver que automáticamente tenemos movimiento y y podemos establecer el mayor. Entonces, por ejemplo, si el movimiento y es mayor que, digamos dos o tres o lo que sea, transitamos de simplemente ralentí, también, caminando. Y así es como solemos configurar animaciones. Pero se puede ver que esto puede ser muy engorroso. ¿ Por qué? Porque digamos por ejemplo, estamos caminando ¿verdad? Y entonces queremos empezar de inmediato a caminar a la izquierda. Bueno, vamos a crear una transición. Tú me lo dices. Está bien, genial. Pero digamos, por ejemplo, caminar ¿verdad? De repente empezamos a caminar arriba, bien, luego hacemos una transición a caminar hacia arriba. Pero luego una transición de caminar hacia arriba a caminar hacia la izquierda. Una transición de caminar arriba a caminar ¿verdad? Y se puede ver que esto se vuelve muy engorroso y aún no averiguamos cómo vamos a estar agregando el ralentí. Entonces aquí es donde vamos a usar algo un poco diferente y es un poco avanzado. Pero esto es lo que necesitaremos para poder usar realmente todas nuestras animaciones y estado. Y se llama el árbol de mezcla. Déjame mostrarte una unidad, perros qué son los blanches. Se puede ir adelante y desnatar a través de ellos, ver cómo se crean. Esto es muy bonito, están muy documentados y sí
te recomiendo que vayas y leas sobre todos estos los van a estar usando todos. Y en lo que quiero que se centren está aquí dentro, y hemos hablado de transiciones. Y se puede ver que las transiciones se utilizan para transicionar suavemente de un estado de animación a otro durante una determinada cantidad de tiempo o cierta condición. Pero los árboles de mezcla se utilizan para permitir que múltiples animaciones se mezclen sin problemas al incorporarlos parte de diversos grados. Entonces como puedes ver, porque estamos buscando incorporar múltiples animaciones para ser mezcladas juntas. Usar una mezcla de árboles es una manera mucho mejor. Entonces sigamos adelante y creamos nuestros árboles de mezcla. Entonces de vuelta en Unity aquí dentro, realidad
podemos ver y los perros justo aquí, la forma en que creamos. Así que seleccione, Crear estado o haga clic con el botón derecho en el espacio vacío en el controlador del animador. Y vamos a seleccionar crear y a partir de nuevo estuche de almuerzo. Por lo que de vuelta en Unidad, déjame solo hacer esto un poco más grande. Hemos borrado todas nuestras transiciones, y ahora vamos a hacer clic derecho. Y vamos a ir a Crear estado y a partir de un nuevo árbol de mezcla. Entonces vamos a llamar a esto la mezcla de caminar. Ahora el caminar eso, el caminar un soso. Y vamos a seguir adelante y eliminar todos estos de aquí. Y también borrar el ralentí, ¿verdad? Y como puedes ver de inmediato, porque no hay otra animación más de 90 mezcla caminando, se va a convertir en la capa predeterminada. De acuerdo, genial, Así que ahora si hacemos doble clic en la mezcla de caminar, puede ver que ya no estamos en la capa base. Estamos en el caminar una capa de mezcla. Y si hacemos click aquí mismo, se
puede ver que tenemos muchas cosas que podemos cambiar. Y uno de ellos será del tipo de glándula. No estamos trabajando en 1D, vamos a estar trabajando en 2D, direccionales simples. Entonces ahora tenemos el movimiento en la y y el movimiento en la Y. Por
eso necesitamos crear un,
otro movimiento al que se va con el movimiento sobre la x. Y ahora los parámetros pueden ser el movimiento x y el movimiento. ¿ Por qué? Lo siguiente que vamos a hacer es hacer esto un poco más pequeño y vamos a sumar mociones a nuestro plan. Entonces lo primero que vamos a hacer es añadir una moción para subir y caminar, correcto. O sigamos adelante y sumamos la moción para caminar, ¿verdad? Entonces déjame solo hacer esto un poco. Busquemos, o podemos dar click en este pequeño círculo aquí mismo. Si hacemos clic en él, podemos ir y buscar el caminar a la derecha. Haga doble clic en eso. Entonces ahora tenemos esta primera moción y la vamos a poner en cierto círculo. Entonces si primero cruzamos 0, 1, mantenemos esto en 0. Y vamos adelante y sumamos una segunda moción. Ya verás que tenemos una posición aquí dentro y este punto rojo cuando se mueve, va a una de las posiciones. Déjenme mostrarles lo que eso significa creando una segunda, que va a ser la caminata hacia arriba. Por lo que pinchamos aquí. Vamos a estar caminando hacia arriba. Y vamos a fijar la posición aquí en la x para que sea 0 y la que sea 0.1. Entonces como pueden ver, ahora, si nos estamos moviendo hacia uno de estos, la animación va a cambiar. Y ya verás cómo vamos a estar manipulando el movimiento x y el movimiento. ¿ Por qué? Con el fin de empezar a cambiar estos? Ahora puedes ver que aquí tenemos este círculo. Siguiente cosa que vamos a hacer, y se puede ver esto literalmente, yo estaba tratando de mover mi botón de lectura y ahí tienes. Si necesitamos moverlos entre estas dos líneas. O puedes ver aquí direccional simple entonces debería tener movimiento con dirección a menos de 180 grados de distancia. Entonces si nos acercamos a éste, nos movemos a la derecha, nos acercamos a éste, empezamos a subir, pero eso no es lo que queremos. También queremos poder bajar y subir. Entonces esto va a ser parte de tu reto. Tu reto es terminar las otras posiciones. Así que crea dos movimientos más, uno para caminar a la derecha y 14, caminando a la izquierda. Asegúrese de establecer correctamente la posición x y la posición y. Y por último, jugar con el círculo rojo y ver cómo todas estas emociones se mezclan en realidad. De acuerdo, bienvenido de nuevo. Entonces vamos a sumar dos mociones más. Uno de ellos estará caminando hacia abajo y uno de ellos estará caminando a la izquierda. Y como puedes ver, estos se mezclan en este árbol y se basa en el movimiento. De todos modos, sigamos aquí. Entonces caminando hacia abajo, ¿dónde debería estar el caminar hacia abajo? El caminar hacia abajo debe ser, creo menos 0.10. Menos 0.1 debería estar aquí, y este tiro debe ser 0. Y entonces tenemos, ¿dónde está? Es el caminar a la izquierda en la posición x Debe ser menos 0.10. Tan genial. Por lo que ahora antes de movernos a la izquierda, vamos a la izquierda. Se puede ver hasta el poco azul aquí. Es una especie de azul que nos movamos a la derecha. Entonces nos estamos moviendo a la derecha, nos estamos moviendo hacia abajo. puede ver que se está poniendo un poco más azul. Y esto es a lo que nos referimos con la mezcla. Por lo que estamos mezclando las animaciones juntas usando el movimiento x y el movimiento. ¿ Por qué? Correcto. Entonces ahora podemos seguir adelante y arrastrar esto a algún lugar tal vez de la escena. Entonces ahora cuando ejecutamos nuestro juego, así nos movemos a la derecha, se
puede ver que se está moviendo a la derecha. Cuando nos movemos a la izquierda, nos movemos a la izquierda. Cuando nos movemos hacia abajo, estamos caminando hacia abajo. Y cuando nos movemos hacia arriba, estamos bien subiendo. Pero como puedes ver, hay algo no del todo correcto, como si nuestro demonio estuviera saltando de un lugar a otro y eso es por los sprites, la forma en que los cortamos. Entonces si volvemos a nuestros activos y sigamos adelante y creamos una carpeta aquí. Lo llamaremos los guiones, y pongamos el guión del jugador dentro. Y de nuevo, crearemos una nueva carpeta y llamaremos a esto los sprites. A lo mejor vamos a crear subcarpetas y lado. Por lo que los sprites aquí, si hacemos click en el editor de sprite, se
puede ver la forma en que se cortan. Y eso no es precisamente lo que queremos. Queremos tener siempre nuestras rebanadas ser, o nuestro jugador estar siempre en medio de nuestras rebanadas. Entonces, ¿cómo vamos a hacer esto? De acuerdo, bienvenido de nuevo. Entonces después de un poco de retoques y aquí, finalmente
decidí cómo voy a hacer mi demonio. Entonces si en tus sprites o los que has elegido desde arte de juego abierto o alineado correctamente. Genial, estoy muy contento por ti, por los que no lo tienen alineado correctamente como yo, los de ustedes que están usando el dragón. Y aquí, aquí hay un par de reglas que
debes seguir para alinear todos tus sprites. En primer lugar, debes asegurarte de que cada corte que el demonio esté en el medio,
o el personaje que estás usando está terminando en medio de la rebanada. Por lo que no puedes simplemente cortar todo automáticamente. Simplemente cortar la cuadrícula por tamaño puede ser de 64 por 64, y luego tendrás que continuar a mano. Entonces, en primer lugar, notarás que todas estas casillas de aquí tienen el mismo ancho y la misma altura. Entonces como ves, 64506450. Por lo que esto es importante para todos los que o están mirando adelante o hacia atrás dependiendo de cómo quieras. Por lo que las dos primeras filas deben ser las mismas. Pero para los que se están moviendo horizontalmente, debería
haber un tamaño diferente porque el demonio no está alineado adecuadamente. Pero hay una manera muy astuta. Por lo que opté por hacerlo 45 por 45. Por lo que el ancho es de 45 para todos los recortes. Y 45 y altura. Encontré que este es un número muy bueno. Entonces lo siguiente es ¿cómo los vamos a posicionar? No queremos simplemente arrasarlo. Por lo que aquí se puede ver la posición de los recortes. O si me muevo en la X, se
puede ver eso más. Y en la y lo hace también. Por lo que el 75 es arbitrario. Yo sólo traté de hacerlo en el medio tanto como puedo. Y entonces la posición sólo aumentará en 64, Y 64, bueno, porque el ancho del dragón y aquí es 64 y creo que el sprite se disecciona o se pone por esa razón. Por lo que se puede ver que este primero está en la posición 0, segundo está en 64, 128, 192. Pero, ¿qué tal éste? Entonces es 1983, 174, y también todos ellos necesitan estar en la misma y Entonces esto es importante. A continuación, tenemos al dragón aquí. Entonces puedes ver que está en la posición 211 porque lo hemos puesto a la derecha tanto como podemos, y luego simplemente le quitamos 64. Por lo que 147, 83, y 19. Tan genial, pero eso hecho, sigamos adelante y aplicamos todo eso. Y verás que ahora nuestras animaciones deben ser más fluidas sin que cambiemos realmente los sprites de animación en el jugador. Porque cada vez que hacemos modificaciones a estos sprites, se
cambian en todo nuestro juego. Entonces ahora cuando golpeamos play, vamos al animador. Se puede ver que por defecto está caminando inmediatamente ¿verdad? Si hacemos click en el árbol Blend, empezamos a moverlo a la izquierda. Empieza a caminar hacia la izquierda. Se puede ver que es muy pequeño. Está en la misma altura y puedes sentir que se mueve en el mismo lugar y no solo saltando. Y luego abajo, y luego arriba, izquierda, abajo, izquierda. Y se puede ver que es muy natural. A lo mejor sí necesita un poco de retoques, pero eso es para ti si tienes un poco de TOC. Tan genial con eso hecho, espero que lo disfruten. Adelante y comprometamos nuestros cambios. Y en el siguiente video, vamos a usar código para realmente desencadenar estas animaciones. Entonces te veré en el próximo.
15. Mezclar animaciones en la unidad: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos en este video, cuando presionamos el botón Play, no solo
caminamos sin jugador, sino que en realidad podemos cambiar la dirección que está caminando usando las teclas WASD, y está basado en los jugadores velocidad. Pero el problema es que no tenemos un estado de ralentí en la mezcla. Por lo que creamos otro árbol de mezcla solo para el ralentí de nuestro jugador. Ahora no lo estaremos implementando plenamente en este video, pero lo haremos en el siguiente. De acuerdo, así que no perdamos más tiempo y empecemos. Ah, está bien, así que actualmente, cuando ejecutamos el juego, se
puede ver que nuestro jugador está caminando hacia la derecha, pero a pesar de que nos estamos moviendo arriba y abajo, no
hay cambio en su animación. Entonces lo que queremos hacer es adjuntar el movimiento x y movimiento y al animador jugador. Entonces, empecemos. En primer lugar, sigamos adelante y abramos aquí el guión de jugador. Entonces mientras que el script del jugador hace doble clic, y abramos Visual Studio. Entonces aquí, lo primero que queremos hacer para empezar
a controlar el movimiento x e y, queremos conseguir una referencia del animador. Entonces vamos a crear un campo serializado, y aquí va a ser de tipo animador. Por lo que Annie May habla, y lo vamos a llamar la animadora del jugador. De acuerdo, entonces recordamos capitalizar cada palabra excepto la primera. Volvamos a Unidad. Eso es esperar a que se compile el guión. Y vamos a seguir adelante y arrastrar al animador
del inspector al inspector y ponerlo aquí. Genial, Así que ahora tenemos una referencia al animador. Abramos la ventana Animator. Y vamos a seguir adelante y abrir la caminata la planta. Ahora, ¿qué queremos? Queremos el movimiento x y movimiento. ¿Por qué? Porque estas son las o las variables que controlan la forma en que nuestro jugador está caminando. Entonces vamos a seguir adelante y usar una función que se llama el animador dot set float. Y déjame mostrarte qué es eso. Entonces si entramos aquí, se
puede ver que hemos escrito AnimatorSet float, y lo vamos a abrir y la unidad docs. Por lo que aquí se puede ver que tenemos el flotador conjunto y podemos ver cómo podemos declararlo. Entonces puedes ver eso primero dijimos el nombre de la cadena, y ese es el nombre del parámetro que queremos cambiar. Se puede ver aquí mismo. Entonces, ¿cuál es el nombre, el nombre del parámetro, y luego el valor que es el nuevo valor del parámetro. Entonces, ¿cómo vamos a adjuntar esto? Bueno, y aquí vamos a pasar la velocidad de los jugadores al animador set float, y eso cambiará el movimiento y el movimiento. ¿ Por qué? Déjame mostrarte a lo que me refiero. Entonces vamos a conseguir el animador jugador. Vamos a poner el flotador. Y debido a que esto es una referencia
de cuerda, por supuesto que vamos a conseguir, volver a Unidad, copiar los actos de movimiento. Abierta. Visual Studio, péguelo aquí. ¿ Y cuál va a ser el valor? Bueno, va a ser el jugador cuerpo rígido punto velocidad x. Y entonces lo vamos a duplicar. Y como ya he dicho, duplicamos esto usando Control D. Y en lugar de movimiento x, este va a ser movimiento Y. Y en lugar de velocidad de x va a ser el punto de velocidad y. bien, genial. Ahora si volvemos atrás y unidad, asegúrate de salvar todo esto de vuelta en Unidad. Teníamos jugando. Entonces ahora si empezamos a subir, se
puede ver que nuestro demonio Jimmy se está moviendo hacia arriba. Y si nos movemos a la izquierda, se mueve a la izquierda, abajo, derecha, arriba, abajo. Y se puede ver cómo el movimiento está cambiando aquí mismo en el enemigo. Entonces cuando estamos caminando por la izquierda, puede ver que el movimiento actúa como minús1 mientras que el movimiento y es 0, caminamos hacia abajo movimiento y este menos uno, y así sucesivamente y así sucesivamente. Tan genial, esto es increíble. Pero el problema es que como pueden ver, cuando soltamos las llaves, son demonios todavía anda hacia adelante y tenemos que arreglarlas. ¿ Y cómo arreglamos eso? Bueno, vamos a usar las animaciones inactivas que hemos creado fin de establecerlas al final o cuando dejemos de movernos realmente. Entonces para hacer eso, te
voy a emitir un reto. Por lo que configura el resto de estados ociosos. Por lo que necesitarás crear las animaciones inactivas de los tres jugadores para cualquiera de los jugadores. Creo que ya hemos creado todos esos. Tendrás que crear una nueva mezcla. Esto no es algo que hemos creado y lo llamamos el jugador holgado, ni lo que creas que se adapte a tus necesidades. Tendrás que crear dos parámetros, la última x y la última y
Y esta será la dirección de la que nos enfrentamos por última vez. Y necesitarás configurar las cuatro direcciones inactivas al igual que hicimos al caminar. Así que pausa el video ahora mismo. Si no recuerdas cómo hicimos todo esto, puedes ver el video previamente o puedes intentar hacer tu mejor tiro, asegúrate de probar suerte en este reto. Así que pausa el video ahora mismo y ve a hacer el picor. De acuerdo, bienvenido de nuevo. Entonces en la capa base, vamos a hacer clic derecho aquí, crear estado a partir de nuevo árbol de mezcla. Vamos a llamar a esto la mezcla cualquiera. Y eso es porque tenemos tal vez la mezcla ralentí. Entonces o bien enlazar bland y esto es sólo para mantenerse congruente con las glándulas que caminan. Entonces tenemos una glándula ralentí, una glándula caminante. Cuando hacemos doble clic en la mezcla ralentí, se
puede ver que tenemos el movimiento x e y, pero no queremos eso. Necesitamos la última x y la última y. entonces vamos a crear un flotador, el último, o no necesitamos capitalizar la última X y flotar la última. Por qué. Vamos a hacer esto una dirección 2D simple y los parámetros van a ser la última x y la última. Bueno, ahora necesitamos tener cuatro mociones aquí. Entonces estos son nuestros cuatro mociones. Vamos a añadir el ralentí, ralentí brazo derecho arriba y el, Mientras que el ralentí ahí abajo. Entonces, ¿qué queda el ralentí? ¿ Cuál es la posición de Aileen izquierda? Va a ser menos 10. Entonces el derecho de ensanchamiento va a ser 10. O en AP va a ser 0,
1, y voy a enlazar hacia abajo 0 menos swap. Está bien, genial. Entonces ahora cuando miramos hacia arriba, tenemos el botón pequeño. Se puede ver que sólo podemos comprobar y asegurarnos de que esté funcionando. Entonces nos movemos hacia arriba. Se puede ver que estamos a ralentí. Estamos al ralentí hacia abajo. Estamos ralentí izquierda y derecha. Y estoy mirando el color aquí mismo, si puedes notar que se pone un poco más azulado cada vez que estamos eligiendo la dirección, y está basado en la última x e y. así que espero que hayas hecho el reto. Espero que hayas disfrutado de este video y realmente hayas creado tu propia tierra. Es muy importante que siempre intentes hacer estos retos. Entonces con eso dicho en el siguiente video, estaremos implementando los estados de ralentí en nuestro reproductor. Y te veré en el siguiente video.
16. Frente a la dirección correcta: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. En este video, en realidad hemos creado una manera de recordar la última dirección que enfrentaba nuestro jugador. Entonces ahora cuando caminamos a la derecha, nos detenemos. Recordamos que menos dirección era la correcta. Recordamos la última dirección se dejó arriba y abajo. Y esto hace que nuestro juego sea mucho más, digamos, realista y de aspecto de mantequilla. Entonces, no perdamos más tiempo y empecemos. Ah, está bien, así que ahora queremos crear una forma de transición de la caminata a la idílica. Lo primero que queremos hacer es que el ralentí sea la capa predeterminada. De la forma en que hacemos eso, ya hemos cubierto esto, hacemos clic con el botón derecho y establecemos como el estado por defecto previamente cuando vi la capa, me refería al estado por defecto. Entonces al entrar, podemos ver aquí que empezamos a ralentí. Lo siguiente que queremos hacer es que queremos crear una transición entre el ralentí y el caminar. Para hacer eso, haremos clic con el botón derecho,
haremos una transición y la colocaremos en el negro que camina. Ahora, si hacemos clic en la transición aquí mismo, se
puede ver que tenemos un tiempo de salida y tenemos duración de transición y así sucesivamente. Entonces lo que queremos hacer, no
queremos ningún tiempo extra,
como hemos dicho, tiempo de salida,
como un tiempo en el que la caminata vuelve a ralentí, se detiene por completo. No queremos eso a continuación, la duración de la transición, puedes ponerlo como un poco de tiempo, pero creo que 0 sería mejor cuando probemos esto, ya veremos si eso es mejor. Lo siguiente que queremos hacer es que queremos ver cuál es la condición para la transición del ralentí al caminar. Entonces si golpeamos el plus y aquí podemos ver que podemos establecer el movimiento x o el movimiento y, o la última x e y. ahora no queremos tocar ninguna de las últimas x e y. simplemente
queremos transitar en base al movimiento y movimiento. ¿ Por qué? Entonces si el movimiento x es mayor que 0 más uno, entonces pasaremos de ralentí y a caminar. De nuevo, queremos comprobar si hay un movimiento. ¿ Por qué? Entonces si hacemos una transición de ralentí también, caminando, de nuevo, se
puede ver que tenemos múltiples transiciones representadas por varias flechas en la misma línea. También queremos desmarcar la hora de salida. Queremos establecer la duración de transición en 0. Y la segunda condición será si el movimiento y es mayor a 0.1, vale, genial. Puedes cambiar las transiciones aparecen, puedes verlas. Entonces es el ojo que se abre al caminar. Y estas son nuestras condiciones, el movimiento x, el movimiento. ¿Por qué? ¿ Ahora? A, otra cosa que queremos comprobar es si el movimiento en la x es menor que menos 0.1. Por lo que esto es importante tener en cuenta debido a que el movimiento es menor que menos 0.1. Entonces transitaremos hacia la caminata pero hacia la otra dirección. Por lo que desmarcaremos el tiempo y la duración de la salida. Y por último, esto debería ser bastante obvio si tenemos la condición del movimiento y siendo menor que menos 0.1, entonces también transitamos hacia el caminar un soso, vale, así que movimiento inalámbrico luego uno de punto cero, movimiento x menor que, mayor y mayor. Ahora, antes de seguir adelante, también
necesitamos crear una transición del caminar al ralentí. Y esto requerirá sólo una sola transición con múltiples condiciones. Por lo tanto, volveremos a establecer la duración de la transición a 0 y el tiempo de salida a 0. Entonces vamos a añadir una condición aquí que cada vez que el movimiento en la x sea mayor que 0 o menos 0.1, entonces queremos volver a la transición. Y porque no tenemos, digamos, múltiples formas de volver atrás sólo necesitan una transición. Y vamos a sumar todas las condiciones en ella. Por lo que el movimiento x es menor a 0.1. Si el movimiento es mayor que menos 0.1, y si el movimiento y es menor que 0.1. Está bien, genial. Entonces, vamos a guardar eso. Y sigamos adelante y probemos esto. Entonces cuando ejecutemos nuestro código, verás que nuestro jugador está actualmente en ralentí y lo
puedes ver aquí en la rubia ralentí. Y si empezamos a caminar hacia arriba, ya ves que estamos en la caminante sosa. Cuando nos detuvimos, se puede ver que estamos ralentí, pero estamos fallando al sprite donde el demonio está mirando hacia la izquierda. Entonces otra vez, caminamos hacia abajo, si caminas soso, caminando a la izquierda. Y si dejamos de caminar, se
puede ver que nos volvemos al otro lado. Y esto no es algo que queremos. Queremos realmente hacer nuestro jugador o Jamie Dimon, recordar la menos dirección que estaba enfrentando. Y en base a eso, bueno, cuando nos detengamos, entra en la cara de mezcla de ojos parpadeantes de esa manera. Pero para poder hacer eso, necesitaremos algo llamado condición if. Entonces déjame explicar qué es una condición si. Estructura condicionales if-sentencias. Entonces la forma en que escribimos una condición if, es simplemente lo que significa. Si alguna condición que necesita ser cierta, necesitamos ponerlos dentro de estos dos corchetes aquí mismo. Entonces si alguna condición que necesita ser verdadera es cierta, entonces se ejecuta el código dentro de estos dos corchetes. Entonces si tenemos aquí una condición que es falsa, El Dorado aquí no se ejecuta. Pero, ¿qué pasa entonces? Solo tenemos esto si aquí mismo, solo
seguimos adelante con nuestro código. Pero también podemos añadir un otro si. Entonces, vamos a guardar esta condición aquí mismo es falsa. Después pasamos al otro. Si tenemos alguna otra condición que sea cierta o que necesita ser verdad. Y si esa condición es cierta, entonces ejecutamos el código dentro de estos dos corchetes. Pero si la condición aquí mismo es cierta, ejecutamos este código y luego seguimos adelante. Pero ¿y si esta condición es falsa y esta condición es falsa? Y si tenemos varios otros else-si con todas sus condiciones todo falso. Bueno, también podemos agregar otra. En el caso en que todas las condiciones de la serie aquí mismo sean falsas, entonces se ejecuta el, este código que está dentro de estos corchetes en el otro. Entonces intentemos usar este nuevo método adquirido e implementado en nuestro código. Así que abramos Visual Studio y aquí, y vamos a crear una condición aquí. Entonces diremos que si el movimiento horizontal es igual a uno, entonces vamos a llamar al animador jugador. Vamos a poner el flotador. Vamos a acceder a la última X. Y creo, bueno, ya
sabes qué, ni siquiera intentemos esto. Volvamos aquí. Copiemos la última X. Y aunque estoy 100% seguro cuando alguna vez estamos usando referencia de cadena, siempre intentamos ir y copiarla. Es un buen hábito tener. Y estableceremos el movimiento horizontal. Entonces, ¿qué está pasando aquí? Estamos utilizando el rol get access. Y si recordamos cuando miramos en pensamientos unitarios, siempre que estamos usando fila de acceso GET, vamos de uno menos uno o 0. Entonces lo que estamos viendo aquí, si el movimiento horizontal es uno, entonces estamos caminando hacia la derecha, entonces pondremos la última x como el movimiento horizontal, que es igual a uno. Lo que pasa en ese caso es que si volvemos aquí y dos están ralentí glándula puede ver que si la x relajada es 1, eso significa que estamos enfrentando, ¿verdad? Eso significa que recordaremos la última x y la pondremos como una. Por lo que de esta manera nuestro jugador recordará la dirección que está enfrentando. Está bien, genial. Adelante y probemos esto y nuestra ganancia. Y cuando corremos el código, así estamos mirando a la izquierda cuando caminamos a la derecha, si dejamos de caminar. Incorrecto. Por lo que como pueden ver, hemos recordado la última dirección que enfrentaba nuestro jugador. Si subimos y dejamos de movernos, siempre
está a la derecha. Está bien, genial. Ahora lo siguiente obvio que hay que hacer es fijar todas las direcciones y ese va a ser tu reto. Tan bien, todas las demás condiciones. Entonces crea una declaración condicional para las otras tres direcciones. Para el movimiento vertical debe establecer el último por qué. Y te daré un par de pistas. Tenemos el movimiento horizontal debería ser minús1 y el movimiento vertical también debería estar revisando el menos y más 11 cosa más que no expliqué, perdón. Siempre que estamos comparando dos variables. Entonces estamos comparando el movimiento horizontal con uno. Usamos dos signos iguales, no solo uno. Cuando usamos un solo signo igual, eso significa que estamos asignando el valor aquí a la variable. Pero cuando estamos usando dos signos iguales, eso significa que los estamos comparando con eso dicho, pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Entonces, ¿cómo te llevaste con eso? Ahora lo que podemos hacer aquí, podemos crear otra. Si el movimiento horizontal es igual a minús1, entonces duplicaremos esto y lo moveremos hacia abajo. El modo en que muevo esto es manteniendo presionado Alt y presionando las teclas de flecha. Entonces ahora si el movimiento horizontal es minús1, estableceremos la última x como el movimiento horizontal. Bueno, obviamente menos 1. Ahora, vamos a guardar eso y a ver si funciona en nuestro juego porque quiero mostrarles una forma más eficiente de hacer esto. Entonces ahorramos. Caminamos a la derecha, caminamos a la derecha, caminamos a la izquierda. Estamos atascados a la izquierda. Cuando subimos, volvemos a volver a la izquierda. Está bien, genial. Entonces esto parece estar funcionando, pero hay un pequeño problema. Tenemos código duplicado que no es muy bonito y aquí en realidad no lo necesitamos. Entonces lo que vamos a hacer es borrar la declaración. Y en cambio, aquí dentro crearemos una segunda condición que comprueba si el movimiento horizontal es igual a uno. O usando estas dos líneas rectas o el movimiento horizontal es igual a minús1, entonces estableceremos la última x como el movimiento horizontal. Y si guardamos eso, vuelve a Unidad. Corremos. Cuando caminamos a la derecha, estamos atascados a la derecha, caminamos a la izquierda, estamos atascados a la izquierda. Entonces como puedes ver, esto es, esta fue una muy buena demostración de cómo a veces diferentes códigos pueden darte el mismo resultado. Y por último, necesitamos establecer v movimiento
vertical es igual a uno. Y el movimiento vertical es igual a menos uno. Pero ahora, en lugar de la última x, vamos a establecer la última y
Y en lugar de la horizontal, estamos estableciendo la vertical. Por lo que de vuelta en nuestro juego, ejecutamos el código. Y ahora cuando caminamos arriba, se
puede ver el último y aquí dentro es uno. Cuando nos detenemos, ahí vas. Entonces nuestro demonio Jimmy se detiene cuando alguna vez lo estamos, o el demonio Jimmy está recordando la última dirección en la que nos estábamos moviendo, nuevo, la izquierda a la derecha. Y como puedes ver, tenemos un excelente movimiento y nuestro juego, que es muy, muy bonito. Está bien, genial. Lo que haremos en el siguiente video es cuando caminemos hacia el agua, verás que por alguna razón el demonio es capaz de caminar sobre el agua, que es algo que no queremos. Queremos que pueda detenerse en este lugar exacto o al menos detenerse siempre que teníamos las coles aquí mismo. Y también tendremos mejor control de la velocidad de marcha en nuestro decano. Entonces te veré en el siguiente video.
17. Colocación con objetos: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. ¿ Recuerdas cuando pudimos caminar por cualquier objeto? Bueno, como pueden ver, ya no
podemos hacer eso en nuestra ganancia. Por lo que las aguas son inalcanzables y las coles son un objeto sólido. Entonces, no perdamos más tiempo. Hay un poco de ajuste que podemos hacer aquí y empecemos. Oh, bien, entonces lo primero que queremos cubrir, o queremos hacer es en realidad hacer que nuestro jugador sea un poco más rápido. Pero no sólo eso, queremos tener la capacidad de controlarlo. Entonces lo que queremos hacer es crear una variable aquí dentro que podremos cambiar cuando queramos. Y luego multiplicar esa variable con la velocidad o movimiento de los jugadores. Entonces abramos nuestro código. Aquí dentro. Vamos a crear una variable que va a ser por supuesto, un campo serializado. A menos que quieras poder X, entonces lo harás público. Y lo vamos a hacer, por
supuesto, un flotador. O puedes convertirlo en un entero. El depende de ti. Podemos convertirlo en un entero. Hagámoslo un entero porque no hemos hecho eso. Y lo llamamos la velocidad de movimiento. Y vamos a poner esto en uno por ahora. Entonces aquí abajo, después de que pusiéramos a los jugadores la velocidad del cuerpo rígido al nuevo vector 2, simplemente
vamos a estar multiplicando esto por la velocidad de movimiento. Eso lo ahorraremos. Volvamos a Unidad. Y ahí tienes. Aquí aparece la velocidad de movimiento. Entonces ahora si golpeamos play mientras nos movemos en S1, si lo incrementamos a 30. Ahora se puede ver que nos estamos moviendo muy rápido. Entonces hagámoslo un poco más lento. Y si recuerdas, hemos cambiado la velocidad de movimiento del jugador a 30 durante el juego, pero ahora vuelve a uno. Eso se debe a que todo lo que cambiamos durante el tiempo de
juego se restablece de nuevo al valor predeterminado. Entonces tendremos que cambiarlo aquí por, digamos tres. Corremos el código y ahí vamos. Es un poco más rápido. A lo mejor hacer, digamos cinco. Corremos el código, ejecutamos el juego, y ahí tienes. Creo que cinco como una velocidad suficientemente buena, necesitamos ajustar la velocidad de la animación. A lo mejor si lo logramos, entonces veamos cómo se ve eso. Entonces como voy demasiado rápido, Hagámoslo tal vez creo que siete es un número muy bueno. De acuerdo, Así que siete lo es. Está bien, genial. A ver si eso lo siguiente que queremos cambiar es, como pueden ver, actualmente
podemos movernos por nuestras coles, que no es bueno, y por las aguas, lo cual también es una muy mala idea. Entonces lo que queremos hacer es añadir colisionadores a estos objetos que nos rodean. Entonces si nos fijamos en el colisionador, en el jugador, ahí está. Y creo que lo haremos un poco más grande solo para que toque los pies. De acuerdo, Así que guarde eso. Ahora sigamos adelante y añadamos un colisionador a las aguas. Por lo que vamos a hacer clic aquí, crear un objeto de juego vacío. Llamaremos a esto las aguas restablecerán su posición. Y la forma en que lo restablezca, simplemente haga clic en los tres botones o los tres puntos de aquí y presione reset, todo pasará a 0. Vamos a añadir un colisionador, y va a ser un colisionador de cajas 2D. Vamos a moverlo aquí. Y cambiemos el tamaño del colisionador para que encaje sobre las aguas. Ahí vamos. Guardemos eso. Vamos a ejecutar el código. Ese es uno de los juegos. Entonces ahora cuando caminamos hacia las aguas, sí, no pasa nada. ¿ Y por qué es eso? Es porque no hemos agregado un cuerpo rígido. Entonces vamos a añadir un Cuerpo Rígido 2D, pega Play, y ahora deberíamos, vale, Así que nos olvidamos de hacerlo estático. Por lo que haremos estático este cuerpo rígido. Y ahora cuando ejecutemos el juego, ojalá seamos capaces de saber que todavía no somos capaces de interactuar. Por lo que de vuelta en nuestro jugador, finalmente descubrí cuál era el problema. Por lo que en nuestro jugador hicimos el tipo de cuerpo cinemático. Y esto significa que no podemos interactuar con o que otros objetos con colisionadores no pueden afectar al jugador. Entonces lo que hicimos fue cambiar la
dinámica del tipo de política 2 y simplemente establecer la escala de gravedad en 0. Ahora deberíamos haber hecho eso desde el principio, pero creo que esta fue una gran oportunidad para que aprendamos cómo funciona todo. Entonces ahora cuando golpeamos el juego, podemos ver que ya no podemos caminar hacia el agua y te
darás cuenta de que algo no está funcionando correctamente. Eso es porque, bueno, déjame solo tratar de mostrarte esto usando los colisionadores, así vamos a parar el juego, vamos a abrir el colisionador de aguas también, para que podamos ver todo. Y te darás cuenta de que porque somos un círculo, puedes ver cómo se ve el círculo aquí dentro. Por eso no podemos cruzar esta barrera. Entonces cuando caminemos el círculo se moverá o se deslizará. Ahí. Ya lo puedes ver. El círculo del colisionador se desliza sobre la superficie aquí dentro y empezamos a girar. Entonces si lo intentamos, ahora ni siquiera podemos escapar. Entonces podemos hacer esto un poco más rápido, arrastrarlo hacia abajo. Y este es un gran problema porque no queremos
que Jimmy esté dando vueltas alrededor del juego sería realmente extraño mirar. Entonces lo que podemos hacer es que realmente podemos agregar restricciones a nuestro cuerpo rígido. Si miras al jugador, estas son las restricciones. Podemos congelar la rotación alrededor de la z ¿
Y por qué es eso? Pues bien, porque si miras la moiety transformada, que te da la posición y rotación cuando empezamos a girar, puedes ver que estamos girando alrededor del eje z. Y es más obvio si deshacemos click en el 2D, y verás aquí mismo que esto, el eje Z, que es azul, se puede ver aquí mismo, es el eje z y estamos girando alrededor de él. Por lo que volver al modo 2D congelará la rotación en el eje z. Y ahora podemos ver con seguridad que no estamos girando. Está bien, genial. Entonces con eso hecho, lo siguiente es detener a nuestro jugador de golpear las coles. Y eso va a ser parte de tu reto. Hacer que los estándares sean sólidos. Por lo que en un colisionador a las gradas junto a nuestro jugador, asegúrate de que el jugador no pueda caminar por ellas. Por lo que esto debería ser fácil. Pausa el video ahora mismo y ve a hacer el reto. Oh, bien, bienvenido de nuevo. ¿ Cómo te llevaste con eso? Entonces esto no debería ser demasiado duro. Simplemente vamos a duplicar las aguas. Vamos a moverlo aquí mismo y vamos a renombrar esto al estrado. Y sigamos adelante y cambiemos los colisionadores. Ups, en la postura. Entonces vamos a movernos. Y aquí se pueden ver con claridad las líneas verdes. Por lo que ahora puedes, aunque quieras, hacer esto solo un poco más pequeño a los lados. Y eso es por la forma en que se instaló nuestro Daemon. Entonces ahora si golpeamos el juego, no deberíamos poder interactuar con el stand. Sí, Ahí tienes. Si miras al jugador,
mira que el círculo empieza a interactuar. Por eso hicimos la postura un poco más pequeña por los lados. Si caminamos de arriba, sí, ahí tienes. No podemos caminar a través de ellos. Y también podemos agregar los colisionadores a la choza justo aquí y a los sacos de patata y así sucesivamente y así sucesivamente. Pero en videos posteriores, cuando empecemos a crear nuestros propios conjuntos de teselas y mapas, verás una forma mucho más fluida y mejor de manejar todo esto. Bueno, dicho eso, espero que lo disfruten y los veré en el siguiente video. Antes de irnos, menos nosotros, no
debemos olvidar guardar nuestros repositorios. Por lo que el árbol fuente backend aquí. Vamos a escenificar todo eso. Y vamos a nombrar a nuestros commit añadidos colisionadores a nuestros objetos en el mundo. De acuerdo, genial, vamos a comprometer todo eso. Y podemos mirar la rama maestra y ya se puede ver tomando forma nuestro proyecto. Y es muy bonito cuando tienes todo eso frente a ti con eso dicho, te
veré en el siguiente.
18. Sección 3: cambia de escena hasta la escena: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. En este video, hemos creado una segunda escena, y también creamos un objeto llamado area exit, que nos permite salir de esta zona. Pero por ahora lo único que hace es simplemente asegurarse de que seamos el jugador. Entonces si caminamos por ahí, se
puede ver el colisionador. Y aquí, en cuanto entramos en ella, se
puede ver que en la consola imprimimos este es un jugador que entró. Entonces, no perdamos más tiempo y empecemos. Ah, está bien. Entonces lo primero que tenemos que hacer es que en realidad hemos cambiado el nombre de la escena a pueblo, el que estamos usando actualmente. También cambié el colisionador de jugadores justo aquí. Para que veas que acabo de hacer el círculo alrededor de los pies y la cabeza. Y noté que hace las interacciones con las aguas y se levanta mantequilla. De acuerdo con eso fuera del camino, vamos al archivo y vamos a crear una nueva escena. Asegúrate de que sea 2D. Hit Create, y estamos en una nueva escena. Para guardar la escena simplemente presionará Control dentro de escenas y llamémoslo las montañas. Haga clic en Guardar. Lo siguiente que queremos hacer es añadir un fondo a la escena. Entonces vamos a entrar en nuestras imágenes de fondo que he proporcionado. Tú. Haga clic en sprites, y arrastremos la imagen aquí y hasta los sprites. Y ahora lo arrastraremos a nuestra escena. Y como puedes ver, es un poco pequeño. Por lo que haremos los píxeles por unidad. Creo que 64 hit Aplicar. Ahí vamos. Por lo que ahora tenemos nuestra hermosa escena con un par de montañas y este hombre de piedra aquí mismo. Vamos a ponernos a salvo. Está bien, genial. Lo siguiente que queremos hacer es volver a nuestra escena anterior y al pueblo. Y aquí vamos a crear un objeto. Entonces haremos clic con el botón derecho en crear objeto de juego vacío. Y a esto se le llamará la salida de la zona. Vamos a restablecer su posición. Vamos a añadir un componente el cual va a ser un colisionador 2D. Y este colisionador 2D se desencadena. Y lo que queremos hacer es ponerlo justo aquí en el borde. Y lo haremos tan grande como el camino como tal. Hagámoslo un poco más grande. Ahí vamos. Ahora tenemos la salida de zona. Ahora lo siguiente que queremos hacer es que queremos crear código que nos permita realmente activar esta salida de área. Entonces cada vez que entramos a esta zona aquí mismo, queremos hacer que algo suceda. Y la forma en que hacemos eso es usar algo llamado On Trigger Enter. Entonces si entramos en las documentaciones y unidad, se
puede ver que podemos usar algo llamado On Trigger Enter. Y la descripción aquí mismo lee, cuando un objeto de juego choca con otro objeto de juego, Unity llama al método On Trigger Enter. Y puedes ver aquí cómo se usa privado dentro de la clase en Trigger Enter, nos
da un argumento. adelante aprenderemos más sobre los argumentos. Pero por ahora, todo lo que necesitas saber es que esto se activa cada vez que un objeto de juego interactúa con el colisionador y cualquiera que sea el objeto del juego, su colisionador un aroma a través de este otro argumento aquí mismo, que está dentro de estos dos corchetes o madurar cómo se llaman estos. De todos modos, vamos a Unity, y aquí dentro vamos a crear un guión. Por lo que de vuelta en nuestros guiones, vamos a hacer clic aquí y vamos a crear un guión C-sharp. Llamaremos a esto la salida de la zona. Hit Enter. Y ahí tienes. Ahora tenemos el guión. Esperaremos sólo un poquito a que se compile. Y ahora podemos
agregarla al área exit juego objeto hará doble clic y abrirá el guión. Entonces, ¿qué deberíamos estar haciendo aquí? Bueno, lo primero que queremos hacer es ir adelante y crear un on Trigger Enter to D. Y se puede ver aquí mismo habíamos entrado. Y se puede ver que la descripción empresario entra scald cuando el colisionador 2D otros, o justo aquí la colisión entra en el gatillo. Entonces colisión otro, puedes nombrarlo como quieras. Incluso puedes nombrarlo Michael si quieres. Pero lo mantendremos como colisión como el defecto que se nos proporciona. Está bien, genial. Ahora lo siguiente que queremos hacer es que queremos
asegurarnos de que sea capa profunda la que entra al área. No queremos activar esto siempre que, por ejemplo, un objeto o un elemento o algún MPC extraño. Entra, no queremos eso porque vamos a estar usando
esto para transitar a la siguiente zona,
a la zona serrana que acabamos de crear. Entonces, ¿cómo vamos a poder identificar al jugador? Bueno, podemos usar algo llamado etiquetas. Por lo que aquí puedes ver tenemos una etiqueta en la salida de la zona. Tenemos una tack en las gradas, y tenemos una etiqueta en cada objeto de juego. Y se puede ver la etiqueta en la cámara principal es la cámara principal, y esto nos permite identificar a esta cámara como una cámara principal. También podemos hacer esto con el jugador. Por lo que en el jugador, puedes ver las etiquetas aquí mismo. Puedes hacer click y puedes ver que ya tenemos una etiqueta de jugador por defecto en Unity, también
podemos crear nuestras propias etiquetas. Entonces si recuerdas previamente cuando creamos nuestras capas de ordenación, teníamos las capas aquí adentro y también teníamos las etiquetas. Pero debido a que ya tenemos una etiqueta llamada, el jugador sólo la usará aquí mismo. Eso lo ahorraremos. Ahora aquí dentro, cuando entramos, lo
primero que queremos hacer es comprobar si el GameObject
que entró a la salida del área se llama realmente el jugador. Eso es un reto para ti. Por lo que necesitarás comprobar si hay un jugador. En primer lugar, cree una condición if dentro del Activado Enter. Entonces en esta condición, compruebe la etiqueta de la colisión, que es el argumento que se envía a través, y luego asegúrese de que la etiqueta sea la de las dos capas. Entonces, ¿cómo se puede hacer esto? Te daré una pequeña pista, pero si te sientes lo suficientemente valiente, pausa el video ahora mismo y ve a investigar cómo puedes buscar una etiqueta. Si no, te daré la pista ahora mismo. Última oportunidad. Y necesitarás usar un método llamado compare tack. Así que pausa el video ahora mismo y ve a hacer el reto. Oh, hey, bienvenido de nuevo. Entonces espero que no quisieras usar la pista. Espero que te hayas salido de tu camino y en realidad investigues cómo puedes comparar impuestos o comprobar por impuestos. Si no, espero que realmente uses la unidad de los perros con el
fin de buscar etiqueta comparada para saber cómo se usa. Por lo que aquí puedes ver booleano público. Eso significa que esto devuelve un booleano. Eso significa si es verdad o falso. Y dentro de aquí puedes pasar la cadena o la cadena de etiquetas con la que quieras comparar. Y lo suficientemente convenientemente, en realidad usan el otro objeto de juego de puntos que está en el Trigger Enter. Se llama otros aquí dentro, no colisión. Y utiliza la etiqueta GameObject.com y también comprueba la etiqueta de jugador. ¿ Qué tan conveniente es eso? Por lo que realmente no armé esto. No sé cómo esto pudo haber coincidido así. De todos modos, aquí dentro, vamos a revisar por el jugador. Entonces crearemos una condición if abrirá los corchetes y llamaremos al punto de colisión. Vamos a revisar para comparar etiqueta, abrir los corchetes. Y aquí dentro queremos llamar al jugador. Pero por supuesto esto es una referencia de cuerda, así que iremos y en realidad tenemos que copiar esta. Entonces Control C, entra aquí, controla V, y vamos a quitarlo. En realidad no podemos copiar inmediatamente la etiqueta, que es el jugador. Entonces nos conformaremos con lo que tenemos, pero tenemos que asegurarnos. Entonces jugador sí, es lo mismo. Y aquí dentro, sólo por el bien de las pruebas, vamos a seguir adelante y depurar registro de puntos. Y vamos a imprimir, esto. Es un jugador que entró. Cierra esto y regresa en Unity. Esperemos a que esto se compile. Se ejecutará el código. Y debido a que nuestro jugador saldrá de la vista de la cámara, solo
miraremos la escena. Y para ver lo que está pasando, deberíamos ver un mensaje aquí abajo. Entonces entramos aquí, sí, esto es un jugador. Entonces si haces doble clic, podemos ver en la consola aquí que este es un jugador. Y si no vemos la consola, siempre se
puede ir a Window general y golpear la consola. Genial. Por lo que ahora podemos ver la constante que se ha intentado cambiar esto de jugador. Y sólo por el bien de probar esto, añadir un espacio, Guardar y ahora déjame perro la consola puede estar en algún lugar de aquí. Cuando volvemos a ejecutar el código, la consola está vacía. Si caminamos por la zona de salida, ahí vamos. Por lo tanto, haga doble clic, puede ver el error. Y lo que dice es, déjame simplemente docket aquí mismo. Jugador no está definido. De acuerdo, así como puedes ver, incluso un espacio diminuto afecta la forma en que se interpreta una referencia de cadena. Entonces espero que lo disfruten y no olvidemos comprometer nuestros cambios. Te veré en el próximo video donde aprenderemos más sobre la alta dirección.
19. Administrador de escenografía y prefabs: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, en realidad vamos a utilizar la segunda escena que hemos creado, que son las montañas. Entonces ahora se puede ver que cuando entramos a los criterios de salida de zona y las escenas, sí, ahí vamos. Vamos a una segunda escena, y cuando volvemos,
volvemos a nuestro casco antiguo. Pero como puedes ver, hay un par de leves problemas que tenemos que arreglar, que están teniendo demonios Jimmy 2D, pero lo haremos más adelante. Hasta entonces, no perdamos más tiempo y empecemos. Ah, bien, entonces lo primero que necesitamos entender siempre que queremos estar moviendo de una escena a otra es un gestor de semillas. Por lo que en perros de Unity, se
puede ver que tenemos algo llamado el gerente de escena. Y esto nos permite, bueno, como se puede ver, gestionar una sus escenas. Y podemos usar muchos métodos estáticos aquí dentro, cuales estaremos por supuesto, utilizando a lo largo de nuestro curso y siempre que queramos desarrollar nuestros juegos. Está bien, genial. Entonces lo primero que necesitamos es en realidad una referencia al nombre de la escena entre una a la que ir. Por lo que de vuelta en nuestra salida de zona, vamos a crear una variable aquí dentro, y va a ser un campo serializado. Vamos a hacer de ella una cuerda, y se va a llamar la escena para cargar, guardar eso. Ahora, lo siguiente necesitamos estar usando el gestor de escenas, pero no podemos usarlo sin, primer lugar, agregarlo a nuestra biblioteca. Entonces recuerda cuando te dije que estamos usando el motor Unity y aquí, si lo quitamos, puedes ver que de inmediato ya no podemos usar comportamiento mono o CRO, campo
serializado, ni siquiera el colisionador 2D. Lo que hice aquí es que lo hice un comentario para que no se ejecute. De todos modos, sigamos. Ahora necesitamos agregar otra biblioteca. Entonces llamaremos al uso. Vamos a llamar de nuevo al motor Unity. Y ahora queremos llamar a la dirección de escena. Por lo que esto nos permite acceder al gestor de escena. Entonces, ¿qué vamos a hacer? Y aquí vamos a estar cargando una escena, usando esta escena para cargar la cuerda. Entonces si volvemos aquí,
sigamos adelante y bajamos la escena para poder ver las leyes la escena por su índice de nombre y los ajustes de construcción. Para que puedas ver aquí, ¿dónde está? Por lo que podemos usar un entero para verlo en el índice de compilación. Hablaremos del índice construido y solo un poco. O podemos usar una cadena con el nombre de la escena. Entonces ahora ya sabes por qué creamos una cuerda y por qué la necesitamos como referencia. Está bien, genial. Sigamos adelante y usemos esto. Entonces, ¿dónde vamos a llamar al gerente de escena y decirle que queremos
cargar a la siguiente escena lo estará haciendo aquí en el gatillo de brazo entrar 2D. Después de comprobar que su proveedor, en lugar de imprimir algo, vamos a llamar al gerente de escena. Oye, gerente de escena. ¿ Qué tal si cargamos una escena? Nos preguntará qué escena quieres cargar. Bueno, yo quiero cargar esto parece cargar. Entonces lo salvaremos de nuevo en Unidad. Esperemos a que se compile el código. Y antes de seguir adelante, sólo
quiero decir algo. ¿ Recuerdas cuando pusimos un cuerpo rígido en las aguas? Bueno, en realidad no necesitábamos ni lo necesitamos en las gradas. Y por lo general podemos mantener esto, pero los cuerpos rígidos tardan mucho tiempo en computar. Entonces solo una cabeza arriba. Y podría haber tomado el lugar donde añadí cuerpos rígidos y dije que cometí un error. Pero no, a veces en realidad no estoy seguro de lo que está pasando. Hay algo que no está funcionando. Entonces pensé mantener esto y hace que todo sea transparente y muchos de ustedes lo son, los principiantes pensarán que tal vez no seas lo suficientemente bueno. Bueno, ahí tienes. Tu instructor comete errores. De todos modos. Sigamos en la salida de zona ahora tenemos una escena que cargar, que parecía que queremos cargar. Nuevamente, se trata de una referencia de cuerda, por lo que queremos cargar la escena de montañas. Copiaremos el nombre de nuevo en la salida de la zona. Lo vamos a pegar aquí. Eso lo salvaremos. Y ahora cuando corremos el código, caminaremos. Cuando lleguemos a esto, creo que deberíamos ir de inmediato a la escena de la lengua. Entonces sí, ahí tienes. Tenemos algún tipo de error. ¿Cuál es este error? Abramos la consola. Nos dice que las montañas del mar no se pueden cargar porque no se agrega a los ajustes de construcción o k Así que hay una configuración de construcción y a esto se referían
los docs cuando nos decía la construcción. Índice. Entonces si vas al archivo, aparece en unidad y podemos encontrar la configuración de compilación. Y aquí es donde realmente construimos nuestro juego. Para que veas que podemos construirlo como una Plataforma Universal de Windows, como un juego de PS4, como un androide y así sucesivamente y así sucesivamente. Por ahora, no vamos a estar molestando con esto. En primer lugar, necesitamos ver qué está pasando aquí. Se puede ver que las escenas y construir nuestro único el pueblo. Entonces lo que tenemos que hacer es que los arrastremos montañas aquí. Por lo que ahora las montañas son parte de las escenas de construcción, o en las escenas en construidas. Se pueden ver los números aquí mismo, 01. Y esto es lo que queríamos decir con la escena y el índice construido. De acuerdo, con eso hecho, vamos a guardar esto. Podemos cerrar esta ventana. Vamos a darle a Run. Caminamos hacia la salida de la zona, y ahí vas. Se puede ver que las montañas se han cargado, aunque no tenemos jugadores. Entonces lo que queremos hacer es que queremos mantener a nuestro jugador en el juego. Pero lo que sucede cuando pasamos de una escena a otra es que todos los objetos quedan destruidos. Y eso no queremos. Queremos mantener vivo a nuestro jugador cuando vaya de escena en escena. Entonces lo que podemos hacer al respecto es que si entramos en nuestro código, entramos en nuestro jugador y
empezamos, podemos seguir adelante y decirle que no queremos destruir a carga. Entonces déjame revertir eso y mostrarte lo que nos dice el inteligente. No destruyas el objeto objetivo al cargar. Y ya has visto lo conveniente que es que podrías tener búsqueda en internet. ¿ Cómo no puedo destruir un objeto? Cuando voy a la siguiente escena, habrías conseguido este método y ¿qué GameObject no quiere destruir? Bueno, es el jugador. Simplemente podemos referenciarlo usando el objeto del juego. Ahí vamos. Por lo que este objeto de juego hace referencia al objeto de juego al que se adjunta este script de jugador. Espero que eso tenga sentido. Entonces, vamos a guardar eso. Volvamos a Unidad. Y vamos a darle a Play. Entonces caminamos, caminamos, caminamos, caminamos, y ahí vamos. Entonces estamos en la nueva escena con nuestra pequeña estatua aquí. Ahora, obviamente estamos caminando por todo porque no hemos agregado ningún colisionador, pero al menos todo está funcionando bien. Ahora bien, ¿qué queremos hacer a continuación? Queremos que esta salida de zona esté presente en nuestra segunda escena. Entonces es hora de tu reto. Y tu reto es ayudar al jugador a regresar. Por lo tanto, crea una salida de otra zona. En primer lugar, necesitas crear el objeto del juego en un colisionador, convertirlo en un disparador. Tendrás que agregarle el script, que es la salida del área. Y tendrás que cambiar el nombre de la escena a la que deseas acudir. Así que paren el video ahora mismo y vayan a hacerlo el uno al otro. De acuerdo, bienvenido de nuevo. Entonces sigamos adelante y creemos este objeto de juego. Pero antes de que hagamos eso, quiero presentarles algo que hará la vida más fácil y que es prefabs. ¿ Qué es un prefabricado? Por lo que un prefabricado es un objeto previamente fabricado que podemos usar en cualquier lugar que queramos. Vamos a bucear un poco más profundo. Entonces, ¿qué es un prefabricado? Se trata de una plantilla para cierto objeto de juego. sistema Prefab te permite almacenar un objeto de juego con todas sus propiedades. Entonces, ¿para qué lo usamos? Lo utilizamos para reutilizar un objeto de juego configurado de una manera particular. Entonces, por ejemplo, queremos que nuestro jugador tenga, digamos, cinco manos. Por lo que lo usamos cuando está configurado de una manera diferente. Podemos editar muchos objetos a la vez. Entonces, por ejemplo, digamos que tenemos múltiples elementos y múltiples escenas. Podemos cambiar un poco el prefabricado y se cambiarán todos los artículos y todas las cosas. Y podemos usar el mismo objeto en diferentes escenas, mucho más fácil. Demostraremos esto en tan solo un poco. Por lo que de vuelta en Unity, la forma en que creamos un prefab es ante todo, crearemos una carpeta. esto lo llamaremos los prefabs. Y en realidad es muy complicado crear un prefabricado. Entonces la forma en que lo hacemos es que necesitamos revisar
el objeto de salida de área o cualquier objeto que queramos
hacer como prefab y necesitamos arrastrarlo a la carpeta. Sí, eso es todo. Eso es todo lo que necesitas hacer para crear un prefab. Y sabes que algo es un prefabricado cuando ves eso, es solo un poco más azul. Entonces ahora, si entramos en donde está, ¿las escenas? Las montañas. Sí, Puedes Ahorrar. Entonces ahora si entramos en nuestra carpeta prefabs, simplemente
podemos comprobar la salida y arrastrarla aquí. ¿ Qué tan guay es eso? Por lo que ahora tenemos una salida de área y nuestra escena de montaña. Y pido disculpas por hacerte pasar por todo el proceso. Yo sólo quería enfatizar lo importantes que son las prefabs y lo mucho más fáciles que nos hacen la vida. Por lo que ahora podemos cambiar el nombre aquí. Vayamos a las escenas. El pueblo. Lo copiamos porque es una referencia de cadena. Lo pegamos aquí, lo guardamos. Volvamos al pueblo tenía Play, y ahora caminamos el paseo. Vamos a la salida de la zona. Estamos en las montañas. Ahora. Volvemos a caminar hasta llegar a la salida de la otra zona, y ahí vas. Pero se puede ver que ahora tenemos dos jugadores. Si volvemos de nuevo, ahora tenemos tres jugadores. Otra vez. Por ahora tenemos cuatro demonios Jimmy. Y no creo que haya suficiente lugar en el mundo para, para los demonios Jimmy. Nos encargaremos de todo eso en el próximo video.
20. Patrón de un Singleton: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, en realidad hemos arreglado D para duplicar problema. Entonces ahora déjame solo hacer que mi jugador sea un poco más rápido. Entonces aumentémoslo a 50. Vamos, estamos en la segunda escena. Cuando volvemos, ahí vamos. Sólo un solo demonio de Jimmy. Entonces, no perdamos más tiempo y empecemos. Imagínese si fuera ese caso rápido amortiguado. Por lo que queremos evitar tener reproductores duplicados. Para poder hacer eso, necesitamos hacer un seguimiento del jugador y asegurarnos de que solo haya uno. Y para hacer eso, vamos a usar algo llamado instancia. Entonces déjame mostrarte qué instancias, ¿qué es una instancia de una clase? Se trata de una variable estática, lo que significa constante en todos nuestros proyectos. Se puede recuperar fácilmente de cualquier otra clase, o se puede recuperar más fácilmente y
lo estaremos utilizando para evitar encontrar el objeto cada vez que queramos jugar. Y estaremos usando para hacer un seguimiento del jugador y poder usarlo,
ella en de otros guiones para el tipográfico. Entonces sigamos adelante y usemos una instancia. Por lo que de vuelta en nuestro código, back y player, vamos a crear una instancia de una clase. Y va a ser público. Va a ser estático. Como hemos dicho, la estática es algo que es lo mismo en toda la plataforma. Va a ser de tipo jugador y simplemente lo llamaremos la instancia. Eso lo ahorraremos. Ahora dentro de inicio, queremos determinar cuáles son las instancias, instancia igual a esto. Y esto hace referencia, bueno, exactamente lo que dice. Hace referencia a esta clase exacta. Entonces cada vez que empezamos de nuevo, la instancia se establece a esta clase en particular la cual tiene al jugador. Pero ahora todavía tenemos un ligero problema cuando iniciamos el juego. Se establecerá la instancia a este jugador, pero cuando se genere otro jugador, obtendremos otra instancia. Entonces lo que podemos hacer es seguir adelante y terminar aquí. Crearemos una condición. Entonces si la instancia es diferente a nula, esto significa que hay una instancia. Y así como hemos dicho, cada vez que tenemos dos líneas rectas, es un, O, siempre que tengamos estas dos líneas ardientes, Es un fin. El ejemplar es diferente a éste. Entonces esto aquí mismo, entonces vamos a, primer lugar, destruir este objeto de juego. De lo contrario vamos a crear una instancia. Vamos a poner una instancia. Entonces lo que está pasando aquí es que si nuestra instancia no es nula y nuestra instancia es diferente a este objeto en particular que estamos viendo o clase, entonces la destruiremos. Si no, si la instancia es nula o la instancia es ésta, entonces simplemente asignaremos la instancia a esto. Entonces vamos a guardar eso. A esto se le llama patrón singleton. Y ahora cuando regresemos, correremos nuestro juego, tiene nuestro equipo y camina. Se llega a la zona, termina, ahora tenemos que volver. Deberíamos haberlos hecho un poco más rápido. Entonces ahí tienes. Sólo tenemos un demonio. Y puedes ver aquí mismo, está bajo el párrafo no destruyas en carga o es diferente al pueblo si quieres pensarlo. Es como si hubiéramos creado una escena diferente donde tenemos a este jugador y la escena es D1 en carga, pero está integrada sobre el pueblo. Por lo que ahora incluso podemos caminar de regreso. Y ahí tienes. Sólo un solo Jimmy Demon. Se puede ver justo aquí y la jerarquía, sólo
hay un demonio Jimmy, pero todavía hay un problema. Y ese problema es que cada vez que
caminamos, no queremos que nos echen al final de nuestro mapa. Queremos realmente estar justo aquí y este spot como si de forma natural entráramos a esta zona. Entonces lo haremos en el siguiente video. No olvides comprometer tu trabajo.
21. Introducción de la área: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. En este video, solucionamos el problema de nuestro demonio Jimmy aparezca en el otro lado del mapa. Entonces como pueden ver, cuando fuimos a las montañas, estamos en una buena posición como si transitáramos allí de forma natural. Y si tratamos de volver, ahí tienes. También transitamos a una posición natural para que sea nuestro demonio. Y ahora no es perfecto. Necesita un poco de ajuste, pero está funcionando. Entonces no perdamos más tiempo y empecemos el 0. Por lo que nuestro objetivo en este video es encontrar manera de hacer que nuestro jugador aparezca en cierta posición. En la siguiente escena cuando nos movemos. Entonces, por ejemplo, cuando entramos a las montañas desde esta salida de zona específica, queremos aparecer justo aquí junto a la salida de zona en la segunda escena. Y esto es muy importante. Entonces lo que podemos hacer es realmente podemos crear un objeto de juego aquí llamado salida de área. Y podemos ponerlo en cierta posición. Mantenga un registro del nombre de transición desde la salida de área de la anterior dentro del jugador, y luego vuelva a ponerlo aquí porque el jugador nunca es destruido. ¿Recuerdas eso? Por lo que es un buen lugar para guardar cierto nombre. Y podemos, cada vez que iniciemos la escena, tomar a nuestro jugador y poner su posición en el área, entrar. Espero que eso algo tuviera sentido. Hagámoslo en lugar de solo hablar y quizá quede claro. Entonces lo primero es que queremos hacer un seguimiento del nombre de transición. Entonces aquí vamos a crear un nombre público de transición String. Ok. Y va a ser público porque queremos
poder acceder a ella desde un guión diferente. Ahora esta no es la mejor manera de hacerlo, pero hasta que aprendamos una mejor manera más adelante, seguiremos usando esta manera. Lo siguiente que queremos hacer es entrar en la salida del área y también crear aquí un campo serializado, que va a ser de tipo string, y va a tener el mismo nombre, el nombre de transición. De acuerdo, entonces lo salvaremos de nuevo en Unidad. Vayamos a nuestro pueblo. Y n aquí en la salida de la zona, se
puede ver que tenemos un nombre de transición en el jugador. Tenemos lo mismo pero no nos molestaremos usándolo, estaremos llenando el nombre de transición del código dinámicamente. Entonces aquí, ¿cuál es el nombre de transición? Queremos algo que represente que es este lugar para que puedas ver nuestro mapa. Para que podamos salir de este lugar, de este lugar o de arriba arriba. Por lo que queremos en primer lugar, hacer un
seguimiento de cada salida. En segundo lugar, queremos hacer un seguimiento de cuál es la siguiente ubicación. Entonces la forma en que hacemos eso es que vamos a crear algún tipo de convención de nomenclatura. Vamos a, digamos, llamar a las zonas donde podemos salir de 1, 2, 3, y 4. Entonces la forma en que vamos a nombrar esto es, por ejemplo, la de montaña. Por lo que sabemos que esta zona nos lleva a la montaña uno. Eso lo guardaremos aquí. Ahora de vuelta en nuestro código y nuestro Onsager entra aquí. Antes de cargar la escena, vamos a tomar nuestro guión de jugador. Entonces estamos haciendo referencia al guión del jugador aquí mismo, pero no podemos usar nada dentro de él, pero podemos acceder a la instancia. Y debido a que la instancia hace referencia al guión, que es éste, ahora podemos acceder a cualquier método aquí o valioso que sea público. Por lo que ahora podemos acceder al nombre de transición. Y después de acceder al nombre de transición, vamos a ponerlo en el nombre de transición. Ahora bien, si estás un poco confundido, este nombre de transición hace referencia al lado de una mano de la salida del área. Y este nombre de transición hace referencia al nombre de transición aquí en el guión del jugador. Si aún estás confundido, puedes cambiar el nombre del nombre de transición aquí, algo diferente. Por lo que la forma en que puedes cambiar un nombre en Visual Studio es simplemente mantener pulsado el control. Asegúrese de haber seleccionado el nombre de la variable que desea cambiar mantenga presionada la tecla Control, pulse o, o dos veces. Y ahora podemos cambiar este nombre de área de transición. Verás que cambia aquí y cambia por toda tu carpeta. Entonces cualquier lugar donde uses esta cuerda. Esta variable, se cambiará. De acuerdo, entonces controla o son. Está bien, genial. Entonces vamos en nuestra unidad. Ahora esto no va a hacer nada. Simplemente queremos asegurarnos de que nuestro jugador, por lo que cada salida, montañas una volvió a blanco porque cambiamos el nombre de la variable aquí. Y formas en que ejecutamos el código y ahora podemos hacer un seguimiento del jugador. ¿ Cuál es el nombre de transición? Ahí vamos. Entonces ahora cuando fuimos a las montañas, son montañas uno. Ahora, tenemos que ir a nuestra segunda escena aquí mismo, y vamos a crear un nuevo objeto de juego, que va a ser el área entrar, restablecerá su posición. Y lo colocaremos frente a la salida de la zona y nos aseguraremos de que esté fuera de la casita aquí dentro. No queremos que nuestro jugador entre y luego vuelva de inmediato. Entonces vamos a salvar esto. Entonces ahora tenemos un área enter y vamos a crear un guión. Entonces la forma en que podemos crear un script, simplemente
podemos crear área. Y tercero, se puede ver que aquí dentro, nos
dice la opción de crear un nuevo guión. Sí, Gracias. El nombre es Erin, entrar, crear un anuncio. Y ahora tenemos un guión de area enter. Y usaremos el guión para establecer al jugador en la posición exacta del área entrar. Entonces ahora que el guión está cargado, podemos abrirlo. Y aquí vamos a crear un campo serializado, que va a ser una cadena, y va a ser el nombre del área de transición. Y lo que vamos a hacer es en cuanto empecemos nuestro nivel. Por lo que en principio, vamos a comprobar si el nombre de transición o el nombre del área de transición es igual
al nombre de transición de punto de la instancia de punto del jugador. Entonces vamos a acceder a la instancia de punto player dot dot transform y recordar transform. Y aquí es lo que hace un seguimiento de un juego objetos, de un objeto de juego en la escena de Unity. Y la transformación del jugador será igual a la posición de punto de transformación. Y esto hace referencia a la transformación del área enter o al objeto que tiene el área bajo guión en él. Y tenemos una flecha. Y aquí no se puede asignar el componente de transferencia, ¿de acuerdo? Entonces necesitamos transformar la posición de punto, perdón por eso, no podemos simplemente cambiar la transformación. Tenemos que acceder al puesto. Entonces aquí, podemos ver que tenemos una posición y rotación y una escala. Por lo que en realidad estamos accediendo a la posición sobre la transformación, en la instancia sobre el jugador. De acuerdo, genial, Entonces con eso, volvamos atrás y unidad y nos aseguraremos de llamar a esto, ¿cómo lo llamamos en la escena anterior? Vayamos al pueblo. Sí. Guarda esta zona salida montaña uno. Vamos a copiar eso. Vuelve a las montañas, entra
la zona y pongámosla aquí mismo. Vamos a guardar eso de vuelta a la ciudad. Corre el código, ejecuta el juego, y caminamos, vamos a la salida de la zona. Sí, ahí vamos. ¿ Qué tan guay es eso? Por lo que ahora nuestro jugador no aparece a través del mapa. ¿ Y si queremos volver? Sí, ahí tienes. Esto no funciona de esta manera y va a ser un reto para ti. Tu reto va a ser crear un prefabricado. Por lo tanto, crea un prefab del área entrar objeto de juego agregado a la escena anterior y ponlo en la posición que quieras que aparezca nuestro jugador. Entonces por supuesto, el área entrar debe estar en una posición lógica. Pero de todos modos, pausa el video ahora mismo y ve a hacer el reto. Oh, bien, bienvenido de nuevo. Entonces aquí, podemos Prefab la zona Entrar y luego podemos seguir adelante y añadir aquí y la lengua. Pero algo que acabamos de golpear ahora. Bueno, en realidad ya lo he notado antes, pero quiero decirte tal vez te has dado cuenta de que cada salida de zona tendrá su propia entrada de área. Entonces lo que podemos hacer, en lugar de simplemente preferir ser la zona entrar y luego agregarla, podemos ir a las montañas y podemos rastrear la zona debajo,
debajo de la salida de la zona. Por lo que ahora se puede ver que el área entrar está debajo de la salida del área, y esto se llama el niño en un objeto de juego. Entonces lo que pasa ahora es cada salida. Si lo
movemos, digamos a esta posición, área enter se moverá con la salida de área y su posición aquí mismo se hace referencia a su padre. Por lo que la zona sale como
el padre, el área entrar es el niño y es una relación hijo padre. Buscaremos más en esto en videos posteriores, pero por ahora, esto es todo lo que necesitas saber. Por lo que zona entrar es un niño de zona de salida. Y podemos seguir adelante y anular este sí. Aplicar todo. Por lo que ahora en nuestro pueblo, seguro y nuestro pueblo, la salida de la zona tiene un área de entrada y simplemente la moverá a esta posición aquí mismo. Entonces echemos un vistazo atrás. Montañas una zona, buenas montañas, una, guarde eso. De vuelta en nuestras montañas. El área de salida tiene un nombre de transición. ¿ Necesita tener un nombre de transición? Veamos qué pasa. En la ciudad. Corremos el código, caminamos por ahí, por lo que hay un error. ¿ Cuál es el error? Si hacemos doble clic? Sí, ahí tienes. Y hay una excepción de referencia nula que yo te muestro lo que dice. Referencia de objeto como no establecida en una instancia. ¿ Qué significa si hacemos doble clic aquí y es porque el nombre de transición está vacío. Entonces, solo intentemos probar esto antes de intentar solucionar el problema. Sí, ahí vamos. Hay un problema enorme. Tenemos que cambiar esto por montañas, y ahora podemos volver a ejecutar el código. A ver. Sí, Ahí vamos. Entramos a las montañas. Ahora si queremos volver sí. No volvemos correctamente. ¿ Por qué es eso? Bueno, porque en las montañas y aquí no pusimos el nombre correcto, así que debería ser montañas uno. Entonces guardaré eso. No anular todo hacia abajo. Hit Play. Camina por aquí. Sí. Sí. Sí. Sí. Todo parece estar funcionando perfectamente bien. Por lo que espero que lo disfruten. Asegúrate de comprometer nuestros cambios y te veré en el siguiente video.
22. Orden de ejecución de script: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, no hemos cambiado mucho. Acabamos de aprender algo sobre el orden de ejecución de los guiones. Y también aprendimos cómo a veces podemos optimizar lo que ya hemos creado. Entonces ahora si ejecutamos nuestro juego, se
puede ver que nuestro demonio Jimmy arranca en la zona, entrar en posición. Todo funciona completamente bien. Si vamos a la siguiente zona, verás que todo sigue igual. Nada ha cambiado, pero acabamos de jugar y retocar un par de cosas. Entonces, no perdamos más tiempo y empecemos. Ah, está bien. Entonces ahora que tenemos el nombre de la salida de zona y la zona entra igual. Queremos crear una ola para ahorrar un poco de tiempo y hacer las cosas más rápidas con menos alcance. Por lo que una salida de zona, vamos a conseguir una referencia a la zona antera. Entonces vamos a crear un campo serializado y va a ser de tipo area. Y tercero, y lo llamaremos el área. Y Ok, ahora y empezar, vamos a poner el nombre de transición en la zona. Y tercero para ser lo mismo que el nombre del área de transición aquí. Por lo que el área y el tercer nombre de transición de punto. Entonces no nos está dando eso porque es un campo serializado y no un público. Entonces cambiémoslo a público. Guarda eso de nuevo aquí. Nombre del área de transición de puntos y nombre del área de transición. Entonces, no confundamos las cosas. Esto es para éste. Este es para éste de aquí. No voy a cambiar el nombre. Si sientes que sí quieres cambiar los nombres, siéntete libre de hacerlo. Está bien, genial. Ahora, de vuelta en Unidad, Vamos a entrar en nuestras prefabs y,
y la salida de la zona. Podemos seguir adelante y la referencia. Entonces si hacemos doble clic, podemos abrir el prefab y podemos referirnos de inmediato al área entrar. Eso es un hijo de esto. Genial. Por lo que como puedes ver, la salida de la zona tiene un niño que es la zona entrar que está justo aquí. Eso lo salvaremos. Salgamos de la prefab. Y si vamos a la zona entrar, podemos quitar esto y la salida de área, verás que se actualizará automáticamente. Entonces vamos a hacer un seguimiento de la zona entrar. Nos pegamos al juego, y ahí vamos. El nombre del área de transición como montaña uno en la zona, entrar. Está bien, genial. Entonces intentemos jugar nuestro juego. Asegúrate de que todo esté bien. Sí, Todo está bien. Pero hay un pequeño problema aquí mismo del que he hablado, pero no he arreglado o tal vez lo hice. Pero se puede ver que hay un error. Existe una excepción de referencia nula. Por lo que la referencia de objeto no se establece en una instancia de un área de objeto ingrese punto-punto. Y dice area enter dot start porque es un problema en la zona entrar. Si hacemos doble clic, nos llevará a la línea y nos dice
que hemos intentado acceder a una instancia, pero no hay. Ahora, como puedes ver, cuando jugamos nuestro juego, todo está funcionando bien. Pero si eres muy apestoso con las cosas y quieres arreglarlo, tenemos que arreglarlo. ¿ Cuál es el problema? El problema es que el área entrar este script exacto se está cargando antes del script del jugador. Entonces lo que pasa es, digamos que se crea el área entrar. Empezamos el área entrar, pero el jugador aún no ha sido creado, por lo que no hay instancia. Entonces, ¿cómo podemos arreglar esto? Hay muchas maneras. Te mostraré una muy astuta. Y es algo que no muchos EU, no
es tan bueno hacer esto, pero es bueno saber que tienes la opción. Por lo que en la Edición, ve a Configuración del proyecto. Aquí, se puede ver que tenemos algo llamado ¿dónde está la orden de ejecución del script? Y se puede ver cómo se ejecuta cada script. Por lo que podemos sumar un plus. Y aquí se puede ver que estos son los guiones que tenemos. Eligamos al jugador y vamos a moverlo aquí. Por lo que comienza antes de la hora predeterminada. Eso significa que comienza antes que cualquier otro guión. Apetaremos Apply. Saldremos. Ejecutaremos nuestro código y ya no deberíamos obtener este error. Ahí vas. Pero como puedes ver, nuestro jugador va a la posición del área entrar, todo funciona bien, pero cada vez que iniciamos nuestro juego, Ahí vamos. Nuestro demonio es transportado a esa posición. Creo que esto es algo bueno porque en realidad nunca comenzaremos en medio de un mapa. Entonces eso es, creo, algo bueno. De todas formas, espero que lo disfruten. Espero que estén guardando sus repositorios. Y te veré en el próximo.
23. Sección 4: Cinemachine 101: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. En este video, ya no somos estáticos y el trabajo. Entonces como se puede ver antes de agregar nada, cada vez que nos
movíamos y el remolino, sólo podíamos ver lo que tenemos delante. Pero ahora a medida que nos movemos, se
puede ver que la cámara sigue a nuestro jugador dondequiera que vaya. Entonces, no perdamos más tiempo y empecemos a agregar máquinas. Ah, está bien. Por lo que actualmente cuando golpeamos el juego, se
puede ver que todos tenemos remolinos en nuestra escena, pero nuestro jugador sólo puede moverse en el espacio limitado que tenemos dentro de nuestra ventana de juego. Pero sí queremos movernos por todo el mapa que tenemos un interactuar con diferentes objetos. Pero desafortunadamente, la cámara no permite esto. Entonces lo que vamos a hacer es crear un campamento de seguimiento. Por lo que dondequiera que se mueva
nuestro jugador, nuestra cámara se moverá sin ninguna. Hay dos formas de hacer esto. El primer camino es la anticuada manera, donde creamos un guión que
agregamos a la cámara, fijamos un objetivo, y luego necesitamos hacer muchos ajustes. Y ahí está la nueva y más avanzada forma y que es el uso de una máquina central. Entonces, ¿qué es una máquina pecadora? Te voy a mostrar la documentación de Unity. Entonces aquí, se puede ver en los perros de la unidad, se
puede leer todo sobre las máquinas de cine, lo que requieren, lo que necesitan. Yo sí creo que deberías ir a buscar la documentación. Es un poco largo. Está en algún lugar de aquí. No creo que debas leer todo ahí dentro, pero al menos saber lo que sí tienes. Entonces volvamos a Unity y añadamos una máquina de cine. Entonces lo primero que necesitamos hacer es importar un paquete. Por lo que tendremos que ir al Gestor de Paquetes. Iremos a Window, el gestor de paquetes y aquí, esperaremos la actualización de los paquetes, vamos al Registro de la Unidad y ahora y máquina de cine que está buscando máquina de Cinna. Ahí vas. Envía una máquina, asegúrate de instalar eso. Y te veré después de que termine la instalación. O K. Bienvenido de nuevo. Entonces usando la magia de la edición, acabo de terminar de instalar la máquina de cine. Y ahora lo siguiente que necesitamos hacer es entrar a nuestra cámara principal y vamos a agregarle un componente. Y va a ser un cerebro. Entonces tendremos un cerebro de máquina de cine en nuestra cámara principal. Nos permitirá tener cámaras coexistentes con una de ellas será la cámara principal y la otra será una cámara virtual. Entonces sigamos adelante y creemos una de esas cámaras virtuales. De la forma en que lo hacemos es subir aquí y la máquina de cine, y vamos a crear una cámara 2D, como se puede ver aquí mismo. Por lo que ahora tenemos este C VCA. Y se puede ver que hay un par de cosas que no tenemos aquí no van a pasar por todas ellas porque hay mucho. Pero por ahora, las cosas que sí necesitas considerar y establecer de inmediato es justo aquí, el seguimiento y la búsqueda. Pero antes de hacer eso, tendremos que crear un objeto de juego y poner ambas cámaras en nuestro hijo, las cámaras para él. Entonces vamos a crear un objeto de juego. Lo llamaremos las cámaras. Y sólo arrastraremos la cámara principal y dos cámaras. O antes de hacer eso, déjame simplemente restablecer la posición y luego arrastraremos la cámara principal debajo las cámaras y el campamento virtual y a las cámaras también. Por lo que ahora tenemos las cámaras que sostienen la cámara principal y la cámara virtual. Ahora, lo siguiente que necesitamos hacer es arrastrar la cosa o cualquier cosa que quieras estar siguiendo. Entonces, ¿qué queremos estar siguiendo? Bueno, queremos estar siguiendo al jugador, así que arrastraremos al jugador justo aquí. Entonces como pueden ver, tenemos un par de guías. Y antes de continuar, cambiemos en la ventana de juego de aspecto libre a 16 por 9, y esto ayudará a estabilizar la imagen. Entonces vamos a guardar eso. Y vamos a darle a Play y ver qué tenemos. Y te explicaré lo que todas estas guías aquí mismo o así ahora si caminamos arriba, ahí vamos, se puede ver que nuestra cámara realmente sigue a nuestro jugador. ¿ Qué tan guay es eso? Entonces ahora no solo caminamos por ahí y ya no podemos ver al jugador. En realidad tenemos una cámara que está siguiendo y se puede ver cómo está siguiendo aquí arriba a través de estas líneas rojas. Para que veas que no es inmediato. Por lo que lleva un poco de tiempo y esto le da una sensación más natural a nuestro juego, una sensación más profesional también. Y esto no es algo que se haga fácilmente usando scripts. Necesita mucho código y mucho ajuste. Pero antes de que sigamos adelante, cuáles son estos pulmones, en realidad
puedes apagarlos. Si miras aquí mismo y el CMV puede, puedes ver o necesitamos cambiar esto. Una cámara virtual. Ahí vas. Entonces ahora se puede ver que si presionamos en la guía de la ventana de juego, ve que todos están desapareciendo. Y creo que necesitamos copiar esto porque cuando dejamos de jugar, ya
ves, como hemos dicho, cada vez que estamos en el Modo Juego, nada es seguro. Entonces por eso copié y pegué justo aquí. Está bien, bien. Esto es algo que entenderás después de muchos años de experimentar perder todas las cosas que cambiaste. De todos modos. Ahora, ¿qué son estos tipos? Si nos
desplazamos hacia abajo, podemos ver aquí que tenemos algo llamado el cuerpo. Y aquí se puede modificar y cambiar muchas cosas. Ahora, de nuevo, no voy a repasar todos ellos. Pero una manera útil de entender lo que todos esos significan es simplemente girando,
por ejemplo, esto hasta arriba. Ahora cuando ejecutemos nuestro juego, lo verás. Ahí vas. Por lo que puedes ver porque giramos la amortiguación, tarda más tiempo para que nuestra cámara realmente se ponga al día con nuestro jugador. Pero cuando sale de la zona roja, se
puede ver que inmediatamente sigue. Si cambiamos la amortiguación en la y, tenemos el mismo efecto. Muy bonito. Volvamos esto a uno. Y veamos qué más tenemos si movemos la pantalla, por ejemplo, podemos mover la pantalla. Entonces ahora nuestro jugador siempre está a la derecha, que es algo, no estoy seguro de cómo lo vas a usar, pero podría ser útil. Podemos cambiar la distancia de la cámara, pero no pasa nada. A lo mejor eso se debe a que sólo se puede usar cuando está en 3D. Podemos cambiar la zona muerta y tratemos de ver cómo funciona esto. Entonces ahora si nuestro jugador se mueve un poco, se
puede ver que la cámara no sigue. Pero en cuanto salga de la zona muerta, puede ver que la cámara empieza a seguir. Y este es un truco muy astuto que puedes usar para implementar tu cámara. Volvamos eso de nuevo a 0. Siguiente cosa, ¿qué más tenemos? Tenemos otras cosas. Entonces si te mueves, no estoy seguro de la zona blanda 0. Entonces la zona sur es, por ejemplo, digamos que la amortiguación vuelve a 20. Se puede ver que las líneas rojas están muy más lejos. Entonces ahora, a pesar de que estamos fuera de las líneas, la cámara toma tiempo para ponerse al día con nuestro jugador. Creo que esto es algo que también queremos volver a 0.8,
el uno, por qué amortiguar a uno. Entonces como puedes ver, hay muchas opciones. También hay ruido y puntería, e incluso puedes agregarles extensiones, las cuales recomiendo ir a probar la investigación. Y ahora que hemos añadido una cámara de seguimiento, déjame simplemente apagar la guía de ventanas. Creo que el que obtuvimos por defecto es lo suficientemente bueno para nuestro juego por ahora. No quiero complicarlo mucho, pero es hora de tu reto. Tu reto va a ser modificar tu máquina Cinna. Así que juega con los ajustes y descubre dónde está
tu dulce spot o cómo quieres que la cámara siga a tu jugador. Una buena regla de oro como acabas de ver, si no quieres leer lo que hace cada ajuste, es solo poner uno al máximo y probar. Entonces tienes dudas sobre lo que hace esta cosa. Ponlo al máximo. Juega, ve qué pasa y diviértete. Así que pausa el video ahora mismo y ve a hacer el reto, y no te olvides de guardar tus reposiciones. Y te veré en el siguiente video.
24. Extensión Confiner en Cinemachine: Bienvenidos de nuevo a mis compañeros desarrolladores de juegos a uno de los videos más grandes y a todo este curso. Pero aprendimos mucho. Aprendimos sobre los combinadores de máquinas Cinna. Aprendimos sobre las capas. Capa física no son las viejas capas de clasificación. Aprendimos sobre encontrar objetos de tipo. Aprendimos sobre obtener componentes. Entonces necesito tu concentración completa y alrededor, digamos 16 minutos tal vez de tu tiempo. Entonces, no perdamos más tiempo. Este es un video muy importante y empecemos. Ah, así que actualmente cuando golpeamos play, veamos que tenemos nuestra cámara de seguimiento y todo está funcionando bien. Pero el problema es que cuando llegamos al borde, vemos estos cuadrados azules justo aquí. Y eso no queremos. No queremos sacar a nuestro jugador de la experiencia. Si puede ver lo que hay fuera de los límites de nuestro juego, entenderá que es de nuevo. Y como sabes, cada vez que ves una falla en el juego y te das cuenta, oh, esto es un juego. Realmente te saca de la experiencia. Entonces tendremos que arreglar eso. ¿ Cómo arreglamos eso? Tendremos que confinar nuestra cámara virtual. Y la forma en que hacemos eso es si bajamos aquí y la cámara virtual, se
puede ver que tenemos extensiones. Entonces si hacemos click en eso, verás que tenemos algo llamado máquina de cine confinado. Y como ya he dicho, estas son cosas realmente geniales que buscar aquí mismo. Entonces, por ejemplo, si estás haciendo un juego 3D o si estás intentando agregar un zoom de seguimiento y así sucesivamente. Este es un buen lugar para leer estas características geniales que tienes dentro de la máquina. Pero por ahora, vamos a añadir un combinador. Entonces ahí lo tienes. Se puede ver que cuando elegimos un confinamiento, se agrega
un nuevo objeto de juego o un nuevo componente a la cámara virtual, un componente. Entonces, ¿qué vamos a hacer aquí? Bueno, se puede ver que necesitamos una forma delimitadora. ¿ Cómo agregamos una forma de contorno? Agregamos con un colisionador 2D. Entonces iremos a la capa de fondo. Vamos a añadir un componente. Y digamos que queremos agregar un colisionador de cajas, y te mostraré por qué esto no va a funcionar. Entonces ahora si volvemos a la cámara virtual y tratamos de arrastrar la imagen de fondo, se
puede ver aquí mismo que tenemos una advertencia de que debe ser
un colisionador de polígonos o un colisionador compuesto. Entonces volvamos al segundo plano. Quitemos este colisionador de caja y agreguemos un colisionador de polígonos 2D. Y cuál es la diferencia entre un colisionador normal y el colisionador de polígonos. Bueno, como puedes ver, el colisionador de polígonos es mucho más flexible siempre que quieras estar agregando objetos o un colisionador alrededor de un objeto que no
es realmente un cuadrado o un círculo o cualquier otra cosa. Puedes ver, puedes crearlo con la forma que quieras. Y si quieres eliminar uno de estos lados, simplemente
puedes mantener pulsado el control. Y Ahí vamos. Se puede ver que no podemos borrar todo. Y vamos a asegurarnos de que está justo aquí alrededor de los bordes y no más. Vale, genial, Así que ahora que tenemos el colisionador de polígonos, vamos a guardar eso. Salgamos del modo de edición, retrocedamos y nuestra cámara virtual y arrastramos la imagen de fondo. Guardemos eso. Pero ahora algo raro va a pasar cuando ejecutemos nuestro juego. Entonces le pegamos a Play. Se puede ver que nuestro jugador acaba de salir de la pantalla. ¿ Y por qué es eso? ¿ Por qué piensas, o cuál es el problema? ¿Crees? Tómate un momento para pensar. acabó el tiempo. Entonces el problema es nuestro jugador está interactuando con este colisionador de polígonos en segundo plano. El modo en que vamos a arreglar esto es creando una capa separada para la imagen de fondo. Y no estoy hablando de la capa de clasificación. Si entramos en las capas justo aquí, vaya a las capas de edición. Se puede recordar que tenemos algo llamado etiquetas, tenemos algo llamado capas de clasificación, y también tenemos las capas. Por lo que anteriormente hemos agregado una capa de clasificación, y esto nos permitirá ordenar qué imágenes encima de qué imagen de autor. Pero ahora realmente vamos a usar las capas y éstas nos permiten interactuar o permite determinar
qué colisionador interactúa con qué Collider o qué objeto físico puede interactuar con qué otro objeto físico. Por lo que actualmente, vamos a crear una capa de fondo. Y verás que nuestro jugador, por ejemplo, está en el jugador predeterminado y también lo es nuestra imagen de fondo. Entonces si cambiamos la capa aquí mismo al fondo, se
puede ver eso cuando vamos a Editar configuración del proyecto. Aquí abajo, verás que tenemos esta matriz realmente inteligente. ¿ Y qué me matriz esta? Se puede ver que
aquí tenemos múltiples capas y una de ellas es el fondo que acabamos de crear. Para que se pueda ver ahí están justo aquí a la derecha. Una de ellas es la predeterminada, que es nuestra capa de jugadores. Y también tenemos el agua si ignoras el recast. Pero por ahora, ¿qué hace en realidad esta matriz? Determina si una capa está interactuando con otra capa. Entonces, por ejemplo, el predeterminado con el fondo, sí interactúan, el predeterminado con la interfaz de usuario, sí interactúan y así sucesivamente y así sucesivamente. Entonces lo que queremos es que la capa de fondo no sea capaz de interactuar con nada en absoluto, y sobre todo con el jugador. Entonces lo que haremos es simplemente apagaremos todos estos. Eso lo ahorraremos. Y ahora sabemos con certeza que la capa de fondo no interactuará con la capa predeterminada. Por lo que nuestros jugadores no deben verse afectados por lo que sucede cuando toca el fondo. Entonces ahora cuando ejecutamos nuestro juego, deberíamos ver que nuestro jugador ya no está fuera de los límites del mapa. Pero si salimos afuera, ¿va a ir más allá? No, Como puedes ver, bueno, algo salió mal. Queremos al siguiente nivel, pero como pueden ver, ahora, si bajamos por las aguas, ya no
vamos fuera de los límites con nuestra cámara. Ahora, nuestro jugador sigue saliendo fuera, pero no se preocupe por eso. Se puede ver que nuestra cámara ya no lo está siguiendo. Y realmente podemos sentir que el entorno en el
que estamos es el ambiente de todo el mundo. Y esto realmente agrega mucha autenticidad a o ganancia. Ahora bien, si pasamos al siguiente nivel, podrías haber notado un pequeño problema. Y es que no tenemos una cámara virtual funcionando aquí. Pero el otro problema, si volvemos a nuestra escena anterior, de nuevo, como pueden ver, ya no hay una cámara virtual, pesar de que aquí la tenemos. Y las cámaras, la cámara virtual, pero no hay nada que seguir. Ahora falta la transformación que usamos para seguir. Entonces, ¿cómo vamos a pasar este pequeño problema? Bueno, necesitaremos crear un controlador de cámara en que accederemos a la máquina central y accederemos al jugador dentro de nuestro juego o encontraremos a nuestro jugador dentro de la escena para luego asignarlo a esa cámara virtual para seguir. Entonces, ¿cómo vamos a hacer esto? Lo primero es que vamos a crear un nuevo guión Sharp. Por lo que iremos a Crear C Sharp. Controlador de lata. Hit Enter, espere a que se compile. Y no estoy seguro de lo que acaba de pasar. Lo siguiente que haremos es agregarlo a nuestra cámara virtual. Por lo que ahora nuestra cámara virtual tiene un script de controlador de levas en ella. Haremos doble clic, lo abriremos y Visual Studio. Y lo primero que necesitamos es igual que agregamos un dónde está en la salida de la zona. Hemos agregado una gestión de escenas con el fin de acceder al gestor de escenas Biblioteca. Y aquí también vamos a necesitar agregar usando máquina central. Por lo que ahora podemos acceder a los componentes en una sola máquina. Lo siguiente es que necesitamos dos variables aquí. Uno de ellos va a ser un jugador privado, y va a ser un objetivo jugador. Y tal vez te estés preguntando, Michael, ¿por qué no lo hicimos un campo serializado o un público? El problema aquí es que no queremos adjuntar manualmente a nuestro jugador al objetivo. Queremos que suceda dinámicamente en nuestro guión. Entonces te mostraré lo que quiero decir en tan solo un poco. Lo siguiente que queremos hacer es querer una máquina de cine, cámaras
virtuales o cámara virtual sin máquina, y sólo lo llamaremos la cámara virtual. Ahí vas. Guarda eso. Ahora y empezar. Vamos a utilizar un método que nos permita encontrar un objeto. Y si vamos en las documentaciones aquí mismo, te
mostraré cómo un maestro solucionador de problemas encuentra esto. Entonces digamos que queremos encontrar al jugador. ¿ Cómo hacemos eso? Bueno, Google cómo
encontrar un objeto y Enter. Ahí vas. Se puede ver que tenemos algo llamado el juego objeto dot find. Si hacemos click en él, verás que podemos encontrar un objeto de juego que necesitamos. Pero hay un método de patrón que te mostraré y es el objeto Find de un cierto. Tipo en Unidad. Hit Enter. Whoa, hay un objeto finito de tipo. Entonces entra en ella. ¿ Qué hace? Bueno, devuelve el primer objeto cargado activo que coincide con el tipo específico. Por lo que queremos un tipo específico que sea el jugador, y se puede ver cómo podemos usarlo aquí mismo. Está bien, genial. De vuelta en nuestro guión y te recomiendo que te tomes un poco de tiempo para mirar a través de este método accederá al objetivo del jugador. Entonces el objetivo del jugador, ese es el nombre de la variable que hemos creado aquí arriba. Va a ser igual a phi1 objeto de tipo. Y qué tipo queremos buscar? Es el jugador. Entonces al llamar al guión de jugador, en realidad
obtenemos el objeto del jugador. Y ahora podemos adjuntarlo a la cámara. Pero antes de hacer eso, para poder acceder a la cámara virtual, en realidad
necesitamos asignarla. Y como no creamos un campo serializado aquí dentro, vamos a necesitar otro método. Por lo que tenemos el controlador que se adjunta a la cámara virtual. Pero lo que queremos es que queremos acceder a este objeto aquí mismo, que está en el siguiente. Queremos acceder al componente de cámara virtual de la máquina de cine. Y en realidad podemos hacer esto de una manera muy útil. Y eso es consiguiendo el componente. Entonces usando Get componente, la máquina de cine, cámara virtual. Y ahora todo lo que tenemos que hacer es conseguir que el punto de la cámara virtual siga. Por lo que estamos accediendo al seguimiento. Y luego lo vamos a asignar como el objetivo jugador. Pero no sólo eso, porque un objetivo de jugador es solo el objeto que encontramos, necesitamos realmente acceder a la transformación. Entonces, ahorremos eso y déjame explicarle una vez más lo que está pasando aquí. Entonces, en primer lugar, creamos estas dos variables, una de ellas como privada, también
podemos hacer privado al cisne, pero sin preocupaciones lo es. Por lo que un jugador privado objetivo y una cámara virtual privada. Entonces encontramos ese objeto de juego. ¿ Y por qué estamos tratando de encontrar el objeto del juego y no asignarlo manualmente? Porque queremos que suceda dinámicamente. No queremos entrar en cada escena y asignar al jugador a
la cámara en cada escena que queríamos que sucediera dinámicamente. Después usamos un método que obtiene un componente. Y porque el controlador está en la cámara virtual y es uno de los componentes. Tenemos otro componente que es la cámara virtual de la máquina de cine. Accedemos a ella y asignamos lo siguiente accedemos al seguimiento. Por lo que aquí puedes ver que tenemos un seguimiento. Accedemos a eso usando el derecho aquí usando este pequeño punto. Y asignamos al jugador objetivo transporte HDL porque simplemente tenemos el objeto, no el transporte real. De acuerdo, entonces si guardamos eso, vuelve a Unidad. Pongamos esto como ninguno. Guarda ese Play. Y deberíamos ver aquí mismo que el jugador ha sido encontrado y ha sido asignado. Entonces ahora cuando nos movamos, verás que la cámara sigue a nuestro jugador. Pero si entramos a la siguiente escena, verás que no pasa nada y eso es porque no tenemos cámara virtual. Entonces, ¿cómo vamos a arreglar esto? Entraremos a las prefabs. Pondremos las cámaras como prefabricado, ahorraremos eso. Regresaremos y escenas a las montañas, borraremos la cámara principal. Y vamos a conseguir las prefabs y añadir las cámaras que tenemos. Eso lo ahorraremos. Volveremos a nuestro pueblo, correremos el código. Nosotros vamos a caminar a las montañas y ahí vas. Como puedes ver, tenemos una leva de seguimiento. Ahora no tenemos confesionario, lo
agregaremos más adelante, pero está funcionando. ¿ Cómo es eso? Por lo que espero que lo disfruten. Espero que estén guardando sus repositorios. Como puedes ver, nuestro proyecto está tomando forma y se está volviendo muy grande. Deberías estar realmente orgulloso de ti mismo y de lo mucho que has logrado hasta ahora. Entonces te veré en el siguiente video.
25. Tilesets en la unidad: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, vamos a aprender a crear conjuntos de
teselas a partir de las hojas sprite de rebanada que tenemos. Entonces lo que hicimos es conseguir un sprite aquí mismo, una imagen completa de los azulejos que queremos usar. Lo cortamos y lo convertimos en activos de azulejo. Y estos activos ahora están presentes aquí mismo y nuestra paleta de azulejos. Entonces, no perdamos más tiempo. Empecemos. Ah, está bien. Por lo que actualmente, como pueden ver, siempre
hemos estado trabajando con una imagen de fondo. Entonces es una imagen donde ya tenemos algún tipo de camino predeterminado. Tenemos objetos predeterminados y nuestro mundo. Pero esto no es divertido siempre que quieras crear tus propios niveles, siempre
es mejor tener una forma de usar algún tipo de fichas. A lo mejor veremos más adelante con el fin de crear tu propio mapa con tu propio diseño. Entonces, ¿cómo vamos a hacer esto? Bueno, primero que nada, usando Sprites, luego disecando o cortando los sprites, y luego usando esos sprites rebanados con el fin de colocar azulejos y nuestro mundo, tal vez estés un poco confundido por lo que acabo de decir. Entonces déjame explicarlo un poco mejor. En primer lugar, obtenemos nuestra lámina sprite. Entonces al igual que teníamos la hoja de sprite Jimmy demonio, también
tenemos una sábana de sprite para nuestros azulejos. siguiente paso es que vamos a rebanar los sprites. Entonces vamos a convertir estos sprites rebanados y a activos de azulejo. Agregaremos los activos de estilo a una paleta de mosaicos que nos
permitirá dibujar encima de nuestra escena utilizando un diseño de cuadrícula. Y tendremos un mapa de teselas con nuestro demonio en él. Entonces tómese sólo un momento para entender el proceso porque lo vamos a pasar ahora mismo. Entonces de vuelta en Unity, y aquí vamos a ir a Windows 2D y vamos a llamar a 40 paleta de azulejos. Y esta paleta de azulejos nos permite dibujar, o es como una paleta de pintura siempre que quieras pintar un cuadro, esta es una paleta de azulejos que nos permitirá pintar diferentes tejas en nuestro C. De acuerdo, así que ahora necesitamos conseguir nuestros azulejos. Y puedes ver que en los recursos te he dejado los archivos a usar, que es la ruta y los objetos, y este es el conjunto de archivos que voy a usar. Tendremos otros conjuntos de teselas más adelante. Pero por ahora, el pantalón y los objetos es lo que voy a estar usando. Entonces lo que haremos aquí es ir a Activos, crearemos una nueva carpeta para los archivos. Y aquí dentro vamos a seguir adelante y dejar caer el camino y los objetos. Entonces lo dejaremos aquí. Entonces como puedes ver, si hacemos doble clic aquí, es un sprite con todas las fichas que queremos. Ahora el siguiente paso es seguir adelante y rebanarlos hacia arriba. Por lo que entraremos en el Modo Sprite, elegimos múltiplo, aplicaremos los cambios. Vas a la Editora Sprite. Y aquí dentro los vamos a rebanarlos. Entonces no creo que automático no vaya a funcionar. 64 por 64. Probemos eso. No, necesitamos tener este estilo,
por ejemplo, esta piedra y la hierba se metieron en nueve piezas. Entonces intentemos 32 por 32. Y sí, ahí vamos. puede ver que está cortada en nueve piezas y podemos usarlo. Por lo que vamos a golpear Apply. Y ahora verás que en lugar de una sola imagen, tendremos a todos los pequeños sprites cortados todas las rebanadas de nuestra gran hoja de cálculo. Está bien, genial. Por lo que estos son los dos primeros pasos. El siguiente paso es crear activos de teselas y agregarlos a la Paleta de azulejos. Y la forma en que hacemos eso, si volvemos a Unity, y aquí tenemos la Paleta de Azulejos. Por lo que necesitamos crear una nueva paleta de mosaicos. esto lo llamaremos el camino y los objetos. Apetaremos a Crear e iremos a los activos dentro de los azulejos. Vamos a seguir adelante y crear una carpeta, rutas y objetos. Y vamos a seleccionar esta carpeta aquí mismo. Y también arrastraremos el sprite aquí. Entonces ahora tenemos la paleta Estilo creada, pero ahora necesitamos crear el activo de archivos. Entonces la forma en que hacemos eso es tomar toda
esta imagen y la arrastraremos aquí a la paleta de azulejos. Tenemos que seleccionar una carpeta. Y sigamos adelante y seleccionemos la ruta y los objetos dentro del archivo. Así que asegúrate de guardar en una carpeta donde puedas tener todas las fichas. Así que seleccione la carpeta y espere a que la importación tenga. Por lo que ahora los sprites se están convirtiendo en activos de teselas. Y ahí tienes. Entonces como puedes ver, estos son los activos del azulejo y puedes leer aquí
mismo en el inspector que esto es un azulejo. Por lo que cada uno de estos es un azulejo y los puedes ver aquí mismo en una paleta de azulejos. Entonces ahora que tenemos todo configurado, lo
siguiente que hay que hacer es crear un mapa de teselas, pero lo haremos en el siguiente video porque éste ya es demasiado largo. Y antes de irme, quiero emitirles un reto. Por lo que tu reto va a ser crear tu propio mapa de teselas o offset por ahora. Por lo que importa los sprites y azulejos que elijas usar para tu juego. Así que corta las hojas de cálculo de los azulejos y agrega a la paleta de azulejos para crear tu nuevo conjunto de llantas. Y antes de irme, también
quiero mostrarles de dónde consigo mis juegos de azulejos. Entonces esta es mi hoja de cálculo. Por lo que es arte de juego abierto. Como siempre, es un recurso increíble para cualquier cosa que necesites para crear tus juegos. Es del autor, Sabine. No estoy seguro. Te recomiendo que los revises. Y también puedes ir al arte de juego abierto y encontrar tu propio conjunto de estilo para que puedas ir al navegar, al arte. Hay toneladas y toneladas de sesgos, como se puede ver aquí mismo, Zelda como mazmorras blocky y así sucesivamente. Entonces encuentra tu hoja de cálculo, tu hoja de sprite preferida y úsalo para crear tu conjunto de pilas. Entonces te veré en el siguiente video donde empezaremos a colocar nuestros azulejos y a crear un mapa de teselas.
26. Crear un mapa de mosaico: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, en realidad hemos creado un mapa de teselas. Entonces ahora déjame solo mover un poco a mi jugador en la carretera. Si ejecutamos nuestra vista de juego, puedes ver que este es el mapa que he creado. Entonces ahí lo tienes. Se puede ver que tenemos objetos sólidos con los que interactuamos. Tenemos tiendas, tenemos de todo. Hay un par de cosas que tendremos que cambiar. Por ejemplo, podemos ver que aquí tenemos las aguas. Tenemos los sacos de papa y tenemos el cuerpo de agua al que no podemos cruzar. Entonces, no perdamos más tiempo y empecemos. Ah, está bien. Entonces antes de continuar aquí, cuando queremos comprometer los cambios después de haber creado los activos de teselas, hay un pequeño problema. Si ya has escenificado o comprometido todos tus archivos, está bien. Pero si no, sí te recomiendo que ignores todo bajo los activos, estilos, y path y objetos. ¿ Y por qué es eso? Bueno, porque no creo que sea realmente necesario seguir adelante y salvar todos los activos. Es mucho espacio, y no creo que sea muy necesario. Sólo el código y lo que sucede dentro
del juego son más importantes que las imágenes reales. Entonces vamos a estar ignorando todo bajo Activos, ruta de archivo, y objetos golpeados Ok, así que ahora podemos escenificar todos nuestros archivos y seguir adelante y comprometer nuestros cambios. Por lo que creé un conjunto de teselas. No te preocupes si ya has hecho esto. No se preocupe. Simplemente continúe en la inmunidad de espalda. Ahora es momento de empezar a pintar. Entonces, ¿cómo vamos a pintar usando nuestra nueva paleta de azulejos? Bueno, en primer lugar, vamos a seguir adelante y crear una nueva escena. Vamos a seguir adelante y asegurarnos de que sea 2D. Guarda los cambios. Nuestra escena aquí mismo. Y ahora vamos a entrar en objeto de juego. Vamos a entrar en el 2D y encontrar mapa de azulejo, asegurarnos de que sea rectangular. Hit Enter. Y ahora tenemos un mapa de azulejo. Podemos cambiar esto en segundo plano. Y notarás aquí mismo el mapa de teselas activo se convertirá en el fondo. Ahí vas. Salvemos la escena. Y creo que también vamos a llamar a esto el pueblo. Por lo que Control S para salvar la escena. Y las citosinas llamarán a esto el pueblo para salvar. Y ahora tenemos una segunda vez. Ahora bien, ¿cómo vamos a dibujar aquí? Entonces, por ejemplo, si hacemos zoom, podemos elegir uno de esos estilos. Y hablemos de las opciones que tenemos aquí arriba. Tenemos, en primer lugar, el selecto un área en la cuadrícula. Y déjame hacer esto un poco más grande. Podemos seleccionar un área en la cuadrícula, y esto es para edición. Entonces, por ejemplo, si presionamos la tecla Editar justo aquí, seleccionamos esta cuadrícula, tuvo el movimiento. Ahora podemos mover esta paleta. No queremos eso por ahora. Este es el movimiento de acaba de ver lo que hizo. Y también tenemos el pincel, y esto nos permitirá pintar cosas en nuestro mundo. Entonces si elegimos esto, por ejemplo, este tipo de piedra, podemos empezar a pintar. Pero obviamente se puede ver que los sprites o los azulejos son demasiado pequeños. ¿ Cómo solucionamos esto? Si entramos en el baño de azulejos y los objetos, si golpeamos el sprite grande, podemos cambiar esto de 100 a 32. Hit aplícate, y ahí tienes. Ya tenemos los azulejos lo suficientemente grandes. También podemos cambiar el modo de filtro para apuntar sin filtro. Y esto debería hacer que nuestros azulejos sean un poco más nítidos. Vale, genial, Así que ahora que sabemos usar la pintura, lo
siguiente para aprender a usar la caja llena de pintura. Y esto nos permite crear cajas en nuestro juego rápidamente. Entonces como puedes ver, podemos pintar múltiples bloques muy rápidamente. Está bien, genial. A continuación tenemos el taburete. Nunca he usado esta herramienta. Es un poco confuso. Y tenemos el borrador, que es sumamente importante. Está bien, genial. Entonces ahora vamos a crear sólo un pequeño ejemplo sólo para probar un par de cosas. Entonces voy a crear un pequeño camino aquí dentro. Entonces tenemos que añadir el pasto encima. Entonces como puedes ver, este es el bloque que podemos usar para dibujar pasto. Por lo que dibujamos encima de ella justo aquí. Ahí vamos. Dibujamos un poco de hierba debajo de ella. Y digamos por ejemplo, queremos hacer algún tipo de curva. Entonces vamos a salvar el camino va por aquí. Entonces, ¿cómo vamos a asegurarnos de que se vea auténtico? Bueno, antes que nada, agreguemos un pasto aquí. Añadamos el pasto a la derecha. Y A la izquierda. Pero ¿qué vamos a sumar y este bloque, o en este bloque? Bueno, se puede ver que tenemos éste por aquí. Entonces ahí lo tienes. Se puede ver que se curva de forma natural. Pero, ¿qué pasa con éste? No podemos usar ni este, ni así ningún otro. Bueno, si bajamos aquí en nuestra paleta de azulejos, podemos ver que tenemos, por ejemplo, este tipo de pasto. Y si agregamos aquí, allá vamos. Tenemos una curva realmente bonita hacia arriba. Por lo que esto tardará un poco de tiempo en entenderlo, pero una vez que lo cojas, se volverá muy fácil. Entonces por ejemplo, si quieres crear un montón de suciedad, agregamos este tipo de bloqueo al pasto y luego llenamos todo aquí dentro. Entonces ahora tenemos un camino de terracería o ADR, sólo tierra en el suelo. De acuerdo, así que lo siguiente es, digamos que queremos agregar estos sacos de papa para que podamos elegir múltiples bloques y podamos empezar a pintarlos. Pero obviamente hay algo mal. El fondo de estos sacos de patata es transparente, por lo que como puedes ver, está pintando sobre nuestros fondos. ¿ Qué vamos a hacer al respecto? Bueno, podemos crear un segundo mapa de archivos. Entonces si entramos a la cuadrícula, hacemos clic con el botón derecho y vamos al mapa de teselas 2D rectangular. Y llamemos a esto los objetos. Entonces ahora tenemos un segundo mapa de teselas activo aquí, que van a ser los objetos. Siempre debes asegurarte en qué mapa de teselas activo estás trabajando. Entonces voy a borrar el sexo por ahora. Voy a sumar los respaldos. Esta no es la suciedad que estamos buscando. Entonces vamos a añadir esta suciedad de nuevo aquí. Y ahora tenemos que añadir el saxo. Entonces en lugar de fondo, iremos a los objetos, seleccionaremos las bolsas. Y ahora notarás que podemos pintar las bolsas sin tener ningún problema ni inconsistencias en nuestro mundo. Y solo para asegurarnos de que los objetos estén siempre terminados, el fondo, irá a los objetos, elegirá la capa de fondo como capa de clasificación, y escribiremos una. Y aquí también voy a ir al fondo. Nos aseguraremos de que sea un fondo en la capa de clasificación y su orden y hay 0. Guardemos eso. Y ahora puedes ver cómo podemos crear nuestros archivos. Ahora, vamos a probar cómo funciona este mundo para nuestro jugador. Entonces si volvemos a nuestra escena anterior al pueblo uno o al pueblo regular, vamos a seguir adelante y el prefabricado, nuestro jugador. Entonces ahora tenemos un jugador como prefabricado y volveremos a entrar en escena. Se va a quitar las cámaras principales y vamos a sumar nuestras propias cámaras. Por lo que estas son las cámaras virtuales con una lata de seguimiento y vamos a sumar un jugador. Entonces ahora cuando ahorramos, ejecutamos el juego. Se puede ver que podemos movernos con nuestro jugador y tenemos un campamento de otoño. Genial. Por supuesto estaremos ampliando nuestro juego más adelante o ampliando el mapa, haciéndolo mejor. Pero por ahora necesitamos hacer algo muy importante. Y eso se asegura de que nuestro jugador interactúe con estas bolsas y no sólo se mueva a través de ellas. Y podemos seguir agregando colisionadores. Tenemos una manera mucho mejor. Entonces, ¿cómo vamos a hacer esto? Bueno, te voy a emitir un reto. Por lo que agregando colisionadores a las baldosas sólidas. Por lo tanto, agrega un colisionador de mapa de teselas, dos objetos sólidos. Por lo que el mapa de teselas de objetos que tenemos aquí mismo, necesitarás agregarle un colisionador. Entonces necesitarás agregar un colisionador compuesto. Te explicaré qué es eso más adelante. Tendrás que añadir un cuerpo rígido 2D y ejecutar el juego y notar cómo todo funciona perfectamente bien. Así que pausa el video ahora mismo y ve a hacer el reto. Oh, bien, bienvenido de nuevo. Entonces vamos a los objetos. Y notarás que estos son los objetos aquí mismo. Vamos a agregar un componente y va a ser un colisionador de mapa de teselas 2D puede ver ahora mismo, ahí tienes. Se puede ver que las bolsas de aquí mismo tienen un colisionador sobre ellas. Y por ejemplo, digamos que aquí queremos añadir un poco de agua. Y va a ser bajo objetos porque no queremos estar moviéndonos por el agua. Así que voy a añadir un poco de agua aquí mismo, y ahí tienes. Por lo que ahora cuando corremos nuestro juego, se
puede ver que ya no podemos movernos al agua ni el fin de semana ir por las espaldas. Está bien, genial. Entonces ahora esto funciona perfectamente bien, pero hay un ligero problema. Como pueden ver aquí mismo, tenemos madereros médicos en este cuerpo de agua. Y esto ocupa en mucha memoria y nuestra ganancia. Entonces lo que podemos hacer es agregar un, ¿dónde está el colisionador compuesto? Y ya verás qué pasa cuando añadimos un colisionador compuesto 2D. Se puede ver en este momento que se ha agregado un 2D de cuerpo rígido y un mapa completo, si hacemos clic en el usado por compuesto, observe lo que sucede con los archivos o los colisionadores en todos estos estilos. Ahí vamos. Entonces ahora en lugar de tener 40 colisionadores, tenemos un solo colisionador que es compuesto sobre todas las bolsas o me refiero a todo el cuerpo de agua. Entonces otra vez, si ejecutamos el código, te darás cuenta de que porque hemos agregado un cuerpo rígido y esto es lo que quise decir cuando te dije que todo no debería estar funcionando perfectamente bien. Esto no está funcionando porque el cuerpo está cayendo, porque su dinámica o vamos a cambiarlo a cinemático. Ejecuta el juego. Y ahora todo debería estar funcionando completamente bien. Tan muy agradable. Como ya he dicho, no
es muy complicado. Es más fácil de lo que podrías pensar siempre que quieras estar dibujando tus azulejos, te acostumbrarás a ello. Asegúrate de estar siempre en el mapa activo correcto. Así que asegúrate de comprometer tus cambios. Crea un mapa que quieras ver alguna vez mapeado que quieras usando las fichas que te he proporcionado o cualquier prueba que hayas encontrado en arte de juego abierto u otros sitios web. Will eso dicho en el siguiente video, tendré uno preparado que podemos usar y nos vemos entonces.
27. Mantener un jugador dentro del mapa: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, vamos a primero que nada a atar nuestras cámaras. Entonces como puedes ver, la cámara ya no sale de la escena del juego. Y no sólo eso, también sujetamos la posición del jugador. Entonces como pueden ver, ya no puede salir fuera del mapa que hemos creado. Entonces, no perdamos más tiempo y empecemos. O K. Así que actualmente podemos movernos y nuestro nuevo crear un mapa de tesela. Pero el problema es que el jugador sale del mapa y la cámara lo sigue ahí. Como pueden ver, podemos caminar fuera del mapa y ver el fondo azul aquí dentro y no queremos eso. Antes de hacer eso, solo quería mostrarte algo que hice. He agregado un conjunto de tesela extra aquí que es el fondo de los objetos. Y se puede ver que está en el fondo de la capa de clasificación y ordenar la Capa 2 sin ningún colisionador. Y eso es para los objetos de fondo. Entonces me refiero al fondo sobre el objeto. Entonces, por ejemplo, quería dibujar un poco de la madera en el agua y pernos en el agua. Por lo que he agregado estos objetos de fondo solo para eso, o fondo en objetos. También me aseguré de que pueda caminar sobre la almohadilla justo aquí. De acuerdo, así que sigamos. ¿ Cómo vamos a, en primer lugar,
asegurarnos de que la cámara no salga de los límites. Bueno, ya sabes que necesitamos agregar un colisionador de polígonos. Por lo que vamos a añadir al colisionador de polígonos de fondo 2D. Déjame solo arreglar esto muy rápido. Entonces editaremos el polígono. Ahí vas. Pon el borde aquí y aparece el borde. Un par de borde. Y un filo aquí abajo. Vamos a guardar que se abrirá la cámara virtual. ¿ Y dónde está el confinado? Aquí mismo hay un confinamiento. Arrástrelo, guarden eso, y ahí van. Ahora tenemos un combinador. Entonces si nuestro jugador arras, así nos olvidamos de asegurarnos de que esta capa poligonal esté en la capa de fondo y no interactúe con el jugador. Nuevamente, ejecutamos el código y podemos ver que la cámara ya no sale de límites, pero el jugador todavía puede alejarse de nuestra escena. Entonces, ¿cómo vamos a arreglar esto? Bueno, tendremos que crear una forma para que el jugador sepa dónde están los límites que puede caminar por encima r Así que abriremos el guión y el guión del jugador necesitará un par de variables. Por lo que necesitaremos un vector privado 3 porque necesitamos la posición del borde inferior izquierdo de la pantalla. Y también necesitaremos un borde superior derecho. Tan borde superior derecho. De acuerdo, entonces ahora tendremos ambos bordes del mapa disponibles para el jugador. ¿ Cómo vamos a conseguir realmente esos? Por lo que necesitaremos obtener acceso al mapa de tesela en el que estamos trabajando. Por lo que para poder acceder al mapa de teselas, tendremos que estar usando el motor Unity. Mapas de teselas de puntos. Ahí vamos. Guardemos eso. Ahora. Lo siguiente que tendremos que hacer es crear una variable aquí, que va a ser un campo serializado para hacer referencia al mapa de teselas. Y sólo lo llamaremos el mapa de teselas. Para mantener todo muy sencillo. A lo mejor vamos a mantener así el mapa de tesela, guarde eso. Y ahora tendremos que asegurarnos de que asignamos el mapa de tesela correcto. Por lo que necesitaremos los antecedentes para nuestro jugador. Por lo que de vuelta en Unity, espere a estos crypto compilar. Acude al jugador. ¿ Y dónde está el guión? Ahí vas. Contamos con un mapa de azulejo. Arrastre el fondo, y aquí, guarde eso de nuevo en nuestro guión. Entonces, ¿qué vamos a hacer? Bueno, antes que nada, necesitamos los bordes. ¿ Cómo vamos a conseguir los bordes? Después de inicializar aquí a nuestro jugador, vamos a seguir adelante y llamar al borde inferior izquierdo. Y va a ser el mapa de azulejo punto límites locales que los hombres. Entonces déjame volver atrás y probar esto una vez más para que podamos leer el punto mínimo de la caja. Esto siempre es igual al centro extendido. Por lo que esto nos dará los límites inferiores. Es la parte inferior izquierda. Ahora probaremos el borde superior derecho, y va a ser el mapa de teselas punto límites locales. Ya lo has adivinado al máximo, y este es el punto máximo de la caja. De acuerdo, entonces ahora tenemos el borde superior, el borde inferior, y podemos usar esos para determinar por dónde puede caminar el jugador. Eso haremos en la actualización aquí mismo. Entonces vamos a primero que nada, acceder al transporte de la posición del jugador. Y vamos a usar un método que se llama déjame solo crear el nuevo vector 3. Por lo que aquí es donde el jugador podrá caminar. Pero, ¿cómo vamos a asegurarnos de que la posición del jugador nunca salga de los límites. Por lo que en la actualización, hacemos un seguimiento de la posición del jugador. Entonces mientras camina por ahí, digamos, y notamos que su posición está al borde de donde podemos caminar. Queremos asegurarnos de que nunca podrá superar este punto aquí mismo, o este punto aquí mismo o allá arriba. Entonces, ¿cómo vamos a hacer esto? Hay un método muy inteligente que se llama la pinza de punto Math. Y se puede ver lo que hace. Devuelve un flotador. Y un flotador es el resultado entre el valor mínimo y el máximo. Por lo que pinza da un valor entre el mínimo dado y el máximo dado. Entonces lo que podemos hacer es asegurarnos de que la posición del jugador nunca exceda de cierta variable sujeta, que será del mínimo al máximo. Y puedes leer más sobre pinza y cómo funciona. Entonces este es el valor que proporcionamos. Va a ser la posición del jugador. El mínimo será el borde inferior izquierdo, y el máximo será el borde superior derecho. Entonces sigamos adelante y tratemos de implementar esto en nuestro juego. Entonces, en primer lugar, porque esto va a ser líneas muy largas, vamos a golpear Enter y empezar a escribir aquí. Entonces porque estamos tomando nuestra posición de transformación de jugadores, es un vector tres como hemos aprendido porque estamos trabajando en el eje x, y, y z. Entonces lo primero que necesitamos hacer es
sujetar la posición de transformación del jugador. Y veamos cómo podemos realmente escribir matemáticas después de la pinza. Se puede ver que necesitamos escribir primero de todo f pinza de punto y luego agregar los valores. Entonces vamos a escribir matemática F pinza de punto, y abriremos los paréntesis. ¿ Cuál es el valor que queremos aportar? Va a ser el punto de posición de transformación x. y cuáles son, cuál es el valor mínimo va a ser el punto de borde izquierdo inferior x. Y cuál es el valor máximo va a ser el borde superior derecho, la x. ahí vamos y tenemos que añadir una coma aquí. Ahora lo siguiente que hay que hacer es continuar con la posición y y la z. Y va a ser parte de tu reto. Por lo que tu reto es terminar el resto de las abrazaderas. Sujete la posición del jugador en la y y también en la cremallera. Por lo que este es un reto bastante fácil. Pausa el video ahora mismo. Si lo deseas, puedes leer más sobre pinzas y perros de unidad e ir al reto. De acuerdo, bienvenido de nuevo. Entonces solo voy a seguir adelante y duplicar esto dos veces. Voy a quitar la última coma. Y en lugar de posición punto x, voy a usar el punto de posición Y y en lugar de posición x cerca de deposición punto z Y por supuesto tenemos que cambiar esto aquí también. Entonces punto y. Pero y y la z, o z o como lo llames, asegúrate de guardar todo eso. Y si, déjame volver a poner esto aquí,
la forma en que lo hice es usando el turno de tabulación para destapar, pero esto parece
más organizado que si pusiéramos todo en una sola línea y tuviéramos una línea realmente larga. De acuerdo, así que con eso hecho, sigamos adelante y corremos nuestro juego y veamos si eso funciona. Entonces vamos a guardar todo eso, ejecutar el juego. Y ahora mientras nuestro jugador camina, verás que cuando llegue al borde, ahí vas. Ya no puede caminar por ahí, pero todavía hay un pequeño problema que estamos usando. Por lo que como puedes ver, el jugador puede salir un poco de límites. Y esto no es muy agradable, sobre todo cuando está abajo en la parte inferior. Queremos una forma de poder asegurarnos de que nuestro jugador siga mostrando en nuestra ventana de juego. Entonces de la forma en que hacemos eso, solo
puedo detener nuestro juego de nuevo en nuestro código aquí dentro y empezar donde dijimos el borde inferior izquierdo y el borde inferior derecho. Vamos a añadir algo a esto. Entonces no sólo va a ser el límite superior, quiero decir, 40 borde inferior izquierdo o el límite inferior. Nosotros lo vamos a aumentar sólo un poquito. Entonces crearé un nuevo vector 3, y solo agregaremos 0.50.5 f y 0 F en el set. Y haremos lo mismo. Déjame copiar esto y ponerlo aquí. Entonces ahí lo tienes. Eso lo ahorraremos. Entonces lo que pasa ahora con, fin de asignar el borde superior derecho llevará el mapa de teselas al límite local máximo. Obtenemos el límite superior y sólo lo disminuimos un poco. Y esto de aquí debe ser menos y menos. Por lo que lo disminuimos solo un poquito para que el jugador no golpee el borde real. Golpea un filo aquí arriba que apenas está un poquito abajo. De acuerdo, entonces ahora podemos seguir adelante y ejecutar nuestro código y ver qué pasa. Entonces a medida que nuestro jugador camina, debería empezar. Ah, ahí tienes. Por lo que se puede ver que el jugador se detiene antes de que realmente pase por él. ¿ Y por qué estaba pasando? puede ver que es porque la posición está aquí dentro. Por lo que este es el centro de la posición. Entonces ahora esta pequeña distancia aquí es la 0.5 que hemos agregado con el vector a eso. Golpe esto en el borde inferior. Y ahí tienes. Déjame volver al jugador contra jugador,
jugador y la posición. Ahí vas. Por lo que se puede ver que el jugador sigue mostrando. Podríamos necesitar añadir un poco más aquí. Probemos con la parte superior. Y si vamos a la cima, sí, ahí vas. Creo que necesitamos sumar sólo un poquito a la parte superior y la inferior. Entonces intenta arreglar esto. A lo mejor hacer este 0.8 por aquí 0.8. Guardemos eso. Prueba esto de nuevo en R1, mueve a nuestro jugador al borde. puede ver que es lo mismo hasta el fondo. Necesita un poco más a la cima. Sí. El top creo que es lo suficientemente bueno. A lo mejor haremos este. Voy a parar el video ahora mismo. Y espero que intentes agregar tus propios bordes en el siguiente video, vamos a estar creando un gestor de nivel y aprendiendo sobre métodos en Unity. Entonces te veré ahí. Asegúrate de comprometer tus cambios.
28. Crear un segundo nivel: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, vamos a estar creando un segundo mapa de archivos. Entonces como puedes ver aquí, hemos creado este mapa, hemos agregado la cuadrícula, hemos agregado un área, salida y así sucesivamente y así sucesivamente. Ahora bien, no voy a hacer todo frente a ustedes porque los pasos que vamos
a hacer son extremadamente básicos y no hay nada nuevo que aprender. Lo que necesitarás hacer es antes que nada, necesitarás agregar el sprite de montaña que te he proporcionado. Tendrás que ponerlo en 32 o depende de tus sprites. Tendrás que asegurarte de que el modo sprite sea múltiple. Tendrás que aplicar eso y asegurarte de que el modo de filtro sea punto más filtro. Y luego necesitarás entrar al Sprite Editor. Tendrás que rebanar todos estos. Y si estás usando el mismo mapa de teselas que yo, necesitas usar. Creo que 32 por 32 es la forma en que los rebanas. Entonces, cuando tengas todo en rodajas, necesitarás agregarlos a tu paleta de azulejos aquí mismo. Tendrás que crear una nueva paleta de mosaicos y agregar todos los mosaicos y aquí. Entonces con eso hecho, lo siguiente que tendrás que hacer, y este es un paso muy importante, es que necesitas entrar a la visita en el pueblo también. Guarda eso. Sí. Manténgase a salvo. Necesitarás Prefab la grilla. ¿ Y por qué es eso? Porque si ves aquí, la cuadrícula tiene el fondo, los objetos, el fondo sobre los objetos. Y tenemos los colisionadores de polígonos y los colisionadores de mapa de teselas y así sucesivamente. Y no queremos seguir haciendo eso. Pero la única diferencia es que necesitas desempacar completamente la cuadrícula. Entonces, ¿qué quiero decir con eso? Digamos que estamos en las montañas dos, queremos empezar nuestro juego. Pero cuando agregamos la cuadrícula, por ejemplo, si entramos a las Prefabs y agregamos nuestra cuadrícula, notarás que es la misma que la anterior. Y siempre que queramos hacer cambios al mismo, habrá un ligero problema. No queremos eso. El modo en que lo desempaquetamos es hacer clic derecho en la cuadrícula, entramos en las Prefabs y seleccionamos desempacar completamente. Por lo que ahora podremos hacer cambios a esta cuadrícula sin tener ningún tipo de errores. Y este es un paso muy importante. Así que asegúrate de hacer clic con el botón derecho. Entonces ahora ya no lo es. Por lo que haces clic con el botón derecho, vas a prefab y desempaquetas completamente la cuadrícula y luego podrás seguir trabajando. Otra vez. Otra cosa de la que tenemos que asegurarnos es la, al hacer click en el fondo, notarás que los bordes aquí dentro serán especie de todo el lugar. Entonces necesitarás entrar en el renderizador del mapa de teselas, me refiero al mapa de teselas y necesitarás comprimir el
rebote del mapa de teselas después de terminar de colocar todas tus pilas. Entonces eso es básicamente todo. También necesitarás cambiar el colisionador de polígonos, asegúrate de que esté configurado correctamente. Tendrás que añadir el confinado aquí mismo. Así que arrastre y el fondo más adelante encontrará una manera de hacerlo más fácilmente. Guarda eso. Y eso es básicamente todo. Eso es todo lo que necesitas hacer para crear un mapa de segunda pila en la cuadrícula en paquete por completo y empezar a pintar. Entonces con todo eso dicho, te
voy a emitir un reto ya que eso es crear una segunda o una segunda escena o lo que quieras llamar. Así que crea los activos de teselas a partir de los sprites, Prefab la cuadrícula, crea una nueva escena en la cuadrícula en la jerarquía, y desempaqueta la cuadrícula por completo, que
eso no cree tu nivel. Así que pausa el video ahora mismo, ve a crear tu nivel. Y te veré en el siguiente video donde crearemos un gestor de nivel.
29. Gerente de nivel: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. En este video, vamos a estar creando un gestor de nivel aprenderá lo que significa cuando queremos delegar scripts, donde queremos crear diferentes scripts para diferentes cosas que hacer. También aprenderemos sobre métodos y métodos públicos y cómo scripts pueden comunicarse entre sí aunque tengan variables privadas. Entonces, no perdamos más tiempo y empecemos. Ah, está bien. Por lo que actualmente podemos ver que cuando ejecutamos nuestro juego, todo está funcionando bien y podemos pasar de un nivel a otro. Ahora tenemos un pequeño problema de que la cámara no
está siguiendo al jugador cuando va al siguiente nivel. Pero lo arreglaremos más adelante cuando aprendamos mientras bucles. Por ahora, centrémonos en crear un gestor de nivel. ¿ Por qué necesitamos un gestor de nivel? Bueno, a la hora de programar y crear juegos, específicamente, siempre necesitas encontrar la forma de delegar tu código. Por lo que no queremos que nuestro jugador siempre esté haciendo un seguimiento de todo. Queremos que nuestro jugador tenga que lidiar con encontrar los límites de nuestro nivel. Entonces lo que haremos es crear un gestor de nivel que hará eso para el jugador y luego enviaremos la información de los bordes al jugador usando métodos. Entonces, primero que nada creemos un gestor de nivel. Por lo que en la jerarquía se creará un objeto de juego vacío. Lo llamaremos el manager de nivel, y restableceremos su posición 2 000, 000 por todos lados. A continuación, vamos a crear un guión. Por lo que en los guiones hará clic con el botón derecho crear un script C-sharp. Se va a llamar el nivel. Y sin ningún espacio, gerente golpeó Enter. Espere a que estos compilen criptografía. Lo agregaremos al gestor de nivel y sigamos adelante y sí preferimos. Pero antes de que nos olvidemos, porque estaremos necesitando el gestor de nivel y todos nuestros guiones. Ahora, abramos el guión y veamos qué vamos a hacer aquí. Por lo que el guión será responsable de determinar cuáles son los bordes de nuestro nivel. Entonces primero, claro, tendremos que añadir un fichero maps. Por lo que esto nos dará la capacidad de acceder a mapas de mosaico. A continuación, necesitaremos alrededor de las mismas variables que tenemos y el jugador. Por lo que sólo copiaremos estos y los pegaremos aquí en el jugador. Y déjame solo mover esto aquí, Enter, y ahí vas. Por lo que ahora tenemos una referencia al mapa de teselas, al borde inferior izquierdo y al borde superior derecho. Pero podrías estar diciéndome ahora mismo, ¿cómo vamos a comunicarnos entre ellos? O incluso antes de eso, déjame simplemente quitarle la carga al jugador. Y acabo de conseguirlos usando Control X. Y los pegaré aquí y el inicio. Entonces, cada vez que empieza el gestor de niveles, obtiene el mapa de teselas que tenemos aquí y establece los límites del mismo. Vale, genial, Así que ahora que hemos terminado con eso, podrías estar preguntándome, Bueno, Michael, cómo va a saber Player cuáles son el borde inferior izquierdo y cuál es el borde superior derecho. Entonces a pesar de que tenemos este privado y tenemos estos aquí también privados, ¿cómo se van a comunicar? Bueno, se comunicarán usando algo llamado método. Permítanme explicar qué métodos son. Entonces al igual que una variable, los métodos también tienen una estructura similar. En primer lugar, tenemos el tipo de acceso. Es la forma en que la accesibilidad de nuestro método. Entonces, ¿podemos acceder únicamente desde el mismo guión? Eso significa que es un privado. Si podemos acceder a ella desde múltiples scripts, eso significa que será un público. A continuación tenemos un tipo de retorno. Entonces al igual que tenemos un tipo variable, también
tenemos para un método, un tipo de retorno, y puede devolver una cadena y un entero, un flotante. Entonces cuando terminemos de calcular las cosas en nuestro método, podemos devolverlas. A continuación tenemos el nombre de nuestro método. Y al igual que
nombramos nuestras variables, también tenemos una forma de nombrar nuestros métodos
haciendo siempre en mayúscula cada palabra del método. Entonces agregando velocidad, la a y la v se capitalizan y
también Nombramos siempre nuestros métodos por lo que hacen. Por lo que agregando velocidad a velocidad. Y por último, una herramienta de métodos muy poderosa es que podemos enviar parámetros y a ellos. Entonces si nosotros, por ejemplo, necesitamos tener dos cosas que hay que calcular, podemos enviarlas en los parámetros y en el otro script, podemos calcularlas. Ya veremos cómo funciona todo eso cuando hagamos un ejemplo. Por lo que de vuelta en nuestro guión aquí dentro, realidad
podemos quitar el mapa de teselas porque no lo vamos a necesitar en el jugador. Y el uso de la biblioteca para guardar un poco de memoria. Entonces vamos a crear un método y el jugador que vamos a poder aceptar el borde inferior izquierdo y el borde superior derecho y ponerlos. Entonces vamos a crear un público porque queremos estar llamándolo desde el gestor de nivel. Nosotros lo vamos a hacer nulo. Y luego lo vamos a llamar el límite establecido. Y este límite establecido va a tomar dos argumentos. El primero va a ser un vector tres, y va a ser la parte inferior izquierda o el borde inferior a establecer. Y otro que va a ser el borde superior a poner. Entonces ahora que tenemos estas variables siendo pasadas, podemos acceder al borde inferior izquierdo de nuestro jugador o a la variable en el jugador de aquí arriba, esta. Y lo vamos a establecer como el borde inferior a establecer. Haremos lo mismo con el borde superior. El borde superior derecho es igual al borde superior a establecer. Genial. Entonces como puedes ver, tenemos un método público que no tiene retorno y se llama límite establecido. Observe cómo se establece, cómo las S y V están ambas en mayúsculas. Tenemos dos argumentos que se están enviando aquí. Y estamos configurando nuestras variables en base los argumentos o los parámetros que se le están enviando. Ahora el siguiente paso es llamar realmente a ese método en level manager. Y te voy a emitir un reto para hacer eso. Por lo que necesitarás llamar a los límites establecidos del método. En primer lugar, ir al script level manager, acceder a la instancia desde el script del jugador, acceder al método, establecer límites y darle los parámetros. lo que siempre que finalmente establezcamos nuestros bordes, usando el gestor de nivel tendrá que llamar
al jugador de método y decirle que estos son bordes. Aquí vas usando los parámetros. Así que pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. ¿ Cómo te pusiste con eso? Entonces, en primer lugar, vamos a acceder a la instancia del jugador. Entonces vamos a llamar al límite establecido. Y aquí dentro tendremos que pasar los dos parámetros. Por lo que el primer parámetro va a ser el borde inferior izquierdo. El segundo parámetro va a ser el borde superior derecho, y eso vamos a guardar. Entonces ahora lo que pasa es cuando ejecutamos el juego y empieza el gestor de nivel, toma el borde inferior o calcula el borde inferior. Calcula el borde superior, llama al jugador, accede a la instancia, establece el límite, que es el método aquí dentro. Por lo que llama al método aquí y establece ambos parámetros. Entonces, ¿qué pasa entonces cuando llamamos a este método, saltamos al guión del jugador. Establecemos el borde inferior izquierdo, el borde superior derecho, y ahora podemos usarlos aquí. Y esto es sólo una pequeña línea que se utilizan
con el fin de asegurarse de que todo funcionaba correctamente, se ahorrará todo eso. Y ahora entremos a nuestro juego y veamos si eso realmente funciona. Por lo que el manager de nivel debe tener un lugar para que sumemos el fondo. Lo pondremos aquí, lo salvaremos. A ver si eso funciona. Entonces ejecutamos el juego y ahí tienes. Sí, ahí tienes. Podemos caminar por aquí. Ahora, entremos a la segunda escena, a las montañas. Añadamos un gestor de nivel aquí también. Y vamos a darle el trasfondo. Dije eso guarde eso. Si ejecutamos el juego. A ver si podemos salir. No, ahí tienes. No caminamos por todo. ¿ Qué tan guay es eso? Y un, otra cosa muy importante a saber es que si
guardamos estas variables en el jugador y el jugador no se destruye, los valores del mapa no se cambian. Por lo que es muy importante tener un manager de nivel separado del jugador. Ahora, lo último que necesitamos probar es si vamos de pueblo a, a las montañas, Vamos a ver. Cuando vayamos. Sí, podemos ver que no tenemos la cámara siguiendo al jugador. Vamos a arreglar eso, como ya he dicho, usando el bucle while cuando los aprendamos. Pero como se puede ver, no
podemos cruzar los bordes, ni en el borde arriba, ni a la izquierda, y ni abajo en el fondo. Entonces con eso hecho, espero que hayan disfrutado. En el siguiente video, vamos a estar aprendiendo sobre Canvas en Unity. Te veré entonces. Asegúrate de comprometer tus cambios.
30. Lienzo en la unidad: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, vamos a estar creando una imagen que se desvanece. Entonces como puedes ver en este momento, tenemos algo llamado lienzo con una imagen dentro de él. Y cuando golpeemos el juego, notarás que lentamente nos desvanecemos y ahora no es perfecto, pero al menos de alguna manera funciona. No te preocupes por ello. Estaremos arreglando todo eso. Entonces, no perdamos más tiempo y empecemos. Ah, así que actualmente, cuando ejecutamos nuestro juego, cuando vamos al siguiente nivel, puede ver que es instantáneo y es muy rápido. Y honestamente, no queremos que sea así. No queremos que sea tan rápido. Lo que sí queremos es tener algún tipo de desvanecimiento dentro y fuera. Y la forma en que hacemos eso es creando una imagen, una gran imagen negra aquí dentro que cubrirá todo
el espacio de nuestro nivel o todo el espacio de la cámara. Y cuando pasemos al siguiente nivel, queremos que esa imagen aparezca y luego desaparezca. Entonces, empecemos. En primer lugar, necesitamos crear una imagen. Entonces si hacemos clic con el botón derecho en la jerarquía justo aquí, vaya a la interfaz de usuario. Podemos seguir adelante y crear una imagen, pulsa Enter. Entonces como puedes ver, hemos creado algo llamado lienzo y una imagen. Y notarás que esta imagen es una enorme. Y si hacemos doble clic en el lienzo, notarás que el lienzo es aún más grande. Entonces podrías estar pensando, Bueno, ¿por qué son tan grandes? Pero no se engañen. En realidad son extremadamente pequeños. Porque si hacemos clic en la imagen y la movemos, verás que es muy pequeña en comparación con nuestro jugador. Si bien el jugador y nosotros miramos en la escena es extremadamente pequeño en comparación con la imagen. Entonces, ¿qué da, por qué tenemos esta extraña escala entre el lienzo y el juego? Esta es una manera de que la unidad sepa cómo funcionan las cosas. Preferían mantener todo en la interfaz de usuario grande para que podamos controlarlo fácilmente. Y mientras tanto, solo
afecta a la cámara y a todo lo que está delante. Entonces no te preocupes por eso. Ahora lo que vamos a hacer es que vamos a usar esta imagen y estirarla para que cubra todo el lienzo. Se puede ver que cuanto más grande lo hagamos, más grande y más espacio se llena. Ahora podemos llevar esto a los bordes, pero déjame enseñarte de una manera muy fresca. Si miramos justo aquí a la derecha, hay algo llamado el punto de anclaje. Entonces si hacemos click aquí,
puedes ver que de la forma en que podemos anclarlo, notarás estas líneas delgadas blancas. Y no voy a entrar demasiado en eso porque si quiero explicar todo en la UI, puede tomar un curso sobre sí mismo, pero sólo aprenderemos lo básico si mantenemos presionado Alt. Y podemos ver que todo cambia cuando mantenemos presionada Alt, hacemos clic en el borde inferior derecho. Verás que de inmediato pasa todo. Entonces esta es una forma muy cool e inteligente de hacer las cosas. Siguiente paso, haremos click en la imagen y cambiaremos el color. Por lo que aquí puedes ver que tenemos color de imagen. Daremos click en el color y lo haremos completamente negro. Está bien, bien. Entonces ahora tenemos una imagen negra frente nuestra pantalla que no desaparece y tendrá que, por
supuesto, cambiar eso. ¿ Cómo vamos a hacer esto? Entonces lo primero es que necesitamos crear una animación que
lleve esto de completamente negro a completamente transparente. Entonces, ¿cómo vamos a hacer esto? Si entramos en la imagen, agrega un componente. Podemos añadir un grupo de lona. Y lo que hace este grupo de lona es que notarás que tiene un alfa. Y aquí, ahora necesitamos apagar el bloque, volver a lanzar y apagar lo interactable. Y se puede ver que el alfa está en uno. Pero si lo arrastramos hacia abajo, se
puede ver que a 0 es completamente transparente y ese, es completamente no transparente. Supongo que así es como lo llamas. Entonces vamos a manipular esto usando animaciones con el fin de desvanecerlo y luego apagarlo. Entonces, empecemos. Vamos a crear una animación. Entonces haremos clic derecho en la imagen o lo haremos en realidad mientras que la animación, hemos perdido. No se preocupe. Iremos a la animación en la pestaña de animación. Y solo, déjame mover esto, pero ponlo justo aquí al lado para ganar, seleccionar la imagen, crear una animación. Y a dónde debemos ir con esto entraremos en las animaciones, desvanecimiento de
imagen y archivo OVA lateral. Y vamos a llamar a esto el subrayado de desvanecimiento. Y así se termina con el desvanecimiento. Y crearemos otra animación. Entonces entraremos aquí, crearemos un nuevo clip. Y este es el subrayado de desvanecimiento detenido. Eso lo ahorraremos. Entonces ahora tenemos dos animaciones. ¿ Cómo funciona el inicio de desvanecimiento y cómo podemos realmente grabarlo aquí? Por lo que en primer lugar, el desvanecimiento inicia, va de uno a 0. Por lo que empezamos a una. Cuando llegamos a la marca de 1 segundo, queríamos ir a 0. Entonces si pinchamos aquí, podemos darle a este pequeño botón rojo de grabación. Podemos ir al final y podemos poner esto en 0. Entonces, ¿ahora qué pasa si ejecutamos nuestro juego? puede ver que va de completamente negro a completamente transparente. Después volvemos a hacer clic en este botón rojo y se va. A continuación, vamos a entrar al final de desvanecimiento y vamos a hacer todo lo contrario. Por lo que empezamos a 0, necesitamos presionar el botón de grabación. Vamos a la marca de 1 segundo y vamos a ponerla en una. Guarda eso, quita el botón de grabación. Y ahora cuando lleguemos al juego, notarás que pasa de ser completamente transparente a completamente negro. Está bien, genial. Ahora que hemos configurado nuestras animaciones, lo
siguiente obvio que hay que hacer es seguir adelante y configurar correctamente el animador. Y para eso, te voy a emitir un reto. Y tu reto va a ser hacer fe la imagen. Así que entra en el animador y dijo The Fate start como el estado predeterminado, luego crea una transición para desvanecerse y
no debe tener tiempo de salida y una duración de transición de 0. Crea un parámetro de disparador llamado Fade start y configúrelo como la condición en la transición. Así que pausa el video ahora mismo y ve a configurar el animador. De acuerdo, bienvenido de nuevo. ¿ Cómo conseguiste todo eso? Entonces, en primer lugar, tendremos que establecer el inicio de fe ya la capa predeterminada o el estado predeterminado creará luego una transición al fundido. Y vamos a eliminar cualquier tiempo de salida y vamos a fijar la duración a 0. Eso lo ahorraremos. Entonces tendremos que crear un parámetro y va a ser un disparador. Y eso se va a llamar empezar a desvanecerse, pulsa Enter. Y con la condición vamos a empezar a desvanecerse cuando lo
hagamos, vamos al siguiente nivel. Entonces ahora que tenemos todo configurado, el siguiente paso es activar realmente este parámetro, y lo haremos en el siguiente video usando algo muy, muy importante llamado coroutines. Te veré entonces.
31. Coroutines 101: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, hemos suspendido el tiempo hasta cargar la siguiente escena. Entonces como puedes ver, ya no tenemos imágenes negras parpadeantes, solo una imagen negra que se desvanece. Entonces cuando vamos al siguiente nivel, se desvanece y luego se desvanece de nuevo a transparente. ¿ Qué tan guay es eso? Déjame mostrarte cómo sucede eso en realidad mientras miras la escena. Ahí vas. Se puede ver cuando vamos al siguiente nivel aquí que se tarda sólo un poco de tiempo. Ahí vas. Ya no es instantáneo. Espera 1 segundo. Es una forma muy guay de hacer las cosas, así que no perdamos más tiempo. Empecemos. Oh, bien, Entonces lo que vamos a hacer es que vamos a acceder
al animador en la imagen y vamos a empezar las animaciones desde ahí. Pero queremos un guión. Entonces, ¿qué guiones deberían estar controlando todo eso? Creo que debería ser el guión en un lienzo porque vamos a usar este Canvas para muchas cosas. Y antes de que me olvide ahí, algo que tenemos que hacer y que está aquí en el escalador de lona. Necesitamos escalar con tamaño de pantalla. Y lo vamos a fijar a 1920 para 1080. Entonces esta es la ATP y esta pantallas regulares suelen usar para encajar exactamente con nosotros aquí mismo para que no cambie de forma a medida que avanzamos. Sigamos adelante. Ahora vamos a crear un nuevo guión aquí. Por lo que un nuevo script C-sharp va a ser el gestor de menús. Esperemos a que se compile y se lo vamos a dar al lienzo. Entonces ahora en el Lienzo, Vamos a cerrar todo esto hacia abajo. Tenemos el gestor de menús, no el encargado de nivel. Adelante y abramos esto. Ahora. Lo primero que necesitamos es una referencia a la imagen. Entonces vamos a crear un campo serializado de tipo imagen. Pero desafortunadamente, no podemos usar la imagen a menos que dijéramos la UI de punto del motor Unity. Por lo que ahora tendremos la capacidad de crear una variable de imagen. Espero que eso no fuera demasiado rápido. Lo siguiente que vamos a hacer es llamar aquí a esta imagen D al destino. Ahora, lo que vamos a hacer es que realmente vamos a acceder al componente que está en la imagen. Y para eso, te voy a emitir un reto. Y tu reto va a ser conseguir el componente animador. Por lo tanto, crear un método de imagen de desvanecimiento actúa como el componente del animador en esa imagen. Establece el gatillo para comenzar a desvanecerse. Y te daré un par de manos si quieres hacer el reto por tu cuenta y no necesitas ayuda alguna. Pausa el video ahora mismo y ve al reto. De no ser así. De acuerdo, bienvenido de nuevo. Entonces sigamos adelante y creemos el método aquí dentro. No creo que necesitemos el inicio y la actualización por ahora, solo por ahora, si alguna vez los
necesitamos, los crearemos. Entonces vamos a crear una imagen de desvanecimiento del vacío público. Y aquí dentro, ya tenemos el acceso al destino de imagen. Vamos a conseguir el componente, que es el animador. Y ese es el componente en la imagen para desvanecerse. Y entonces vamos a poner el gatillo. Ahora. Vamos a sumar un punto justo aquí y vamos a poner gatillo. Y debido a que necesitamos una referencia de cuerda, siempre
necesitamos ir y copiarla. Entonces elige la imagen, ve al animador, empieza a desvanecerse. Copiar eso. De vuelta aquí, pegamos y lo guardamos. Entonces ahora el siguiente reto es, ¿dónde deberíamos estar llamando a esta imagen de fe? Bueno, ¿dónde queremos llamarlo? Creo que el mejor lugar para llamarlo es en la zona salida bien, es el lugar que necesitamos llamarlo. Por lo que en la salida de zona, cuando entra el jugador, dijimos la transición, empezamos a cargar la siguiente escena. Pero antes de hacer eso, vamos a seguir adelante y llamar a la instancia de punto del gestor de menús. De acuerdo, no tenemos una instancia, así que sigamos adelante y creemos una instancia. Entonces como vas a ser una estática pública si aún recuerdas cómo creamos instancias. Entonces administrador de menús tipo estático público, y va a ser la instancia, instancia. Es así como escribes instancia. Y porque hemos borrado el inicio. Vamos a volver a crear el inicio. A ver lo fácil que fue eso. Instancia es igual a esto. Y no creo que necesitemos convertirlo en un patrón de singleton por ahora. Más adelante quizá necesitemos hacerlo. Por lo que ahora de vuelta en la zona, salida establecerá la instancia que destino MH. Entonces ahora cada vez que nuestro jugador entra al colisionador y nos aseguramos de que sea un jugador. Agregamos el nombre de transición. Empezamos a desvanecer la imagen y luego recargar la siguiente escena. Eso lo guardaremos de nuevo en nuestro juego. Corremos y hay un ligero problema que
notarás que nuestra imagen se desvanece pero sigue fallando y lo puedes ver aquí mismo. ¿ Cuál es el problema? ¿ Si hacemos click en él? Si vamos a la animación real aquí en los destinos pensados, notarás que tiene un tiempo de bucle. Por lo que sólo vamos a desmarcar esta casilla, dar clic en Predeterminado y desmarcar esta casilla también. Entonces ahora guardamos eso. Corrimos nuestro juego y nos desvanecemos sólo una vez. Genial. Entonces ahora si caminamos, hay un problema que es que no lo hemos hecho. Si hacemos doble clic aquí y necesitamos empezar a desvanecerse, pero no tenemos referencia a la imagen. Eso es porque en nivel, ¿dónde está en el Lienzo? De acuerdo, en el Lienzo, Ahí tienes. No asignamos la imagen correcta. Ahora cuando lo guardamos, ahora cuando corremos, todo debería estar funcionando bien. Entonces nos desvanecemos. Caminamos al siguiente nivel, y ahí tienes. Saltamos de inmediato al siguiente nivel. ¿ Cuál es el problema aquí? Bueno, otra vez, no tenemos el prefabultado el lienzo. Entonces te estoy llevando paso a paso muy duro a través de esto, pero sin preocupaciones. Es bueno aprender de nuestros errores de vuelta aquí. tanto que nuestro prefabricado, nuestro Lienzo, Ahí vamos, guardamos eso. Probemos esto una vez más. Y siguen siendo un pequeño truco que no está funcionando. Pero ahora nos desvanecemos. Caminamos, y ahí vas. Nos desvanecemos en el siguiente nivel. Pero todavía hay un ligero problema si te has dado cuenta de que nos estamos moviendo instantáneamente al siguiente nivel, estamos viendo hasta el desvanecimiento y nuestra ganancia. Entonces cuando podemos, lo que quiero decir es que nos desvanecemos. Queremos tener solo un segundo solo para que todo vuelva a desvanecerse a negro. Y eso no está pasando porque de inmediato estamos quebrando. ¿ Cómo podemos arreglar esto? Queremos una forma de sólo esperar un par de segundos, tal vez 1 segundo, sólo para desvanecerse y luego desvanecerse en el siguiente nivel, como magia. La forma en que hacemos eso es usar cosas frías. Entonces, ¿qué es una cualidad? Se trata de un método que puede suspender la ejecución de instrucciones hasta que se cumpla cierta condición. Estas suspensiones se conocen como yield. Y nuestro ejemplo estará suspendiendo el tiempo hasta que carguemos la siguiente escena para ver nuestra, esta debería ser nuestra imagen para desvanecerse. Coroutines. Tan solo tómese un momento para leer sobre ellos. Se pueden buscar en ellos. El perro de la unidad, sí recomiendo son un poco complicados la primera vez que empiezas a hacerlos, pero voy a tratar de llevarte paso a paso y hacer todo más fácil. Entonces, no hablemos de coroutines. Vamos a seguir adelante y crearlos. Entonces, ¿dónde deberíamos estar creándolos? Debería ser ¿dónde está? En la zona, salida. Zona, salida. En lugar de cargar inmediatamente la escena cuando el jugador golpee, vamos a usar un Goldie. Por lo que una corutina es de tipo enumerador de ojos. Entonces yo enumerador, vamos a llamar a la escena de carga Goldstein. Y aquí dentro vamos a hacer un par de cosas. Entonces en cuanto entramos en lo que se puede ver que tenemos una línea ardiente porque necesitamos tener un valor de retorno sobre ella. Entonces lo que vamos a hacer es ceder, como les he dicho, tenemos que ceder, tendremos que volver nuevo. Y tenemos un par de condiciones que podemos usar. Uno de ellos es esperar cuatro segundos. Y ahora lo que podemos hacer es darle cierta cantidad de tiempo que necesita
esperar antes de que haga todo debajo y ¿qué quiere hacer? Bueno, quiere seguir adelante y usar al gerente de escena para cargar la escena. Y para llamar a esta co-rutina, vamos a decir inicio coroutine, carga, visto co-rutina. Entonces, ¿qué pasa ahora? Empezamos, entra nuestro jugador, nos aseguramos de que sea un jugador. Establecemos la transición, desvanecemos la imagen, comenzamos un frío en. Todo esto sucede casi al mismo tiempo. Pero cuando empezamos un cortejo, aquí es donde ocurre la magia. Entramos al método. Es un enumerador de ojos. Está esperando un retorno de rendimiento. Por lo que empieza con esta línea. Se lee rendimiento retorno, nuevo, espera cuatro segundos. Por lo que sabe que tiene que esperar 1 segundo antes de ejecutar todo lo demás. Veamos que en acción, si estás un poco confundido, pausa el video, mira esto, asegúrate de entender completamente lo que está pasando. Y sigamos adelante y probemos esto. Entonces ejecutamos nuestro juego. Echemos un vistazo al animador. Caminamos, nos desvanecemos. Nos desvanecemos en el siguiente nivel. ¿ Qué tan guay es eso? Entonces espero que hayas disfrutado si sigues confundido sobre la co-rutina, recomiendo esa zapatilla otra vez. Echa un vistazo al código para ti, luego respira. Piensa en lo que está pasando. Entender cómo funciona el yield, cómo estamos esperando un segundo antes de cargar la escena y cómo la imagen se está desvaneciendo y desvaneciendo. Desde aquí usando nuestro frío, espero que lo disfruten. Y es, este es un video de 10 heck de largo, pero es muy importante. Te veré en el próximo.
32. Sección 5: crear un diálogo UI: Bienvenidos de nuevo a mis compañeros desarrolladores de juegos en este largo y largo video. Pero muy importante, como puedes ver, hemos creado algunos elementos de la interfaz de usuario. Hemos añadido un cuadro de texto aquí mismo, que es un panel. Hemos añadido un pequeño cuadro de nombre aquí, y también hemos añadido un pequeño personaje, que es un sanador que va a poder hablar con nosotros. Entonces hey Hitler, ¿qué tienes para nosotros? Entonces, no perdamos más tiempo. Este video es muy largo, y también creamos nuestra propia fuente si te has dado cuenta, y empecemos. Oh, bien, entonces creando diálogo, lo primero que tenemos que hacer como realmente necesitamos tener un MPC con quien hablar. Entonces vamos a sumar uno de los MPC que les he proporcionado. Y de nuevo, todos estos están disponibles en arte de juego
abierto para que te encuentres reloj siempre que quieras. Entonces este es el cisne del orgullo de los RPGs. Lo encontré encendido. A lo mejor puedes buscarlo y encontrarlo tú mismo. Y sigamos adelante y usemos el, puedes usar lo que quieras. Usemos al curandero. Entonces en estos primates, eso es cambio aquí al medio ambiente. Entonces ambiente, y vamos a sumar Estos dos al medio ambiente. Y vamos a crear otro archivo para los personajes, y vamos a añadir el demonio ambulante y el sanador. Vamos por el curandero. Entonces aquí, hagamos doble clic en el curandero. Ahí vas. No es una excelente cualidad, pero lo hará por ahora. Lo pondremos múltiple, lo
haremos sin filtro. Esperemos que esto haga la mantequilla a tope. Entonces como puedes ver, vamos a seguir adelante y rebanarlo por tamaño de celda. No, eso es demasiado grande. Entonces hagámoslo 32, rebanlo. A lo mejor necesitamos que sea 32 en ambos extremos. Y no, veamos qué tan grande tiene que ser en realidad. Por lo que tiene que ser 32 por 37. Entonces intentemos eso. 32 con un ancho de 32, una altura de 37. Cortarlo hacia arriba. Y supongo que necesitamos tener un poco de, digamos así o sabes qué, Podemos simplemente cortar este orgullo que necesitamos. Entonces sólo necesitaremos este. Entonces permítanme simplemente borrar lo existente. Y solo rebanaré este solo sprite que necesitamos. Y ahí tienes, aplica y solo necesitarás este sprite. No vamos a estar teniendo al jugador caminando por ahí. Y vamos a ponernos, mientras que el sanador que está solo de pie ahí vas, Aquí está. Entonces lo arrastraremos hasta aquí a nuestro juego que estableció la capa de clasificación como jugador. Y lo pondremos como uno. Por lo que no funciona. ¿ Por qué es eso? Ah, está funcionando pero es tan jodidamente diminuto. Entonces hagámoslo de cuatro por cuatro. Y creo que este es un tamaño suficientemente bueno. Entonces ahora tenemos al sanador parado justo aquí. Y lo siguiente que vamos a hacer es que vamos a, cambiemos esto a la tienda o como deberíamos llamarlo el aquí. De acuerdo, aquí estamos. Entonces, ahí tienes. Este es nuestro sanador. No estoy seguro de a quién lo hice capitalizado. Ahí va, curandero. Entonces ahora cuando corremos nuestro juego, vamos hacia nuestro sanador. Hola curandero. Y tenemos que asegurarnos de que realmente podamos renderizar. No se preocupe por eso. ¿ Qué es? El 0, el jugador es el 0. Entonces hagámoslo menos uno. De acuerdo, genial, vamos a guardar eso. Lo siguiente que vamos a hacer es entrar en el Lienzo. Por lo que haga doble clic en el Lienzo abrirá el lienzo, el cisne. Entonces solo vemos lo que está pasando, el componente del campus en el Lienzo. Y vamos a seguir adelante y hacer clic derecho y crear panel de interfaz de usuario. Entonces, ¿dónde está, el panel? Ahí vas. Entonces este panel es donde vamos a poner nuestro elemento de interfaz de usuario y es donde tendremos todo nuestro diálogo. Ahora notarás que es transparente. Entonces si hacemos click en el color y vamos a aumentar la transparencia al máximo, entonces vamos a elegir este panel, golpear D o la herramienta rec aquí arriba y vamos a hacerlo un poco más pequeño. Entonces esto se trata de dónde va a suceder nuestro diálogo, tal vez incluso un poco más pequeño. Entonces ahí lo tienes. Ahora bien, no queremos que sea completamente blanco. Queremos tener algunos elementos en ella. Entonces vamos al archivo donde te he proporcionado algunos elementos de la interfaz de usuario. Y vamos a entrar en el donde debemos ponerlos en los sprites crear carpeta. Tú lo eres. Elementos. Y sólo arrastremos el panel por ahora. Y tal vez creo que lo haré solo, solo
arrastremos la fuente ahora mismo también. Entonces, arrastremos la fuente al elemento de la interfaz de usuario, y tal vez este también. Sólo tienes que mantenerlo aquí. Lo usaremos más adelante. Entonces ya ven, tenemos esta imagen y este será nuestro panel. Y yo voy a seguir adelante. Si hacemos click en el panel, verás que tenemos una imagen fuente simplemente la reemplazará por este banner. Entonces ahí lo tienes. Aquí está nuestro panel. Se ve mucho más bonito. Podemos ajustarlo a su tamaño nativo. Se puede ver cómo debería estar buscando, pero lo vamos a estirar a nuestro contenido. Podemos hacer muchas cosas aquí para cambiarlo un poco. A lo mejor podemos dar vuelta al objetivo reelenco porque no necesitamos que eso suceda. El recast significa que si podemos o no podemos hacer click en él. Está bien con eso ninguno. Ahora el siguiente paso es agregar un cuadro de texto en él para donde podamos un texto. En primer lugar, vamos a nombrar a este panel de diálogo. Panel de diálogo. Y haremos clic con el botón derecho. Acude a UI y usa el texto, pero no solo el normal, el texto Mesh Pro. Y te pedirá importar centrales, tenía esenciales de importación. Y ya verás por qué en tan solo un minuto. Estamos utilizando el texto Mesh Pro. Lo estamos usando porque nos permite agregar nuestra propia fuente. Y si miramos en la fuente aquí mismo, esta es la fuente medieval y probablemente deberíamos haberla extraído. Entonces hagámoslo. Quitémoslo de aquí. Y dentro de la fiesta medieval, vamos a extraer la carpeta. Está bien. Ahí vas. Y donde conseguimos nuestros teléfonos es de un sitio web llamado duff font.com. Y puedes ir a echar un vistazo a muchas, muchas fuentes. Entonces lo que hice es que acabo de escribir medieval y conseguí todas estas opciones y elegí usar la fiesta medieval. A ver si eso incluso se ve bien. Por lo que de vuelta en nuestro juego, y aquí tenemos nuestro texto Mesh Pro. Adelante y ampliémoslo a todos los lados. Tenemos que hacer esto manualmente y 0. Por supuesto, si no quieres estar encogiendo así, realidad
puedes mantener presionada Alt, presionar en uno de los lados. Y ahí tienes. Se puede ver que podemos hacerlo cada vez más grande. Así que mantenga presionada Alt y expandido. De acuerdo, entonces, ¿cómo vamos a crear nuestra propia fuente? Si entramos en el texto de la ventana Mesh Pro creador de activos de fuente, nos da la opción de agregar una fuente. Entonces entraremos a la fiesta medieval, menos lo arrastraremos a las fuentes aquí y a los elementos de la interfaz de usuario. Y ahora lo arrastraremos aquí dentro a estos archivo fuente fuente generar a partir de Atlas. Guarda eso. Nos preguntará ¿dónde queremos guardarlo? Lo guardaremos dentro de la fuente de elementos de la interfaz de usuario. Guarda eso. Por lo que ahora podemos arrastrar aquí el medieval. Y podemos escribir, por ejemplo,
Hey, hey ahi, ¿cómo estás? Y cambiaremos el color a negro. Y ahí puedes ver que tenemos, hey, ¿cómo estás? Vamos a retocar un poco, tal vez hacerlo audaz. Podemos aumentar el tamaño de la fuente si no se ve muy bien. E incluso podemos cambiar la distancia entre cada letra. Por lo que tenemos la opción de espaciado. A ver que los podemos separar o podemos separar solo la distancia entre las palabras, lo cual es muy cool y todo esto porque estamos usando el texto Mesh Pro. Entonces tal vez creo que solo lo haré un poco o podemos hacerlo de tamaño automático. Entonces, cuantas más palabras tengamos menos espacio se necesita, podemos cambiar de desbordamiento a todas las cosas diferentes. Podemos colocarlos en el medio y asegurarnos de que esté en el medio, vertical y horizontalmente y así sucesivamente. Incluso podemos agregar algo de iluminación y el ancho de regote son
todos, todas estas son opciones que puedes intentar descifrar, ver qué pasa. Entonces si le agregamos un calco base, se
puede ver que tenemos un poco de relleno. Podemos aumentar los calcos subyacentes. Ahí vas. Se puede ver que está mucho, mucho más claro o podemos cambiarlo a rojo, pero eso no queremos. Mantengámoslo como negro, completamente negro. Está bien, genial. ¿Se hizo eso? Déjame simplemente restablecer esto y tal vez solo 0 o mantendrá el tamaño automático. Aumentémoslo. Se puede ver que podemos establecer el mínimo y máximo. Por lo que esto es solo una rápida visión general de cómo funciona el texto Mesh Pro y así sucesivamente. Está bien, genial. Entonces lo siguiente que hay que hacer ahora que hemos instalado nuestro panel de diálogo es que queremos seguir adelante y poner un nombre. Entonces cada vez que estamos hablando con alguien, sabemos que tiene cierto nombre. Y eso va a ser parte de tu reto. Tu reto es crear un cuadro de nombre. Por lo tanto, cree un cuadro más pequeño o un cuadro de nombres más pequeño justo sobre el cuadro de diálogo grande. Te daré una pequeña pista sobre cómo puedes hacer esto rápidamente. Simplemente duplicar y establecer correctamente el nombre del texto. Por lo que necesitarás duplicar el panel, hacerlo solo un poco más pequeño por encima del panel posterior. Y eso es todo. Pausa el video ahora mismo y ve a hacer el reto. Oh, bien, bienvenido de nuevo. Entonces entrémonos en el texto y aquí hay una pequeña introducción o una pequeña lección sobre cómo funcionan los anclajes. Te mostraré porque no estoy seguro de cómo explicarlo con palabras. Entonces si elegimos el panel de diálogo, se
puede ver que cuando lo hacemos más pequeño, eso detecta sale afuera. Eso se debe a que el ancla del texto está en el medio. Si nos anclamos a la parte superior derecha, notarás que ahora cuando hagamos más pequeño nuestro cuadro de diálogo, las palabras permanecen dentro. Por lo que este es uno de los aspectos clave del uso de anclajes y es muy importante entender cómo operan. Hagamos esto solo un poco más grande en el costado y en el lateral. Y también podemos seguir adelante y ampliar el texto para que llene toda la plaza. Pero como pueden ver, ya no
vemos el costado. Entonces creo que mantenerlo aquí mismo será lo suficientemente bueno para nosotros. Entonces llenemos el espacio en blanco con nuestro texto. Y ahí tienes. Creo que esto es lo suficientemente bueno. Por lo que ahora, con el fin de crear el panel de nombres, duplicará el panel. Lo llamaremos el panel de nombres, panel principal. Y lo vamos a hacer mucho más pequeño. Entonces déjame subir esto un poco para que puedas ver el texto en el panel de nombres también debería ser más pequeño. Y pongámoslo aquí arriba. Hagámoslo camino, mucho más pequeño. Entonces este es el tamaño que debe ser. Y el texto también debe ser mucho, mucho más pequeño. Por lo que este es el beneficio de usar Autopilot, pero claramente el texto ya no es legible. Entonces déjame solo, sólo un poquito y vamos a cambiar del aspecto
16 por 9 al 1920 veces 1080. Y si no lo tienes, puedes agregarla usando este plus. Por lo que 1080. Vamos a darle a eso. Y ahora se puede ver que nuestro impuesto es un poco más claro. Entonces déjame alejar y ajustar todo. Y va a ser tu reto configurarlo de la manera que lo desees. Entonces ahora déjame solo ajustar la posición y ahí tienes. Eso es todo lo que tenemos que hacer. Como puedes ver, hemos creado un panel de nombres, un panel de diálogo. Ajustan el tamaño de los gravados en consecuencia. También hemos creado nuestra propia fuente. Todo lo que tenemos que hacer en este momento es comprometer nuestros cambios. Entonces para que me gusta mostrar eso de vez en cuando. Entonces vamos a escenificar todo. Vamos a llamar a esto, agregó un cuadro de diálogo, comprometer los cambios. Echemos un vistazo a nuestra rama maestra, y ahí tienes. ¿ Qué tan increíble es eso? Por último, estamos viendo que nuestro juego se construye frente a nuestros ojos. Mira cuánto ya hemos cubierto. Entonces en el siguiente video, realidad
vamos a estar controlando lo que sucede dentro de estas dos cajas. Te veré entonces.
33. Controlador de diálogos (Arrays): Bienvenido de nuevo a mis compañeros desarrolladores de juegos. Y en este video aprenderemos sobre matrices. Aprenderemos sobre el uso del texto Mesh Pro. Y también cometo un enorme error. Entonces antes de continuar, este es el código. Asegúrate de que cuando te diga que es solo texto Mesh pro, que uses texto mucho pro UI GUI. Entonces con eso todo dicho, eso no es perder más tiempo. Y empecemos. Ah, está bien, entonces lo que queremos es que queremos crear una manera de controlar nuestro diálogo. Entonces para eso, creo que solo es apropiado si creamos un controlador de diálogo. Entonces, solo agreguemos el panel de nombres al panel de diálogo. Por lo que sólo tenemos un panel de diálogo. Y vayamos al dónde está, donde r, eso es cerrar todo porque está empezando a confundirse y hacer lo mismo pero más grande. Y esto un poco más pequeño, solo configura todo correctamente. Ahí vamos. Hagamos clic derecho y sigamos adelante y creemos un script C-sharp llamado el controlador de diálogo. Y creo que tenemos que empezar a crear, Vale, ¿qué pasó? Empieza a crear carpetas aquí. Por lo que vamos a crear una columna de carpeta, la gestión de nivel, y vamos a establecer la salida del área, área, entrar. Por favor, deja de hacer esa zona. Entra al gestor de nivel. Vamos. Visual Studio. Abre. Sí. Ahora conozco tus tácticas y ¿qué más debemos elegir? A lo mejor el controlador de la cámara. No estoy seguro de qué añadir también, pero por ahora sólo vamos a mantenerlo para que seguiremos organizando nuestros archivos. Arrastremos el controlador de diálogo en el lienzo. Por lo que ahora tenemos un gestor de menús y un Controller de diálogo. Y abramos este guión. En primer lugar, porque vamos a estar manipulando y controlando elementos de la interfaz de usuario, necesitaremos el motor Unity wi, y ahora necesitamos un par de referencias. Por lo que la primera referencia va a ser un campo serializado, va a ser un texto Mesh Pro. Pero desafortunadamente no podemos usar mucho los textos Pro a menos que
utilicemos el texto de punto del motor Unity, el BI Pro. Y ahora podemos empezar a usar malla de texto por fila. Y va a haber en primer lugar, el texto del diálogo y el texto del nombre. Entonces porque tenemos dos textos, si recuerdas el texto del diálogo que está aquí, y el texto del nombre aquí arriba. Lo siguiente que tenemos que hacer es crear un campo serializado que hará referencia al cuadro de diálogo y al cuadro de nombre para poder activarlos y desactivarlos. Son objetos de juego. Entonces el cuadro de diálogo y el cuadro de nombre. Y por último, lo que tenemos que hacer es crear un campo serializado, que va a ser una cadena, y van a ser las líneas de diálogo. Ahora podrías estar pensando, bueno, normalmente las líneas de diálogo son, como su nombre lo indica, muchas líneas, no es una línea de diálogo. Son muchas líneas. Entonces, ¿qué podemos hacer? Vamos a seguir adelante y duplicar hacer 15 de esos. También tenemos que cambiarles el nombre a 1, 2, 3, etc. Pero ¿y si quieres añadir otro? Entonces entraremos al controlador del diálogo, luego otro. Pero ahora se puede ver lo engorroso que va a ser esto y no es agradable en absoluto. Pero afortunadamente, C-sharp tiene algo para nosotros, y son las matrices. Entonces, ¿qué son las matrices? Las matrices permiten almacenar múltiples objetos del mismo tipo en una sola variable. ¿ A qué me refiero con eso? No es técnicamente una sola variable, sino una lista de variables que se llama matriz. Entonces creamos un entero, que es, ya hemos cubierto. Es un tipo de variable, pero en lugar de simplemente nombrarlo entero, agregamos estos dos corchetes aquí mismo. Entonces esto le dice a C Sharp que estamos usando esto como una matriz de enteros. Tenemos el nombre, tenemos la misma convención de nomenclatura que las variables, y podemos agregar dentro de ellas estos valores. ¿ Cómo funciona esto? En primer lugar, tenemos el tipo, tenemos el nombre, y tenemos los valores que le damos a esa matriz. Y una cosa a tener en cuenta, cómo indexamos estas matrices, pasamos de 0 a 1, a 2 a 3, 0 siempre es el primer índice y es muy importante que recuerdes este paso exacto. El primer valor en la matriz es siempre, siempre 0. Por lo que el cuatro está en el 0, posición 6 en el primero o el uno. 112713 y así sucesivamente y demás. Podemos crear matrices tan grandes como queramos, por
supuesto, hasta algunos límites. Entonces, ¿cómo vamos a implementar matrices en nuestro código? En lugar de crear 17 líneas de diálogo objetos de valor, vamos a crear una sola, que va a ser una matriz. Entonces ahora tenemos una serie de diálogos y los estamos utilizando para crear nuestro sistema de diálogo. Y también tenemos que hacer un seguimiento de la sentencia actual. Entonces vamos a crear un, otro campo serializado. No tenemos que crear esto como un campo serializado, pero solo queremos asegurarnos de que todo esté funcionando. Entonces va a ser la sentencia actual en EU. Espero que así sea como escribes sentencia. Está bien, bien. Por lo que ahora tenemos todo preparado. El siguiente paso es entrar en el texto del diálogo en el punto de inicio txt. Y va a ser igual al diálogo, las líneas LOC. Y en realidad cambiemos esto de líneas de biolab a frases de diálogo. Haga doble clic aquí, Control R y K frases de diálogo. Creo que encaja pequeño porque estamos usando la frase actual. Sentencia tan actual, ahí tienes. Entonces cuando empecemos, cualquiera que sea la frase actual que hayamos enviado va a ser el diálogo o los textos que aparezcamos en el texto del diálogo. Tan genial, sigamos adelante y probemos esto emitiéndote un reto en un par de líneas. Por lo que en un par de líneas de diálogo al controlador del diálogo, juegue con la frase actual y
asegúrese de que las líneas se muestren en el diálogo. Por lo que te daré la oportunidad de explorar cómo se ven las matrices en el inspector tú mismo. Esto es muy divertido y emocionante y tal vez un poco de miedo para algunos de ustedes. Pausa el video ahora mismo y ve a hacer el reto. Oh, bien, bienvenido de nuevo. Espero que hayas hecho el reto y espero que te des cuenta de que necesitabas agregar los textos aquí mismo. Entonces lo primero que hacemos, vamos al Lienzo. Solo pinchemos en este candado de aquí. Y esto nos permitirá elegir objeto que queramos sin cambiar el inspector. Una herramienta muy útil, que debí haberte hablado antes de hacer el reto. Espero que no estés enojado. De todos modos, diálogo texto, arrastramos el texto debajo del diálogo. Ahí vas. No me está permitiendo porque entonces, ¿qué nombramos? Cuadro de diálogo? A lo mejor debería ser el texto Mesh pro GUI. Sí, creo que así debió haber sido desde el principio. Entonces ahora cuando no queríamos probar eso, lo siento, déjame solo arreglar mis errores rápidamente. Y ahora, ahí tienes. Podemos añadir el cuadro de diálogo. Ahora, me doy cuenta de cómo debe haber sido esto. Debiste estar muy enojado conmigo. Perdón por eso. Nuevamente, agregamos el nombre. Estoy sudando. Entonces panel de diálogo y el panel de nombres. Genial. Ahora sigamos adelante y sumamos un par de frases. Por lo que puedes ver ahora mismo que empezamos con 0 frases. Añadamos uno. Oye, ahí. Yo soy Jimmy. Yo vengo del inframundo. Solía matar a muchos campesinos, como tú en mis días. Pero ahora soy un buen tipo de demonio si eso existe. Entonces elijamos la frase actual y como puedes ver, los elementos empiezan en 0. Por lo que vamos a elegir elemento a uno. Guarda eso. Vamos a ejecutar nuestro juego. Y se puede ver que soy Jimmy. Muy bonito. Probemos la frase actual para cambiarla. Intentemos usar el elemento 3. Guarda eso, corre nuestro juego. Y solía matar a muchos campesinos como tú en mis días. Para que eso se vea lo suficientemente bien. Si sientes que la fuente está quizá un poco apagada, te
recomiendo que vayas a buscar otra fuente o puedes jugar con el texto Mesh prop. Entonces de nuevo, resolviendo por no usar el nombre de variable correcto aquí, debería haber sido barra inversa pro GUI. Si sí te encontraste con esto y lo cambiaste por tu cuenta, entonces solo quiero darte una mano de aplausos. Eres increíble, así que espero que lo disfrutes. En el siguiente video, estaremos leyendo múltiples líneas. Entonces te veré entonces y cometeré mis cambios.
34. Propiedades de Array: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. En este video, vamos a estar controlando nuestro diálogo de texto usando nuestro botón más a la izquierda. Entonces soy Jimmy, vengan del inframundo se utilizan para
matar a muchos campesinos como tú en los tiempos, atrás en mis días. Pero ahora soy un buen tipo de demonios. Y cuando golpeamos la última frase, ahí tienes. Se puede ver que el texto diálogo y desaparece por sí mismo. Entonces, no perdamos más tiempo y empecemos. Ah, caso. Entonces ahora necesitamos una manera de controlar nuestro diálogo y pasar de sentencia a sentencia
sin tener que ponerlos cada vez manualmente aquí. Pero cuando presionamos un determinado botón, ya sea en la pantalla o algún tipo de botón que creamos aquí. Entonces, empecemos. En primer lugar, entremos a nuestro controlador de diálogo. Y aquí en la actualización, vamos a asegurarnos de que actualicemos esto cada fotograma. Entonces antes de hacer algo, necesitamos asegurarnos de que el cuadro de diálogo esté abierto en la jerarquía y la forma en que lo comprobamos, y aquí tienes. Se puede ver que está activo en la jerarquía, eso significa define si el objeto del juego está activo y engaño. Y si olvidaste lo que está ahí la jerarquía, lo es, El nombre está aquí arriba. Entonces si está activo o activo y jerarquía, entonces veremos qué queremos hacer. ¿ Qué queremos hacer? Queremos tomar cierto insumo. Entonces como ya he dicho, podemos usar esto o podemos crear un botón aquí si no quieres, solo continúa. Entonces si presionamos un botón determinado, así que vamos a usar input dot get button up. Y si miramos de cerca los retornos verdaderos, el primer fotograma el usuario libera el botón virtual. ¿ Por qué estamos usando este? Si miramos atrás aquí en la documentación de Unity, se
puede ver que es cierto y el botón virtual está encendido. No queremos que el jugador empiece a hacer clic en algo. Y si usamos el botón get down, por ejemplo, eso no funcionará. Usar el get buttoned up es una manera mucho mejor, sobre todo cuando se trata de manejar el diálogo, porque evitará a veces que el jugador salte a través de ellos o pegue demasiado. De todos modos, sigamos. ¿ Qué botón deberíamos estar usando? Bueno, podemos entrar en la entrada aquí mismo. Entonces en el Editar configuración del proyecto, Encargado de
entrada, pero ¿tenemos opciones? Opciones, tenemos el de fuego. Entonces el fuego uno es con el ratón 0, y creo que es el botón izquierdo del ratón, que creo que es la mejor opción para usar. Entonces vamos a copiar, disparar uno, cerrar eso de nuevo aquí, pegarlo aquí. Y ahora qué queremos estar haciendo? Entonces lo primero que queremos hacer es que queremos tomar nuestra frase actual y queremos aumentarla en una. ¿ Cómo hacemos eso? Podemos decir que la frase actual se convierte en la frase actual más una. Entonces lo que pasa es que digamos que somos, sentencia
actual es 0. Tomamos 0, agregamos a uno, y luego damos todo este valor y lo ponemos dentro de la frase actual. Entonces esto se convierte en uno. Entonces otra vez, cuando volvamos a presionar, se
convertirá en la sentencia actual es una. 12, se lo damos a la frase actual. Y a continuación tomamos el diálogo texto dot txt. Y va a ser lo mismo que aquí dentro, que es igual a las frases de diálogo en la frase actual. Pero antes de seguir adelante, esto es un poco engorroso escribir y no muy profesional. Y otra forma de escribir esto es quitando toda
esta línea y luego simplemente añadiendo el plus detrás de ella. Por lo que esto funcionará de la misma manera. Pero incluso hay una forma mucho mejor de hacer esto. Y siempre que queramos agregar un 1, 2, cualquier entero, simplemente
podemos escribir frase actual plus, plus. Y esto agregará una a la frase actual cada vez que disparemos o hacemos clic en el botón, disparamos uno. Y siempre que el cuadro de diálogo esté activo en la jerarquía. Y vamos a guardar eso. Adelante y probemos esto en Unidad. Por lo que cuando establezcamos la frase actual en 0, vamos a presionar Enter. A ver qué pasa. Así que oye, ahí. Yo soy Jimmy. Yo vengo del inframundo. Yo solía matar a muchos campesinos como tú en mis días. Ahora, soy un buen tipo de demonio. Muy bonito. Pero, ¿qué está pasando aquí? Hay algún tipo de error. Y te das cuenta de que aumenta cada vez que hacemos clic en el botón izquierdo del ratón o en el ratón 0. Y nos está diciendo que el índice está fuera de rango. índice estaba fuera de los límites de la matriz. Hmm. Interesante, Hagamos doble clic y veamos dónde está el problema. Entonces ahí lo tienes. El problema está aquí. Estamos tratando de sumar la frase actual. Si miramos aquí, la frase actual es de 20, mientras que sólo tenemos de uno a cinco elementos, por lo que estamos fuera de los límites de nuestra matriz. Y este es un error muy común que ocurre, sobre todo cuando estamos usando array. Por lo que siempre necesitamos encontrar la manera de asegurarnos de que
nunca salgamos de los límites de la matriz. ¿ Cómo vamos a hacer esto? Bueno, te voy a emitir un reto y tú lo vas a arreglar porque estoy demasiado cansada. Entonces crea una sentencia if para comprobar si la frase actual o el número actual ha superado la longitud de la matriz, si lo tiene, apaga el cuadro de diálogo, te
daré una pequeña pista. Usa las frases de diálogo longitud de punto para obtener toda la longitud de nuestras oraciones de diálogo y usa el cuadro de diálogo dot set activo a false. Entonces con todas esas pistas, pausa el video ahora mismo. Esto es tal vez sólo un poco de un reto más duro para ti porque necesitas
comparar el tamaño de la longitud de las oraciones de diálogo con la frase actual. Podemos usar estos tamaños más pequeños y más grandes. Así que pausa el video ahora mismo y ve a hacer el reto. Oh, bien, bienvenido de nuevo. Entonces aquí estamos aumentando el tamaño o el número de nuestra frase actual. Entonces, antes de que realmente lo
demos aquí, necesitamos crear la declaración if. Y saber dónde establecer la declaración if también fue parte del reto. Entonces si la frase actual es mayor o igual a las frases de diálogo longitud de punto. Entonces lo que haremos es simplemente ir al cuadro de diálogo y lo pondremos en falso. O lo siento, me refería a cuadro de diálogo Lote establecido activo a falso. Entonces, ¿qué pasa aquí dentro? Digamos que llegamos a la frase actual número 5 o a la que antes. Entonces digamos que llegamos a cuatro. Y la duración de la sentencia de diálogo es de cinco porque tenemos 01234. Entonces si la sentencia actual es mayor o igual a la longitud de la oración del diálogo, vamos a poner activo el diálogo en falso. ¿ Y cómo ayuda esto? Bueno, si está configurado en falso, entonces una actualización, ya no
podemos entrar esta condición si porque ya no está activa y la jerarquía, Vamos a probar esto y a ver si funciona. Pero antes de hacer eso, también
necesitamos agregar una declaración else para evitar el error. Por lo que solo moveremos esto hacia arriba manteniendo presionada Alt y usando las teclas de flecha y golpeando tabulador. Por lo que es en la misma sangría. Ahorraremos todo eso. Volveremos a Unidad. Vamos a ejecutar el código. Entonces ahora, oye ahí, esa frase actual está a la una. Se puede hacer un seguimiento de ello aquí mismo en el inspector. Yo soy Jimmy. Yo vengo del inframundo. Solía matar a muchos campesinos, pero ahora soy un buen tipo de demonios. Entonces ahora cuando vamos a la quinta o la sentencia actual se convierte en cinco. Ahí lo tienes. Tenemos en primer lugar, ningún error. Y en segundo lugar, el cuadro de diálogo simplemente desaparece. Y aunque sigamos presionando la sentencia actual siempre son cinco. Por lo que hemos evitado un error
mayor, mayor con sólo un par de líneas de código. Por lo que espero que hayan disfrutado del reto. Espero que no fuera demasiado duro. Y te veré en el siguiente video.
35. Activar el diálogo en el área: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, en realidad hemos mejorado nuestro sistema por lo que ya no solo
golpeamos en todas partes y todo debería funcionar. Nosotros sólo queremos que el diálogo se active cuando estamos en las inmediaciones de nuestro NPC o del MPC que realmente nos pueda hablar. Entonces ahora si estamos cerca del MPC y teníamos el botón de disparo, podemos ver que hey, podemos activar el cuadro de diálogo. Nosotros lo golpeamos varias veces. Ahí vas. Se puede ver que activamos. Pero si estamos de pie afuera, se
puede ver que no hay impresión del cuadro de diálogo. No podemos abrirlo. Otra vez. Ahí se puede ver dentro de los detonantes en podemos, afuera, podemos. Entonces, no perdamos más tiempo y empecemos. De acuerdo, entonces ya hemos creado una especie de sistema de diálogo, pero no queremos que siempre esté aquí y siempre esté controlado en todas partes, dondequiera que nuestro gimnasio edema y camine. Solo queremos activarlo siempre que estemos en las inmediaciones de uno de los MPC con los que realmente podamos hablar. Entonces para eso, vamos a entrar al sanador, lo
cambiaremos a sanador NPC. Eso lo guardaremos y le vamos a agregar colisionadores de caja de herramientas. Por lo que el primer colisionador de cajas va a ser del tamaño de nuestro MPC aquí dentro. Se trata de 40 jugador chocar con él y no caminar sobre él. Y crearemos un segundo colisionador de cajas. Y este colisionador de cajas representará la zona donde podremos hablar con nuestro MPC. Entonces vamos a crear una especie de zona grande aquí dentro para que nuestro demonio encaje. Por lo que ahora puedes ver que en esta canción, cada vez que
entremos en ella, podremos iniciar un diálogo y necesitamos asegurarnos que sea un gatillo para que podamos usar la antera emprendedora y la, tu jugador, el que tú están utilizando realmente puede entrar en la zona. Entonces cambié esto a MPC. De acuerdo, gracias. Lo siguiente que queremos hacer es que queremos crear un manejador de scripts o un manejador de diálogos para agregarlo a nuestro MPC que maneja todo el diálogo a este NPC específico. Entonces para hacer eso, vamos a hacer clic derecho y aquí vamos a crear una carpeta. Va a ser por el diálogo. Vamos a añadir el script de controlador de diálogo en él. Y vamos a seguir adelante y crear un nuevo guión C-sharp. El manejador del diálogo. Espere a que eso se compile. Y está bien, así que sumémoslo al sanador MPC. Ahí vas. Se puede ver que tenemos el renderizador sprite colisionadores de caja, el segundo colisionador de caja, y el manejador de diálogo. Abramos esto. Ahora. ¿ Qué vamos a hacer aquí dentro? Entonces aquí es donde haremos un seguimiento de todos nuestros diálogos y luego nos pondremos en contacto con el controlador del diálogo donde z Así que abramos el guión. Nos pondremos en contacto con el controlador del diálogo y
le diremos qué frases de diálogo necesitamos estar usando. Entonces para eso necesitaremos acceso al controlador del diálogo. Y para eso vamos a necesitar una instancia. Entonces te voy a emitir un reto. Y ese reto es crear una instancia. Entonces crea una instancia del controlador de diálogo de clase. Si ya sabes hacer eso, pausa el video ahora mismo y ve al reto. Si no, te daré un par de pistas. Tendrá que crear una variable estática pública de tipo y controlador de diálogo llamado instancia, y luego establecer la instancia en esto. Así que pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Entonces ya lo hemos hecho antes. Es bastante básico y fácil. Se trata de un controlador público de diálogo estático llamado en postura. Y luego empezar, vamos a establecer la instancia para que sea igual a verdadera. Ahí vas. Entonces quiero decir eso, quiero decir verdad, quise decir esto. Está bien, genial. Entonces el siguiente paso es que vamos a entrar en el manejador y crear dos variables aquí. Entonces la primera variable va a ser una cadena pública, y van a ser las frases. Y el segundo es un booleano privado que puede activar caja. Entonces, ¿por qué estamos creando la caja puede activar? A lo que me refiero con esta variable, esta variable booleana es que siempre que estemos dentro de la zona de disparo en el MPC donde Z nos dijo camino. Siempre que estemos dentro de la zona de gatillo, podemos activar la caja. Si estamos fuera de ella, podemos activar la caja. Entonces vamos a crear dos métodos aquí, que son el On Trigger, Enter 2D. Y el brazo desencadena salida 2D. Entonces, ¿cómo funcionan estos dos métodos? The Trigger Enter, ya lo hemos usado en la salida de zona, pero aún no has usado la salida del gatillo. Por lo que ya sabes cuando entramos a la determinada zona, entra
el On Trigger, se activa. Pero cuando salimos de esa zona de disparo, se activa la salida On Trigger. Déjame mostrarte cómo funciona eso. Por lo que dentro del empresario Entrar, vamos a comprobar si la colisión se compara con la capa. Y a pesar de que esto es una referencia de cuerdas, estoy bastante seguro de que así es como escribes jugador. Y aquí dentro vamos a decir que puede activar caja es igual a cierto. Entonces si estamos dentro del área de gatillo aquí para el MPC, entonces podemos abrir la caja. Pero si estamos afuera, sólo
vamos a copiar esto. Entonces si salimos del área de disparo, podemos activar caja será falsa. Entonces, ¿sólo cuando estamos dentro de la zona de disparo podemos iniciar y activar el cuadro de diálogo? Y por último, una actualización creará una condición si podemos activar la caja. Y así recuerda que esta es la señal para. Y así si podemos activar la caja y el botón de entrada de punto bajar en el fuego. Entonces simplemente vamos a seguir adelante e imprimir debug dot log. Oye, podemos activar el cuadro de diálogo. que usualmente usamos la impresión para depurar cosas, pero imprimir es algo que realmente imprime en la consola mientras que debug dot log es solo para desarrollar el juego y no imprime realmente algo. Por lo que los registros son mejores para los desarrolladores y una forma mucho más profesional de hacer las cosas. Entonces vamos a guardar eso. Volveremos a nuestro juego y luego vamos a ejecutar nuestro código. Por lo que ahora podemos dar click en el botón, veremos que aquí no tenemos nada. Pero cuando entramos a la zona, se
puede ver que se desconoce el fuego uno. ¿ Por qué es eso? Hasta el momento uno se desconoce. El problema es bajar la llave. De acuerdo, así que bajemos el botón. Oh Dios mío, baja el botón. Y esto debería funcionar ahora. Entonces de nuevo, ejecutamos el código, ejecutamos nuestro juego. Y ahora si vamos a nuestro MPC, cuando tuvimos el de fuego, ahí tienes. Oye, podemos activar el cuadro de diálogo. puede ver cuántas veces se está llamando aquí mismo a la derecha, porque me han quitado el colapso. Verás que cada uno se imprime en una sola línea con el colapsado. Todos están concatenados. Si me mudo, te darás cuenta de que si golpeo la llave no hay impresión fuera de comportamiento. Puede activar el botón. Cuando estamos dentro. Ahí vas. Podemos activar el botón. Ahora en el siguiente video, haremos que esto sea mucho más sofisticado y realmente implementaremos esto en nuestro sistema de diálogo. ¿ Se hizo eso? Espero que lo disfruten y los veré en el siguiente video.
36. Handler de diálogos: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, como ves, si tuviéramos el botón del ratón, no pasa nada. Si subimos a nuestro sanador y le damos el botón del ratón, oye, soy curandero. Oye, soy un daemon llamado el Jimmy. Yo he venido por tu alma. ¿ Por qué eres tan mezquino Jimmy? Pareces ser amable. Y esa es toda la conversación. Entonces, no perdamos más tiempo y empecemos. De acuerdo, entonces ahora que lo hemos configurado todo, es hora de empezar realmente a activar el cuadro de diálogo basado en si estamos dentro o fuera de la canción. Entonces lo primero que tenemos que hacer es que vamos a necesitar ir al controlador
del diálogo y crear un método aquí dentro que active el diálogo. Entonces va a ser un vacío público. Activar diálogo. Por lo que esto iniciará el diálogo y le vamos a pasar un argumento. Y este argumento va a ser la matriz de cadenas de las nuevas oraciones a usar. Por lo que obviamente esto se manejará en el manejador del diálogo, pero trataremos de eso más adelante, explícalo más. Por lo que las frases de diálogo, las que están en el controlador del diálogo, serán iguales a las nuevas oraciones a utilizar. Y debido a que estamos iniciando la conversación, la sentencia actual será igual a 0. Entonces esta es la variable que hace un seguimiento de la frase en la que estamos. Va a ser 0. Y el texto de punto de diálogo será igual a las frases de diálogo, las frases de la frase actual. Entonces esto es sólo para iniciar todo. Y por último, necesitamos activar también el cuadro de diálogo. Por lo tanto cuadro de diálogo punto establecido activo a verdadero. Y por supuesto que vamos a desactivar aquí en nuestro jugador. Entonces, ¿dónde está? ¿ Dónde está nuestro panel de diálogo Lienzo? Y apagaremos esto. Y en Canvas este es el panel de diálogo. Se encenderá más adelante. Entonces guarde todo eso. Y ahora te voy a emitir un reto. Y tu reto es activar el diálogo. Por lo tanto, activa el diálogo desde el script del manejador de diálogos. Utilice la instancia del controlador de diálogo y
asegúrese de pasar estas oraciones al método a través del parámetro. Y ya hemos establecido dónde en el manejador de diálogos
deberías estar llamando al método del controlador del diálogo para activar el diálogo. Entonces con eso dicho, pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Espero que supieras hacer eso. Entonces en el manejador de diálogos, cuando presionamos la tecla de encendido una y podemos activar la caja, vamos a llamar al controlador de diálogo punto instancia de punto activar diálogo. Y le vamos a pasar las sentencias que tenemos. Por lo que las sentencias salvan eso. Ahora volveremos a Unidad e incluso
podemos ir al controlador del diálogo y pondremos esta carta en privada. Pero por ahora, mientras que, voy a poner esto en privado. Podemos incluso haber dicho la sentencia actual a privado, pero sólo queremos asegurarnos de que todo esté funcionando. Entonces en el sanador del PNP, tenemos las sentencias que queremos sumar. Entonces ahí lo tienes. Podemos decir, oye, quiero decir sanador. Entonces esto es una conversación, Hey, soy un demonio llamado o sabes qué? Soy un daemon llamado. Jimmy. He venido por tu alma. ¿ Por qué eres tan mezquino Jimmy? Pareces ser amable. De acuerdo, entonces esta es una pequeña conversación entre Jimmy y el curandero. Entonces lo que pasará ahora es que vamos a ejecutar el código. Por lo que este es el guión sobre el manejador de diálogos del NPC. Y en el lienzo deberíamos ver eso, oye Jimmy, nosotros, todo sigue igual. Pero cuando caminamos hasta el sanador, cuando teníamos la llave de fuego, ahí tienes. Oye, soy curandero. Oye, soy un daemon. Por lo que se puede ver que todavía hay un pequeño problema. No estamos cambiando. Vamos de la sentencia 0 a la sentencia uno. Entonces, ¿cuál es el problema aquí? Bueno, el problema. Eso en el manejador de diálogos, estamos actualizando cada fotograma, comprobando si la caja puede activarse y si estamos tocando el botón de encendido. Entonces lo que está pasando es que a este método se le está llamando cada vez. Y lo que hace es que sigue adelante y activa cuadro de diálogo y vuelve a establecer la frase actual en 0. Por lo que necesitamos asegurarnos de que lo invoquemos sólo una vez. ¿ Cómo hacemos eso? Vamos a añadir otra condición aquí. Entonces si la caja está activa y presionamos la tecla de botón y el manejador de diálogo. Por lo que notarás que he añadido un signo de exclamación. Te diré qué es eso. Y el manejador de diálogo o controlador de diálogo, instancia de
punto, cuadro de diálogo de puntos. Entonces cuadro de diálogo es, ¿dónde está? El cuadro de diálogo es un campo serializado. No podemos acceder a ella. Podemos hacer dos cosas aquí. Entonces, o bien podemos convertir esto a público y dar acceso a él a todos. O una forma mucho más sofisticada es seguir adelante y crear un booleano público. Y es el diálogo activo. Y lo que esto hace es que regresará, retorno cuadro de diálogo punto está activo o activo en la jerarquía. Entonces ahora, si el cuadro de diálogo está activo y jerarquía, esto será igual a verdadero y le devolveremos el valor. Entonces si el controlador de diálogo punto instancia punto es diálogo, es diálogo. Esto debería haber sido tal vez cuadro de diálogo activo. Entonces diálogo que puede cambiar el cuadro de diálogo de nombre activo. Aplica eso. ¿ Cuál es el problema? ¿ Está activo el diálogo? Ahí vas. Pero, ¿qué pasa con este pequeño signo de exclamación? Entonces, ¿cuál es el punto aquí dentro? ¿ Qué estamos haciendo en realidad? Queremos asegurarnos de que si el cuadro de diálogo ya ha sido abierto, no
queremos seguir llamando al diálogo activar. Por lo que este pequeño signo de exclamación nos dice que si el cuadro de diálogo está activo es cierto, el signo de exclamación se invierte. El cuadro de diálogo está activo. Entonces si toda esta frase es cierta, toda
esta condición aquí dentro es cierta agregando un signo de exclamación, convertimos esto en falso. Entonces, ¿qué pasa aquí dentro? Verificamos casillas activas. Teníamos la llave de fuego, el cuadro de diálogo está activo, pero debido a este signo de exclamación, esto hace que toda esta condición sea falsa por lo que
no activamos el cuadro de diálogo. ¿Qué tan guay es eso? Entonces tómate un poco de tiempo si sigues confundido, ¿qué está pasando? Este signo de exclamación, invierte descondicionado y mezclarlo todo cae o lo hace todo cierto. Entonces con eso dicho, vamos a salvar esto. Volveremos a Unidad y volveremos a intentarlo. Entonces vamos a ejecutar el código, subiremos al MPC, se pegará. Y ahí tienes. Soy un daemon llamado Jimmy. Yo he venido por tu alma. Yo ¿Por qué eres tan mezquino Jimmy? Pareces amable y terminamos la conversación. Está bien, genial. Pero si te has dado cuenta de que algo está pasando mal. Entonces otra vez, si entro al sanador, golpea la llave tan alta que soy demonio. Entonces, ¿dónde está el, oye, soy curandero. No se está mostrando. Eso es porque si volvemos a nuestro controlador de diálogo aquí dentro, podemos ver que cada vez que presionamos el botón, inmediatamente
agregamos la frase actual. Entonces, ¿cómo vamos a arreglar esto? Bueno, es bastante fácil. Simplemente crearemos una variable aquí dentro que hará un seguimiento si el diálogo acaba de enseñarse. Por lo que acaba de empezar un diálogo booleano privado. Y en el diálogo activar. Y aquí vamos a dialogar recién comenzado igual a cierto, salvo eso. Y cada vez que tocamos la llave de fuego, íbamos a añadir otra condición aquí. Entonces si el diálogo acaba de empezar, o lo que quise decir es que si el diálogo no acaba de empezar, entonces vamos a sumar un más dos lo más. Simplemente vamos a poner el diálogo que acaba de empezar a falso. De acuerdo, entonces vamos a probar esto y te explicaré un poco más. Entonces ahora ejecutamos nuestro juego. Subimos hasta el sanador, iniciamos la conversación y como pueden ver, no
hemos saltado la primera línea, y luego seguimos con nuestra conversación. Entonces lo que está pasando aquí es que hemos creado una variable. Y como pueden ver, he añadido un signo de exclamación. Entonces si el diálogo acaba de comenzar, no
entramos en esta condición. Lo ponemos en falso, y en realidad iniciamos la primera línea de código aquí porque hemos agregado. Entonces lo que pasaba es que dijimos el impuesto de diálogo para tener la sentencia actual que era 0. Pero en cuanto tocamos el botón de encendido, de nuevo, tenemos un plus de corriente y lo estamos cambiando. Entonces esto nos permitirá, en primer lugar,
si no acaba de empezar, entonces vamos a sumar un plus, plus. Pero si acaba de empezar en este momento, no
vamos a aumentar la sentencia actual. Entonces espero que eso no fuera demasiado confuso. Es sólo una forma de mitigar el daño cada vez que estamos iniciando una conversación. Pero todavía hay dos problemas aquí. El primero es que cuando subamos a nuestra señora aquí, si estamos hablando con ella, todavía
podemos alejarnos. Y como pueden ver, estamos hablando con ella desde otro mapa casi. Y ese es un gran no-no. Tenemos que encontrar la manera de impedir que nuestro Demonio se mueva. El segundo es que estamos hablando, pero no sabemos quién está diciendo, Hey, soy un demonio, puede estar congelado. El daemon llamó al gimnasio. A lo mejor se le llama el gimnasio. No sabemos quién está hablando, así que necesitamos añadir un nombre aquí, pero eso es para otro video. Hasta entonces, asegúrate de comprometer tus cambios. Y te veré en el siguiente video.
37. Manteniendo el movimiento de los jugadores: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. En este video hemos pensado, o demonios algunos modales. Por lo que ahora cuando subamos a hablar con la linda curandera, ya no
podemos huir de ella y gritar desde el otro lado de la pantalla. Entonces, a menos que
terminemos la conversación, no tenemos forma de irnos. Entonces como pueden ver, cuando terminemos la conversación, podemos irnos e ir a nadar y las aguas. Entonces, no perdamos más tiempo y empecemos. De acuerdo, así como hemos cubierto en un video anterior, queremos que nuestro jugador deje de moverse cada vez que estamos teniendo una conversación con el NPC porque eso son buenos modales y nuestro demonio Timmy necesita tener buenos modales. No tiene buenas habilidades de conversación, pero tiene modales. Entonces, ¿cómo vamos a hacer esto? Vamos a tener que encontrar una manera en el jugador para activar el movimiento cada vez que estamos hablando y lo estamos manejando aquí y la velocidad. Entonces la forma en que detenemos esto es emitiéndote un reto, lo que vas a evitar que el jugador se mueva. Entonces crea una variable booleana y declara un guión, que será el movimiento de activación o puedes llamarlo como sea el nombre que quieras. Una actualización. Comprueba si la variable es verdadera y la estableceremos a una velocidad de 0. Entonces si la variable, el movimiento de activación es verdadero, la velocidad del jugador debe fijarse en 0. Else simplemente mantendrá la velocidad tal como está. Así que pausa el video ahora mismo. Tómate el tiempo para hacer este reto. Es muy importante y te veré en solo un rato. Oh, bien, bienvenido de nuevo. Entonces lo primero que tenemos que hacer como movimiento booleano público de desactivación es igual a falso. Nos aseguraremos de que empecemos por tener el movimiento de activación falso. Y aquí dentro, cuando establezcamos los flotadores para los ejes get horizontales y verticales, vamos a comprobar si el movimiento de desactivación es cierto. Entonces vamos a seguir adelante y acceder a los jugadores cuerpo rígido. Vamos a acceder a la velocidad en ella. Y para ponerlo en verdad, no sólo
vamos a decir que es igual a 0. Vamos a asegurarnos de que le decimos que es un vector dos punto 0. ¿ Por qué estamos usando esto en lugar de solo un 0? Porque se puede ver que la velocidad aquí dentro, se
puede leer que es un vector, velocidad corporal
demasiado rígida. Y para establecerlo en 0, necesitamos usar el factor al 0, que inicialmente es solo un vector 0, F 0, F. Entonces, ¿qué siguiente deberíamos estar haciendo? Bueno, necesitamos agregar un caso más y luego ponerlo aquí mismo. Entonces si el movimiento del jugador de desactivación es verdadero, entonces la velocidad se convierte en 0. De lo contrario, simplemente lo establecemos como la velocidad normal. Entonces vamos a probar esto y nuestra ganancia. Ah, en realidad no hemos activado esto. Entonces para asegurarnos de que lo hacemos, necesitamos entrar en el manejador del diálogo. O sea, los, lo siento, los controladores del diálogo. Entonces aquí, el diálogo acaba de activarse y tenemos que ir y al jugador punto instancia el punto punto el movimiento de activación. Y lo pondremos en realidad. Ahora, obviamente habría sido mejor hacer esta una variable privada y crear un método para acceder a ella. Pero por el bien de movernos más rápido, usaremos la instancia. Entonces diremos que de vuelta en nuestro juego, ejecutamos nuestro juego. Jimmy sube al PNJ, Hey, soy un demonio sanador. Y ahora ya no podemos movernos más. A pesar de que nos detengamos, la conversación tendrá que desactivar los movimientos de desactivación. Entonces ahora podemos movernos, pero en cuanto empecemos a conversar, no
podemos movernos. Pero hay un ligero problema y es que todavía podemos mirar a su alrededor. Ahora si quieres, esta es una característica genial. Podemos quedárnoslo, pero no queremos en nuestro caso ahora mismo. Entonces te voy a mostrar un mini reto para que detengas la rotación del jugador mientras estamos hablando. Por lo que este no es un reto oficial. Tómate un momento, pausa el video. Hazlo tú mismo. Se acabó el tiempo. Entonces sigamos adelante. Si no somos los que activan el movimiento, entonces podemos configurar el animador. Entonces porque nuestro giro se maneja aquí mismo. Entonces si el movimiento es igual a uno y demás, estamos accediendo al animador. Estamos poniendo la última x, así que tenemos el movimiento activado establecido en verdadero, entonces esta condición no va a funcionar y no vamos a poner menos impuesto, pero eso hecho, volvamos a Unidad. Asegurémonos de que lo guardemos. No, no lo hicimos. Entonces otra vez, necesitamos apenas notar que tengo algo por el astérix en la parte superior. Entonces vamos al PNJ, empezamos a hablar y ahí tienes. No podemos dar la vuelta. Entonces estoy tratando de pegarle al WASD y nada está funcionando. Está bien. Pero un problema final. ¿ Cómo le damos la capacidad a Jimmy para volver a caminar? Bueno, vamos a entrar al controlador del diálogo. Y cuando comprobamos si las sentencias actuales son mayores que la longitud de las oraciones de diálogo, vamos a poner el diálogo activo en falso. Y vamos a ir a acceder a la instancia de punto jugador, desactivar el movimiento y ponerlo en falso. Entonces vamos a guardar eso. Ahora, deberíamos poder ver que Jimmy puede caminar nuevo después de que termine de tener una conversación con la linda dama. Entonces oye, soy un demonio sanador. Y ahí tienes. Podemos volver a caminar si tratamos de caminar cuando estamos hablando. Sí, Ahí vamos. Por lo que ahora tenemos un demonio muy bien educado. Así que asegúrate de comprometer tus cambios. Y en el siguiente video, nos encargaremos de los nombres de los personajes que hablan. Te veré entonces.
38. Muestra los nombres de los personajes: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. Entonces ahora cuando caminamos hacia nuestro sanador, empezamos a hablar. Sabemos que es un curandero. Entonces oye, soy curandero. Jimmy. Oye, soy un demonio. Jimmy llamó a Jimmy. Entonces Jimmy está hablando, dice, me llaman Jimmy. He venido por tu alma. ¿ Por qué eres tan malo Jimmy? ¿ Quién está hablando? Ah, es el curandero. Está bien, genial. Entonces dice el curandero Pareces amable. Por lo que Jimmy ha demostrado que tiene formas excepcionales o con curanderos en la localidad. Entonces, no perdamos más tiempo y asegurémonos de que
sepamos quién está diciendo los centros de diálogo. Ah, está bien, así que ahora queremos poner el nombre de cada personaje hablando. Entonces hay muchas formas de hacer esto, pero creo que la forma más fácil es la siguiente. Entraremos al sanador por ejemplo. Y aquí Digamos,
oye, soy curandero, pero lo haremos, es pondremos un cierto personaje que puede ser cualquier cosa. Puede ser el símbolo hashtag. Entonces mientras que el símbolo hashtag, así por ejemplo, el sanador símbolo hashtag. Y lo que haremos es ponerlo en alguna parte. Por lo que ahora está hablando el curandero. De nuevo cuando queremos asegurarnos de que sea el demonio hablando, pondremos a Jamie y aquí, está bien, y hagamos esto de nuevo. Por lo que pincharemos aquí. Y otro. Sanador. ¿Por qué eres tan malo Jimmy? Pareces ser amable. De acuerdo, entonces ahora puedes ver que tenemos curandero, Jimmy, sanador hablando. Pero cómo vamos a asegurarnos de que cuando las sentencias sean rojas, que sepamos que es un sanador. Bueno, vamos a usar el símbolo que dijimos detrás de él. Y vamos a utilizar dos métodos en C-Sharp. Entonces el primero es string dot comienza con, y esto nos permite comprobar si o determinado si la instancia de cadena comienza con un carácter específico. Esto nos permitirá comprobar el carácter o símbolo que teníamos al inicio de la frase. Y luego usaremos Reemplazar. Y con esto reemplazaremos el símbolo por algún tipo de tal vez sólo un espacio vacío, por lo que nos desharemos de él para que no se presente en nuestros nombres. Adelante y pongamos en práctica esto. Entonces una hora, mientras que él y nuestro controlador de diálogo crearán un método y aquí eso se llama vacío. Comprueba si nombre o comprueba el nombre. Llamémoslo el cheque por nombre. Creo que se adapta al método de la mantequilla y no tiene que ser público, puede ser en privado. No creo que lo estemos usando fuera del controlador de diálogo. Por lo que crearemos una condición if aquí dentro que comprobará si las frases de diálogo en el punto actual de la frase comienza con el Hugo. En cuanto escribamos. No estoy seguro de cómo incluso Visual Studio puede ser tan inteligente. Entonces si comienza con el carácter hashtag, entonces lo que haremos es nombrar texto. Por lo que ya dijimos el nombre gravado allá arriba. El texto puntual será igual a las frases de diálogo de la frase actual. Y vamos a reemplazar el hashtag por un, un espacio vacío. Vamos a reemplazarlo por un espacio vacío. Y entonces lo que haremos es aumentar la sentencia actual en una. De acuerdo, entonces, ¿qué estamos haciendo aquí? En primer lugar, estamos comprobando si la frase de diálogo en la frase actual comienza con el hashtag o el símbolo que elijas agregar. Vamos a acceder al texto de punto fiscal nombre y lo
pondremos como la sentencia de diálogo en la actual. Pero vamos a reemplazar el hashtag por un espacio vacío. Entonces ahora sabemos que es el nombre, pero porque no queremos que el nombre se muestre en el cuadro de diálogo. Incrementaremos la sentencia actual a partir de aquí de inmediato y seguiremos con la conversación. Por lo que el paso final es saber a dónde llamar al número de cheque. Y eso va a ser parte de tu reto. Y tu reto va a ser llamar al método cheque por nombre. Entonces encuentra a los dos. Entonces hay dos lugares donde deberíamos estar comprobando si una frase es un nombre o una línea de diálogo, y aplicarlos y ejecutar el código, ejecutar el juego, asegurarnos de que funcione. Así que pausa el video ahora mismo y ve a terminar el sistema de juego de fin de diálogo. De acuerdo, bienvenido de nuevo. ¿ Cómo te pusiste con eso? Este fue un reto muy importante si no has intentado hacerlo, hazlo ahora mismo, te dará más visión de cómo funcionan los juegos y realmente es un reto divertido saber a dónde deberíamos estar llamando. Por lo que he regalado el spoiler. Tenemos que comprobar el nombre justo antes de activar el diálogo. Entonces este es el primer lugar. Y siempre deberíamos estar comprobando si estamos configurando el diálogo texto dot txt. Entonces, ¿dónde más deberíamos estar revisando? ¿ Aquí dentro? Vamos a comprobar el nombre. Entonces guarde eso. Creo que estos son los dos lugares que necesitamos estar revisando. Probemos esto y veamos si tenía razón. Entonces vamos a ejecutar nuestro juego. Vamos a caminar hasta el curandero, golpeará Imprimir. Entonces ahí puedes ver sanador, Oye, soy curandero. Jimmy, oye, soy un demonio llamado Jimmy, he venido por tu alma, el sanador. ¿ Por qué eres tan malo Jimmy? Parece ser agradable y ahí tienes. Salimos. Entonces, ¿qué tan genial es eso? Ahora sabemos quién está hablando cuándo y dónde. Por lo que el diálogo está completo. Espero que lo disfruten. Te veré en el siguiente video. Y no olvides cometer todos tus cambios. Estamos haciendo increíble. Mira cuánto ya hemos hecho. Te veré a continuación.
39. Sección 6: estadísticas de jugadores: Bienvenido de nuevo a mis compañeros desarrolladores de juegos. Y en este video vamos a estar creando estadísticas de un jugador. Entonces si hacemos clic en el jugador ahora mismo, verás que tiene un par de estadísticas y el máximo de HP, la actual defensa sucia HP TEDx, y por supuesto el nombre de Jimmy el demonio. Entonces, no perdamos más tiempo y empecemos. Ah, está bien, entonces es hora de crear algunas estadísticas para nuestro jugador. Y como hemos hablado antes de delegación, no
queremos que nuestro guión de jugador esté manejando las estadísticas de los jugadores. Vamos a crear un tipo diferente de guión para manejar eso. Entonces vamos a crear una carpeta aquí. Lo llamaremos el, digamos que los quizá personajes le añadirán el guión de jugador. Y vamos a seguir adelante y crear un guión de estadísticas de jugador. Y aquí, así que haz clic derecho, crea guión C-sharp y llamaremos a esta capa D. Estadísticas. Hit Enter. ¿ Qué deberíamos estar haciendo aquí? Bueno, sólo vamos a armar un par de estadísticas para tener para nuestro jugador. Por lo que el primer paso va a ser un campo serializado. Es una cuerda, y va a ser el nombre del jugador. Entonces ese es el primer paso habitual que tenemos para cualquier tipo de director en un RPG. Y entonces la segunda variable va a ser el nivel de jugadores. Porque como sabemos, cada jugador en un RPG tiene algún tipo de nivel y lo vamos a establecer en uno por defecto, podremos cambiar todos estos en el inspector porque les estamos configurando campos serializados IS. Vamos a hacer un seguimiento de la XP actual. Entonces la XP actual, y sólo eliminemos los iguales aquí. Entonces la experiencia actual, ¿qué más tenemos? Bueno, tenemos el máximo de HP, por lo que la salud máxima, y vamos a establecer por defecto en 100. Contamos con los HP actuales que queremos hacer un seguimiento. Por lo que HP actual, vamos a quitar este golfo. Queremos agregar magia a nuestro jugador. También tendremos una Mano max. Entonces si no sabes qué maná es la fuente de magia para cualquier personaje, cuánto maná tienes determina cuántos hechizos puedes adivinar. Y solo separaremos todos estos con un espacio para mantener todo ordenado. Y por supuesto también tendremos la forma actual. Tan actual Mano, ¿qué más debe tener un personaje? Un RPG? Creo que la destreza y la defensa son una buena estafa de tener. Entonces destreza y diferencia. Y si no sabes qué, estoy seguro de que sabes qué defensas, pero si no estás seguro de qué es la destreza, destreza es tu habilidad para manejar un arma. Entonces, cuanto más destreza tengas, más podrás manejar un arma. Electron quizá añada un par de cosas más aquí, como el arma equipada y la armadura equipada. Pero por ahora creo que estos son los fundamentos en los que trabajarán. Y cuando necesitemos agregar más, sólo
volveremos y agregaremos más. Entonces, vamos a guardar todo eso. Ahora volvamos a Unity y ¿dónde está nuestro jugador? Arrastremos las estadísticas del jugador al jugador. Minimicemos al animador. Y ahí tienes, puedes ver las estadísticas de los jugadores. Entonces, ¿qué debemos hacer aquí? ¿ Cuál es el nombre de nuestro jugador como lo hemos dicho, Jimmy? ¿ Y cuál es la experiencia actual? Si bien digamos que le daremos tal vez 200 o no a cientos demasiado. Démosle 36. Con el Max HP es de 100. Nosotros le vamos a dar una destreza de 10 y una defensa de, digamos 30. De acuerdo, entonces estos son solo números arbitrarios. Puedes agregar lo que quieras más adelante profundizaremos más, pero por ahora, solo
queremos sentar el terreno para todo y luego empezar a trabajar. Ahora, es hora de darte un reto. Y tu reto va a ser crear estadísticas. Por lo tanto, agrega tus propias estadísticas de jugador que te gustaría tener. Como viste, estos son muy básicos, básicos, básicos. Se puede agregar mucho más. Entonces si has jugado un juego como, digamos seguimiento a New Vegas, tiene inteligencia, suerte y así sucesivamente. Dark Souls, Por ejemplo, también tiene un montón de, eso está ahí. Ahí es donde obtuve destreza. Y estaremos usando diferentes RPGs para crear un sistema de nivelación a partir de ellos y cómo atacamos usando esos sistemas. Por lo que aquí hay un par de ejemplos. Velocidad, vitalidad, resistencia, inteligencia, bloqueo, etc. Así que hay muchas habilidades. Como ya he dicho, este juego es tu juego que creaste como quisieras. No tengas miedo de agregar un par de estadísticas para experimentar, para luego ajustar el código
a medida que avanzamos por nuestro juego para que se adapten a tus estadísticas, para que se adapten a tus propias necesidades. Y ese es el proceso de aprendizaje. Sentarme aquí viéndome hacer frío y no hacer nada no te va a ayudar tanto. Entonces con eso dicho, pausa el video ahora mismo en un par de tus propias estadísticas si quieres. Y te veré en el próximo. Y también si estás disfrutando el curso hasta ahora, me
ayudaría mucho si me dejas una crítica positiva sobre el curso. Y gracias, nos vemos en el siguiente video.
40. Para Loops en la unidad: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos en este video, como saben, cada juego de RPG, cada jugador de tu juego requiere subir de nivel. Por lo que hemos creado una experiencia para cada nivel. Entonces la cantidad de experiencia para cada nivel, y se hace dinámicamente. Entonces en cuanto ejecutemos el juego, verás que desde el nivel 0 estás aquí. Para llegar al nivel dos, necesitarás 100 experimentados dos, nivel tres, 200, 300, 400, 56 hasta llegar a 49 mil o 4,900. Por lo que se puede ver que todo esto se hizo automáticamente usando bucles. Entonces, no perdamos más tiempo. Y empecemos. Oh, bien, entonces es hora de empezar a nivelar a nuestro jugador. Entonces para hacer eso, vamos a entrar en las estadísticas de los jugadores y
vamos a sumar dos nuevas variables aquí. Entonces primero agregaremos un campo serializado. Tan campo serializado, va a ser un entero y va a ser el nivel máximo, y lo pondremos en 50. No creo que necesitemos más de 50 niveles máx. Eso se puede cambiar en base al personaje que se tenga. Ya verás que podemos añadir la estadística de este jugador a cualquier personaje y convertirlos en un jugador o un personaje jugable. Y la otra variable que queremos agregar es un campo serializado, que va a ser un entero o una matriz de enteros. Y va a ser la experiencia que necesitamos para que cada nivel suba de nivel. Entonces va a ser la XP. Para cada nivel. Ahí vas. Por lo que ahora tenemos el nivel máximo al que puede llegar nuestro jugador y la experiencia para llegar a cada uno de esos niveles. A continuación queremos hacer, queremos establecer estas experiencias para cada nivel. Entonces, ¿cómo hacemos eso? En primer lugar, y empezar, vamos a crear el array de XP para cada nivel, y así es como lo creas. Por lo que la XP para cada nivel es igual a una nueva matriz de enteros. Y tenemos que determinar qué talla va a ser y el tamaño va a ser el nivel máximo. Por lo que ahora el número de experiencia para cada nivel será el nivel máximo. Entonces, ¿cuántos niveles tenemos? Bueno, tenemos, por ejemplo aquí 50. Por lo que el tamaño de la matriz XP para cada nivel será de 50. Lo siguiente que queremos hacer es que queremos poder configurar estas experiencias. Para ello necesitamos otra variable y no estoy seguro de dónde vamos a añadir la clase. Basta con mantener aquí todo lo que está relacionado con la experiencia en el mismo bloque. Y va a ser un entero. Y vamos a estar llamando a una EXP de nivel base profunda. Por lo que esto será igual a 100. Entonces el primer nivel es 100, y pondremos eso también aquí. Por lo que la experiencia para cada nivel en el nivel uno va a ser igual al nivel base XP. Está bien, genial. Ahora una orden para llenar el resto, vamos a usar un bucle porque no queremos ir. Y por ejemplo, para cada uno y los dos iguales a algún tipo de número, queremos hacer esto dinámicamente. Y afortunadamente, hay una herramienta increíble para hacer eso que se llama loops. Permítanme explicar qué son los bucles. Entonces para ser específico, ¿qué es un bucle for? Por lo que los bucles pueden ejecutar un bloque de código varias veces. Los bucles son prácticos si quieres ejecutar el mismo código y
otra vez cada vez con un valor diferente. Entonces esta es la estructura del bucle. Empezamos escribiendo para, y este es un bucle for verá un tipo diferente de bucle más adelante en el curso. Entonces por ejemplo, escribimos cuatro, abrimos estos dos corchetes. Empezamos inicializando la primera condición. Entonces int I igual a 0. Si bien estoy menos que un cierto límite, vamos a aumentar I plus, plus. Y cada vez ejecutaremos el código que está entre estos dos corchetes rizados. Por lo que seguimos ejecutando este código en el interior hasta que llegue a cierto límite. Empezamos a las 0. Digamos que el cierto límite es de tres. Empezamos a las 0, ¿de acuerdo? Podemos ejecutar el código. Aumentamos i por una soy yo, que ahora es uno, menos de tres. No. Entonces nuevamente, ejecutamos el código, aumentamos en uno. Yo soy también se convierte yo menos que el cierto límite? Sí, lo es. ¿ Yo dije que no antes? Entonces yo igual a dos es menor que el cierto límite, que es tres. Nuevamente, ejecutamos. Por último llegamos a 3. Entonces yo igual a tres. ¿ Es menor que el cierto límite con solo tres nodos no así salimos del bucle y rematamos. Añadamos esto a nuestro código y veamos qué sucede. Por lo que de vuelta en el inicio, vamos a crear un bucle for. Por lo que para abrirá los corchetes. Escribiremos int I igual a. ¿ Y por qué no empezamos a 0? Piénsalo un rato. ¿ Por qué no empezamos con I igual a 0? Bueno, porque ya hemos establecido el I igual a uno y aquí, y el I igual a 0 lo será, claro 0. Es el nivel base. Es con lo que comienzas. Para llegar al primer nivel, utilizas el nivel base y luego estableceremos el resto desde I igual a 2. Cuál es el límite que no queremos exceder su tamaño de la matriz, que es la XP para cada nivel. Por lo que obtenemos el tamaño usando la longitud y vamos a aumentar yo en una cada vez. Entonces ahora ¿qué vamos a hacer y aquí? Bueno, te vamos a emitir un reto. En realidad, te voy a mostrar un reto y tu reto es imprimir número en el que estamos. Por lo tanto, utiliza el método de impresión para imprimir I o el número en el que estamos actualmente en la iteración. Así que pausa el video ahora mismo y ve a hacer el reto. Bienvenido de nuevo. Entonces es muy fácil. Simplemente escribe, imprime, abre los paréntesis. Adelante. Estamos en y concatenamos una cuerda, que es, podríamos simplemente haber escrito yo, pero esto es sólo para fines más estéticos. Eso lo salvaremos de nuevo en Unidad. Y nosotros, nosotros, agregamos todo. Entonces ahora veamos la consola. Nos hemos asegurado de que el nivel máximo sea de 50. Se puede ver aquí que cada XP como a 0, pero es una matriz. Entonces cuando ejecutamos el código, pero ahí tienes. Se puede ver que ahora tenemos de 0 a 49, por lo que 50 niveles, el primero es 0, el segundo se inicializa a 100. Y se pueden ver los números aquí en la consola a partir de 2, 3, 4, 7, 8, 9, 10, 11, 14. Y continúan hasta llegar a 49. Está bien, genial. Con eso dicho, a continuación, necesitamos hacer algo real aquí dentro, no sólo imprimir. Entonces comentaremos esto. Y vamos a seguir adelante y decir que la XP para cada nivel en la posición I, porque recuerden que estoy aumentando con cada iteración. Por lo que estamos pasando por cada elemento en la matriz de la XP para cada nivel, y va a ser igual a la XP de nivel base. Y sólo lo vamos a multiplicar por I. Guardar eso. Volvamos a Unidad. Esperemos a que esto se compile y mantengamos los ojos en la XP para cada nivel, vamos a ejecutar nuestro juego y ahí tienes. Se puede ver que empezamos con el fin de llegar al siguiente nivel, necesitamos 100 XP para llegar al siguiente, siguiente nivel, 200 al tercer nivel, 300,
400, 56, etcétera y así sucesivamente hasta que necesitemos 4,900. Entonces con eso hecho, espero que hayan disfrutado de eso. Sólo tal vez una vez más. Explica lo que está pasando en la pendiente porque si no
estás familiarizado con los bucles y esta es tu primera vez, vale la pena escucharlo una vez más. Empezamos. Nuestra condición inicial es de dos. Tenemos un cierto límite, que es la longitud de la matriz para cada nivel que hemos creado aquí. Y cada iteración aumentamos i por una. Ya hemos visto cómo se ve esto cuando imprimimos el I en cada línea. Entonces tomamos a este tipo que está aumentando cada vez y lo usamos para pasar por la matriz y en cada uno, y digamos elemento de la matriz, estamos estableciendo la velocidad de nivel base veces el número I. Y esto es cómo incrementamos cada tiempo asignado a todas las velocidades para cada nivel y la matriz. Por lo que espero que lo disfruten. Y en el siguiente video se estará incrementando la velocidad al siguiente nivel y no tan estable como ahora. Por lo que no queremos tener sólo 100 puntos diferenciando entre cada uno. Como sabéis, los juegos de RPG, cada nivel requiere más que el anterior para aumentar. Entonces digamos que el primer nivel nos llevó 100 experiencia, el segundo debería tomar más de 100 para superarlo. Entonces te veré en el próximo.
41. Distribución de experiencia: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, vamos a estar implementando una ecuación diferente para obtener la experiencia que necesitamos para llegar a cada nivel. Entonces cuando ejecutemos el código, verás que ya no tenemos un 100 cada vez, pero tenemos un nivel muy bien distribuido para llegar al siguiente nivel. Por lo que se puede ver, por ejemplo, se necesita 223 para llegar al nivel dos. Pero si queremos pasar de siete a ocho, eso requiere un poco más y bajando la línea, notarás que también cambia a medida que avanzamos. Entonces no perdamos más tiempo y veamos cómo implementamos esta distribución 0. Entonces, ¿cómo vamos a distribuir la experiencia que tenemos? Porque como hemos dicho anteriormente, no
queremos simplemente aumentar en 100 cada nivel. Queremos tener algo un poco más, digamos dinámico. Por lo que queremos ser un poco más duros cada vez. Entonces lo que he encontrado es esta página realmente bonita, y esto es del wiki Dark Souls. Si no estás familiarizado con Dark Souls, sí te recomiendo que lo juegues. Es un juego increíble y realmente un gran lugar para aprender cómo operan los RPGs. Se puede obtener mucha información. Entonces, por ejemplo, qué tipo de estadísticas de jugadores quieres. Y en esta página en particular está la cantidad de experiencia requerida para pasar de un nivel a otro. Entonces como puedes ver, los números no aumentan normalmente. Se puede ver, por ejemplo aquí se incrementaron en 13 y luego algún tipo de número. No voy a hacer las matemáticas aquí dentro, pero cada uno, por ejemplo, nivel, se
puede ver que hay una diferencia con respecto a los dos niveles anteriores. Entonces para llegar, por ejemplo, de este nivel a este nivel, se
puede ver que requiere alrededor de 300 tal vez almas para llegar de 690 a 707. Se puede ver que es mucho menos que un 100. Entonces esto es lo que queremos implementar en nuestro juego. Y por suerte, aquí tenemos una pequeña ecuación. Entonces como puedes ver, y equivale a 0.2 x a la potencia 3, y x es el número de veces. Entonces, ¿cómo puedo decirlo? Entonces por ejemplo, cada vez que esta es la x, comenzamos como el nivel base y luego aumentamos x y uno y así sucesivamente. Entonces en nuestro código, la x va a ser el yo, y vamos a tratar de aplicar esto. Entonces volvamos a nuestro guión y veamos cómo podemos hacer esto. Entonces quitemos el impreso aquí y empecemos de nuevo. Entonces tengo la fórmula frente a mí y te
recomiendo que también te consigas la fórmula en algún lugar a tu lado. Entonces vamos a abrir los corchetes y vamos a escribir
0 a F. Van a ser veces yo, veces yo, veces I. Y por qué estoy sumando tantas veces yo, porque si miramos atrás aquí, te darás cuenta que es 0.02 veces x al poder tres. Y podemos encontrar el poder en Unidad. Ups, podemos encontrar el poder y la unidad, pero creo que usar solo
veces, tiempos es mucho menos complicado y más fácil y evita muchos errores. El siguiente es 3.06 F veces I veces I, y eso es todo. Entonces veamos de nuevo, ahí tienes. Tiempos 2, 3.06. Entonces tenemos 105.6 veces x. así que va a ser 1.605 F veces I. Y ahí tienes. Vamos a ahorrar. Eso no será usando el menos 895. No creo que sea tan obligatorio. Vamos a mantenerlo en lo que es. Pero si has escrito la ecuación, notarás que hay un pequeño problema. Ahí hay una línea ardiente roja. Entonces si pasamos por encima de él, se puede ver que el operador de
flotación, flotar en el error de la izquierda es no puede convertir implícitamente flotador a un entero. Existe una conversión explícita. Entonces, ¿qué es lo pegadizo, qué está pasando? Entonces la experiencia para cada nivel es una matriz de enteros o, k Pero lo que le estamos alimentando es un valor que es un flotador. Entonces puedes ver cuando escribimos un flotador, así por ejemplo, 0 a F, Eso significa que esto es un flotador y 3.016 o 3.06 F como flotador. Entonces, ¿cómo vamos a poder alimentar un número flotador en una variable entera? Bueno, estoy demasiado cansada para hacer esto, así que te lo voy a dar como un reto. Convertir un flotador en un entero. Digamos que eres desarrollador de juegos y llegas al punto en
el que te encuentras con un problema como
éste, es el momento de usar tu increíble capacidad de resolución de problemas. Así que haz un poco de investigación y busca cómo convertir un flotador y a un entero. Existen dos métodos para hacer esto. Puedes ir a buscar estos dos métodos por tu cuenta, o te daré uno de ellos. Te daré el duro y es piso de
matemáticas a y no voy a decir más que eso. Pausa el video ahora mismo y ve a hacer el reto. Oh, bien, bienvenido de nuevo. Entonces, ¿qué encontraste, cómo hacerlo? Entonces si entramos aquí, se
puede ver que tenemos, nos conocimos, tenemos la palabra a ENT. Y puedes usarlo para convertir devuelve el entero más grande, más pequeño o igual a f. Así que ahí tienes. Es así como lo usas, Math.Floor y pones el flotador y citas esto por ejemplo, imprimiremos 10. Se pueden ver los ejemplos a su lado. Pero vamos a usar herramienta de mantequilla. Y esa herramienta es simplemente escribiendo y ante ella. Entonces puedes convertir cualquier cosa usando este método aquí mismo, aunque creo que ocupa más memoria de la computadora, pero no nos preocuparemos por esto. Seguro que tienes suficiente memoria en tu computadora con eso hecho, espero que hayas disfrutado y espero que estés cometiendo los cambios que estás haciendo. Y con eso dicho, veré en el próximo video donde estaremos probando nuestro sistema de nivelación. Entonces nos vemos.
42. Prueba de nivelación: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. En este video, hemos creado una forma de aumentar o de probar nuestra XP para el siguiente nivel aumentando la cantidad de experiencia. Entonces como pueden ver en este momento, estamos en el nivel uno. Para llegar al nivel dos, necesitamos 100, por lo que presionamos la tecla L. Se puede ver que llegamos a jugar o nivel 2. Ahora necesitamos un 123. Entonces ahí lo tienes. Para llegar al nivel 4, necesitamos 344, por lo que seguimos aumentando hasta llegar al nivel 4. Entonces, no perdamos más tiempo y empecemos. Ah, así que ahora queremos estar probando nuestro sistema de nivelación. Y vamos a entrar en nuestro guión aquí dentro y las estadísticas de los jugadores. Y vamos a crear un nuevo método. Por lo que este método va a ser un vacío público, agrega XP. Y aquí dentro le vamos a decir la enésima cantidad de XP. Puedes agregar la cantidad de XP a agregar, pero por ahora, solo sigamos el ritmo. Eso siguiente, lo que vamos a hacer es cada vez que llamemos a este método, vamos a conseguir nuestra XP actual y vamos a sumarle la cantidad de esperas que se sumen. Por lo que recordamos este plus igual de antes. Esto es lo mismo que decir que la actual x b es igual a la velocidad actual más la cantidad de XP. Está bien, genial. Ahora lo siguiente que queremos hacer es después de haber agregado la cantidad de XP, queremos comprobar si la corriente es
mayor que la XP para cada nivel a nivel del jugador. Entonces queremos seguir adelante y en primer lugar, eliminar de la XP actual menos igual a la XP para cada nivel a nivel del jugador. Y entonces vamos a querer incrementar el nivel de jugador en uno. Entonces ahí lo tienes. ¿ Por qué estamos quitando y aquí el EXP? Porque como sabes, por ejemplo, digamos que has reunido 480 XP y quieres ir al siguiente nivel. No te limitas a quedarte todo contigo no vas al siguiente nivel que lo hará, podría requerir 600. Para que no te quedes con el 480 y luego solo necesitas 200. Tendrás que volver atrás y o quitar la cantidad ya que tienes. Y no queremos ponerlo en 0. Porque digamos por ejemplo, queremos darle la opción al jugador para subir de nivel o no, al igual que un Dark Souls. A lo mejor no queremos que sea obligatorio, así que no queremos restablecerlo a 0. Simplemente eliminamos la cantidad de experiencia que se necesita para ir al siguiente nivel. Entonces este es nuestro método, eso es todo lo que tenemos que hacer. Y voy a emitir un reto para llamar a este método y actualizar. Así que usa la entrada de una clave y actualiza para agregar XP a tu jugador. Te recomiendo pausas el video ahora mismo y vete a hacer el reto. O puedes ver la mano que estoy a punto de brindarte. Ya hemos hecho esto. Pausa el video ahora mismo, ve al reto. O usa el punto de entrada, obtén el código keydown y usa una de las teclas. Así que pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Por lo que una actualización. Vamos a comprobar si el punto de entrada baja la tecla. Y con un código clave de, usemos L porque es la nivelación. Y lo que vamos a hacer es agregar XP y vamos a sumar 100. Entonces supongo que yo 100 es una buena cantidad para agregar. Ahora antes de seguir adelante, hay algo que me está molestando. El nombre XP para cada nivel. ¿ No es eso bueno de una representación? Debe ser el exp E para el siguiente nivel. Entonces XP para el siguiente nivel, representa batalla, lo que queremos decir con esta matriz. Entonces la XP para llegar al siguiente nivel es esta. De acuerdo, así que de vuelta en Unity y sigamos adelante y ejecutemos el código. Por lo que se puede ver que la corriente es de 36 y necesitamos 100. Entonces si teníamos el alqueno, notarás que ahora estamos en el nivel dos y aquí, y la XP sigue siendo 36. ¿ Por qué es eso? Bueno, porque pasamos del nivel 0 al nivel 1 y quitamos el 100. Entonces ahora si tuviéramos la LD una vez más, Ahí tienes. Seguimos en el nivel 2 porque requerimos a un 123. Ahora deberíamos ir al nivel 3. Sí, ahí vamos. Nivel tres y creo que restamos 223 del número que obtuvimos. Entonces por eso nos queda otra vez con 13. Por lo que necesitamos 344 para ir al siguiente nivel. Ahora vamos a por y con un 69 XP actual. Muy bonito. De nuevo, intentemos subir de nivel hasta el nivel cinco, que requiere de 470 a 469. Sólo necesitamos un poquito más así que vamos a sumar un poco de XP. Ahí vas. Estamos en el nivel 5 con un XP actual de 1970. Entonces como puedes ver, nuestro método de nivelación funciona completamente bien. Entonces espero que lo disfruten y los veré en el siguiente video donde
estaremos impactando realmente las estadísticas que tenemos sobre el jugador después de cada nivel arriba.
43. Nivelar las estadísticas: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, no sólo estaremos aumentando nuestro nivel por diversión, también
vamos a aumentar nuestras estadísticas a medida que aumentemos en niveles. Por lo que ahora mismo, ya verás que estamos en nivel una hora max, HP es de 100, maxmin de 30, destreza 10 defensa 30. Y ahora voy a presionar L y mantén los ojos puestos en las estadísticas de nuestro demonio o jugador. Entonces como puedes ver mientras subimos de nivel nuestra destreza, defensa y Max HP aumentan de diversas maneras. Entonces, no perdamos más tiempo e implementemos estos cambios en nuestro juego. Ah, así como conocemos un juego de RPG, cuando nuestro nivel aumenta, necesitamos tener más fuerza,
más formas de defendernos, más HP y más maná o el poder de la magia. Por lo que vamos a sumar esto o integrar esto en nuestra nivelación. Entonces vamos a entrar en nuestro guión y abrimos aquí. ¿Dónde estamos? De acuerdo, entonces cada vez que
aumentamos el nivel, vamos a hacer algo diferente. Queremos aumentar la destreza y la defensa, pero no cada vez. Queremos comprobar si el nivel de jugador en el que estamos actualmente es divisible por dos. ¿ Y qué significa esto? ¿ Conoces el cartel para modulo? Modulo esto divide el nivel de jugador por 2 y ve si hay algún residuo. Entonces, ¿hay algún otro término? Por ejemplo, si el nivel de jugador es 3 dividido por 2 en deja fuera uno, lo que hay otro número. Y cuando dividimos, por ejemplo, un número par por 2, tenemos 0. Entonces cuando sube un nivel parejo, vamos a aumentar la destreza en uno. De lo contrario. Si es un nivel impar, entonces vamos a aumentar la diferencia en uno. Por lo que cada nivel tenemos o bien la destreza o la defensa se incrementa en uno. ¿ Y qué más podemos agregar? En primer lugar, sigamos adelante y probemos esto. Nosotros lo guardamos. Asegurémonos de que lo guardamos de nuevo en Unity. Corremos nuestro juego para que como puedas ver, nuestra destreza y defensa o 30, Hagamos esto más pequeño. Entonces veamos cuándo subimos de nivel por primera vez. Entonces diez por 30, ahí vas, Porque estamos en el nivel 2, son incrementos de destreza. Entonces nuestra diferencia, luego nuestra destreza que nuestra defensa, destreza, defensa, destreza, defensa, etcétera y demás. Por lo que como puedes ver, estamos aumentando lentamente nuestras estadísticas de jugadores. Ahora, lo otro que podemos aumentar es el max, HP y TMax Mano que nuestro jugador puede tener. Entonces te voy a emitir un reto. Y tu reto va a ser aumentar el HP y el mono. Por lo tanto, aumenta el máximo de HP con cada uno de los niveles arriba. Multiplica el HP máximo por punto cero. Simplemente pondré un número arbitrario o cualquier otra relación
que considere conveniente y asegurarme de convertirlo en un entero. Haz lo mismo por la manera de los monjes. Así que pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Por lo que después de aumentar la destreza y la defensa, vamos a conseguir el máximo de HP. Y va a ser igual al piso de punto de Matemáticas a int. Porque vamos a utilizar el máximo de HP que teníamos anteriormente. Y lo multiplicaremos por cuánto dije que es 1.06? Sí. Eso es todo. 0.6 F. Sí, ahí vamos. Y como sabemos, cada vez que subamos de nivel, queremos establecer el HP actual en el HP máximo. Entonces no todos los juegos hacen esto, sino algunos, o la mayoría de los juegos en realidad cada vez que subes tu máximo de HP como un pequeño regalo, el HP actual que tu anuncio va al máximo HP a tu nuevo Max HP. Y vamos a hacer lo mismo por los modales. Entonces voy a duplicar esto, tiene un par de anteras y el maná max tendrá una relación diferente. Entonces tal vez, hagamos esto tal vez un poco pequeño. Ya sabes qué, hagamos este punto 18 y este 1.06. Por lo que no queremos mucho mono extra. Y la actual Mano, actual Mano se convierte en el máximo. Ahí vamos. Guarda eso. De vuelta en Unidad. Espere a que estos crypto compilen, ejecute el código, y ejecute el juego. Y veamos, cuando le peguemos a L, Ahí tienes. El HP máximo es ahora 117, la corriente es 117 y las máximas aumentaron, pero también. Entonces vamos, ahí tienes. Se puede ver que vamos aumentando lentamente el maná, pero en algún momento nos moveremos no sólo 1, Vamos a mover varios puntos. Ahí vas. Ahora vamos subiendo por dos y ahora seguimos a las dos. ¿ Todavía hasta algún momento? Sí. Ahí vamos. Está bien. En primer lugar todavía a las dos y en algún momento, creo que iremos tres niveles. No. Vamos, vamos, vamos, vamos, vamos. Está bien. Creo que fueron tres. Bueno, eso hecho. Espero que hayas disfrutado asegúrate de comprometer tus cambios. Y te veré en el siguiente video.
44. Gerente de juegos: Ah, está bien, así que queremos hacer un seguimiento de varias capas con sus propias estadísticas porque más adelante verás en nuestro sistema de batalla que tenemos varios jugadores,
varios enemigos atacándose entre sí, para que podamos mantenerlos rastreados en nuestro jugador principal, que es Jimmy el demonio. Queremos hacer un seguimiento de ellos en un objeto de juego o entidad o guión separado, que va a ser nuestro gestor de juegos. Entonces lo primero que vamos a hacer es crear un objeto de juego vacío llamado The Game manager, y vamos a restablecer su posición. Esto no es obligatorio, pero me gusta así que siempre sabemos dónde está. Por lo que no está apagado en algún lugar de la distancia. Y vamos a seguir adelante y guiones R o hacer clic con el botón derecho crear un guión C-sharp llamado Game Manager. En Enter. Espera a que se compile y puedes ver que tiene un icono diferente en él. Y esto es único para los gerentes de juegos. Por lo que Unity sabe que este es un guión muy importante que va a ser un juego casi todos. Entonces ahí lo tienes, lo puedes ver aquí mismo. Hagamos doble clic. ¿ Y qué vamos a hacer aquí? En primer lugar, vamos a querer hacer esta una instancia pública estática porque vamos a estar llamando mucho. Tan pública estática, gestor de juegos y instancia. Genial. Y a continuación vamos a crear un campo serializado que hará un seguimiento de todos los jugadores. Entonces las estadísticas de los jugadores, va a ser por supuesto una matriz, y lo llamaremos las estadísticas de los jugadores. Está bien, genial. Ahora y empezar, vamos a asegurarnos de que la instancia sea igual a esto. No queremos destruir onload. Entonces ya lo hemos hecho cuando queremos ir a una escena diferente. No queremos destruir esto. Y también lo vamos a hacer un mientras nuestro jugador, así que vamos a hacer que sea un patrón singleton. Entonces abramos al jugador. ¿ Y dónde está el agarre de los jugadores? Ahí vamos. Abre el guión y vamos a copiar esto. Pegar. Exactamente lo mismo. Y el encargado del juego, Ahí tienes. Y eso es todo. Eso es todo por lo que tenemos que hacer. Ahora. Viniendo desde aquí, hay dos maneras en las que puedes ir. primera forma es cada vez que llegamos a un determinado mapa o más tarde a una cierta cueva y reiniciamos enfrentando enemigos. Puedes seguir adelante y digamos, ¿Cómo puedo decir convocar a todos los jugadores disponibles con un jugador stat para pelear contigo. Entonces, por ejemplo, digamos que aquí tenemos al sanador. Podemos agregar un jugadores que a él o a ella. Y podemos añadir otro personaje, digamos el guerrero. Y le agregamos una estadística también. Y digamos que nos encontramos con algún tipo de monstruo y nuestro mundo mientras caminábamos, entonces necesitamos pelear con él. Por lo que todos los jugadores que estén en esta escena vendrán en auxilio de nuestro demonio Jimmy. Este es el primer mecánico en hacer esto. Entonces la forma en que hacemos esto es que vamos a seguir adelante, vamos a llenar las estadísticas del jugador va a ser igual para encontrar objetos de tipo y sus objetos no encontrar Objeto, encontrar objetos de tipo. En tanto que, así como se puede ver
, son objetos de tipo. Y esto devuelve un, todos los objetos que podemos encontrar que están bajo las estadísticas del jugador. Por lo que encontraremos todos los objetos de las estadísticas de tipo jugador y los agregaremos al array de estadísticas de jugador. Ahora este es un solo camino. Por otra parte, ya que en realidad vamos adelante y llenamos este campo serializado manualmente. Entonces, por ejemplo, digamos que no queremos agregar al sanador. Entonces por ejemplo aquí vamos a sumar el primero será el jugador, y el segundo será, por ejemplo, digamos, vamos a dar estadísticas de jugador al sanador y BC. Para que puedas ver que tiene estadísticas de jugador. Podemos cambiarlos. Digamos que hacemos destreza para la defensa siete y máximo 200 y entre bastidores sean 30, y así sucesivamente y así sucesivamente. Entonces, ¿cambiaremos esto por cuál es el nombre de Hillary? Sarah. Por lo que varios del curandero. Y digamos que cuando ejecutamos el juego, podemos encontrar todos los objetos del juego. Y conseguimos a Sarah y Jimmy, o podemos hacerlo al revés y Indie Game Manager, simplemente
agregamos el sanador aquí mismo. Y podemos adjuntar al jugador bajo el gestor de juegos y al sanador bajo el gestor de juegos y llevarlos con nosotros a través de cada C. Así que esto dependerá de cómo quieras que funcione tu juego. Te doy toda la capacidad, pero asegúrate de usar al menos uno de ellos. Prefiero simplemente encontrar a cualquiera que esté en las inmediaciones y agregarlos. Pero esto requerirá un poco de hacer un seguimiento de cuántos jugadores hay. No quieres agregar, digamos 500 jugadores a tu juego. Entonces con eso dicho, les
dejaré la elección. No hay reto en este video, sólo eso. Y veamos, en Game Manager, voy a quitar este y éste. Y ahora si ejecutamos nuestro juego, verás que debemos encontrar al sanador y el jugador está ambos aquí porque tenemos un jugador estático en cada uno de ellos. Entonces espero que hayas disfrutado, si estás disfrutando de las anotaciones y te gusto como instructor tomarte el tiempo para dejar una reseña, me ayuda mucho. Entonces dicho eso, te veré en el siguiente video.
45. Sección 7: UI de menú: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, vamos a estar creando un menú. Entonces como puedes ver, hemos creado un menú. Hemos creado varios botones y los ponemos todos bajo el objeto de un solo botón. He intentado espaciarlos tanto como pude. Y ahora si hacemos click en Maximizar en Play, solo para que podamos verlo, mucho mejor. Ram, y ahí vas. Se puede ver que tenemos ítems, estadísticas, Botón Guardar, Cerrar y Salir. Todavía no tenemos nada que mostrar por ello, pero por ahora esto servirá. Entonces. No perdamos más tiempo y empecemos. Ah, está bien, entonces es hora de crear un menú. Hasta ahora sólo teníamos el panel de diálogo lo mantendrá fuera del camino. Ahora es el momento de crear un menú. Y un menú tendrá muchas cosas en él. Tendremos el inventario, un botón de guardar, un botón y así sucesivamente. Entonces, empecemos. El primero que tenemos que hacer es hacer clic derecho aquí y vamos a ir a ti i, y vamos a crear un, ¿Dónde es un panel? Entonces ahora tenemos un panel. Vamos a seguir adelante y aumentarlo al máximo. Y vamos a darle el trasfondo que tenemos. Entonces vamos a sumar el fondo y ahí tienes. Entonces este va a ser nuestro menú. Si quieres, puedes hacer solo un poquito más pequeño, solo un poquito para que podamos ver tal vez los bordes de nuestra ganancia. Y ahí tienes. Entonces tal vez un centímetro, ahí tienes. Por lo que este será el trasfondo de nuestro juego. Y asegúrate de que la resolución sea 1920 por 1080, al
igual que la escala de nuestro lienzo. Lo siguiente que vamos a hacer es que vamos a añadir un botón a este panel. Y antes de que hagamos eso, cambiemos esto al menú. Ahora tenemos un menú y sigamos adelante y agreguemos un botón aquí. Botón So Buscar. Entonces tenemos un botón y lo que vamos a hacer es que vamos a conseguir este botón, lo
moveremos aquí arriba y tendremos que agregarle algún tipo de fondo para que se vea un poco mejor. Y como fondo de botón, vamos a utilizar uno de los recursos que nos he proporcionado. Entonces arrastra esto aquí, y ahora podemos arrastrarlo sobre la imagen del botón. Y ahí tienes, tenemos un botón de aspecto muy cool. Ahora, ¿qué hacer con el texto? Basta con eliminar el texto, haga clic derecho en la parte inferior. Y vamos a añadir nuestro propio texto Mesh Pro. Nosotros lo vamos a anclar a nuestro no, No vamos a precisar. Vamos a agregarle la fuente. Por lo que la herramienta de texto le agrega la fuente aquí mismo. Nosotros lo vamos a hacer completamente oscuro. Entonces ahí lo tienes, es completamente negro. Vamos a llamar a estos artículos. Por lo que artículos. Y sigamos adelante y hagamos que el texto encaje en el lugar correcto. Y en realidad también vamos a cambiar el tamaño del botón. Entonces, solo pongámoslos, estos artículos. Que así sea. Y vamos a, vamos a conseguir el botón, hacerlo un poco más grande. Y porque vamos a tener cuántos botones? 12345 botones. Así que asegúrate de ahorrar suficiente espacio para cinco botones. Voy a intentarlo lo mejor que pueda. Entonces este es el primer botón, los artículos. Ahí vamos. Y ahora es el momento de un poco de reto para ti. Y tu reto es terminar el manual. Así que crea el resto de los botones. Puedes duplicar el botón después de haber configurado todo. El mío no es perfecto todavía. Puedo cambiar un par de cosas y te daré una pequeña pista. Tendrás que tener las estadísticas, el Guardar, la ropa y la cubeta. Así que pausa el video ahora mismo y ve a hacer el reto. Oh, bien, bienvenido de nuevo. Entonces un par de cosas que voy a cambiar aquí, voy o bien el subyacente ya está presente. A ver, veamos cómo se ve desde lejos. Entonces si aumento el offset en la X, offset en la y, nope, eso no ayuda a mantener esto en 0 toneladas de Archytas. Entonces solo estoy experimentando viendo lo que funciona, viendo lo que no. Y si ya has hecho lo que necesitabas hacer, puedes saltar y terminar. Yo sólo voy a seguir adelante y tal vez añadir un resplandor. ¿ Qué pasaría si agrego el globo a través? No, no creo que agregar un pegamento sea buena idea. Déjame solo hacer esto un poco más grande. Entonces voy a aumentar el tamaño. A lo mejor que sea audaz. Y el tamaño de la fuente será más grande. Entonces ahí lo tienes. Artículos con buen aspecto. Y vamos a configurar esto correctamente para que muevan los artículos. Entonces ahí van, artículos, creo que esto será lo suficientemente bueno. A lo mejor encogerlo. Ahí vas. Yo solo quiero que el cráneo siga luciendo bien. Entonces probemos esto tan bien. Eso ha cambiado el nombre del botón, herramienta, Elementos, botón o botón de elemento o podemos llamarlo ítems. No se preocupe por eso. Entonces vamos a duplicar esto, Añadir junto a él, duplicar esto de nuevo, y duplicar esto de nuevo. ¿ Y cuántos botones hay? Cinco. Entonces duplique esto otra vez, y ahí va. Este es el botón final, y obviamente no son adecuadas. Por lo que no te aburriré con todo esto. Voy a parar el video ahora mismo. Y el siguiente, seguiremos creando nuestro menú. Entonces te veré ahí.
46. Información de los personajes: Bienvenido de nuevo a mis compañeros desarrolladores de juegos. Y en este video estamos actualizando nuestro menú creando información de personajes. Entonces si ejecutamos nuestro juego, verás que tenemos un diseño muy bonito del personaje y la formación. Tenemos los HP, maná y XP actual fue la experiencia que necesitamos
al siguiente nivel con la imagen del jugador con su nombre debajo y un número muy preciso. Entonces vamos a aprender mucho en este video. Es un poco largo. Y crear UI es siempre un proceso largo. Tendrás que tomarte aún más tiempo para que todo luzca mejor en tu juego. Entonces, no perdamos más tiempo y empecemos. Oh, bien, entonces lo que queremos hacer en este video es crear un par de paneles y aquí tal vez dos, tal vez tres. No estoy seguro de que veamos y sumamos todos los personajes y caeremos en él. Y no cualquier personaje. Y para el personaje y la caída de las estadísticas de jugador sobre los jugadores que tienen estadísticas de jugador. Entonces lo primero que vamos a hacer, y ya lo he hecho. He creado un objeto de juego el cual se llama Botones. He añadido todos los botones debajo de él, así que asegúrate de hacer eso. Lo siguiente que vamos a hacer es que vamos a crear un, otro panel en el menú. Y eso va a ser representando los antecedentes de la información del personaje. Entonces entraremos en ti. Buscaré el panel. Como siempre, llamaremos a esto el personaje NFO. Nfo. Y vamos a cambiar el fondo para utilizar el elemento que tenemos. Ahí lo tienes. Vamos a aumentar el Alfa. Por lo que es completamente no transparente y lo vamos a hacer muy pequeño. Entonces aquí dentro, va a ser tu elección. Si quieres tener, digamos tres, necesitarás hacerlo un poco más pequeño para que como puedas ver, pero también asegúrate de hacerlo un poco más grande para que podamos encajar todo aquí. Eliminar, oops, eso no estaba planeado. Entonces vamos a borrar esos, conseguir el personaje y seguir de nuevo. A ver si tres caben así. ¿ De acuerdo? A lo mejor hay que hacerlo un poco más pequeño. De acuerdo, así que déjame volver a borrar esos. Yo sólo usaré este. Y lo arreglaremos aquí, lo
haremos un poco más pequeño. De acuerdo, Entonces, ¿qué hizo eso? Lo siguiente que vamos a hacer es que vamos a seguir adelante y tratar de representar toda la información del jugador aquí dentro. Entonces, ¿qué queremos representar? Queremos representar el HP, el maná, el nivel actual, la experiencia que necesitamos para ir al siguiente nivel. Y creo que eso es todo lo que necesitamos. Si sí necesitamos algo más, lo
agregaremos más adelante. Entonces, empecemos. O también necesitamos este orgullo del personaje aquí dentro con el nombre. Entonces, empecemos con eso. Vamos a seguir adelante. Vamos a renombrar esto a personaje NFO. Entonces es sólo personaje NFO. Y vamos a añadir una imagen aquí, así que vamos a hacer clic derecho, ir a ti. Voy a la imagen. Ahí lo tienes. Y vamos a conseguir la imagen de nuestro personaje. Entonces solo usaremos uno de esos. Veamos la imagen, mientras que la imagen, y la vamos a arrastrar aquí. Vamos a hacer clic en preservar relación de aspecto, y voy a establecerlo en el nativo y luego hacerlo más pequeño. Entonces como puedes ver, cuando conservemos el aspecto o bucle, pongámoslo en nativo. Ahora establece el aspecto de preservar, y ahora deberíamos poder hacerlo un poco más pequeño. Entonces como puedes ver, conserva el tamaño y acabaremos de ajustar, que sea así de grande. Supongo. Entonces no voy a tratar de hacer esto perfecto. Va a ser tu trabajo. A lo mejor lo haré más tarde porque no quiero que el video se arrastre demasiado tiempo. Ahora lo siguiente es que vamos a añadir el nombre. Entonces vamos a hacer clic aquí, ve a ti. Añado un texto Nash Pro. Y sigamos adelante y usemos el color medieval. El tipografía medieval. Entonces el medieval, llamaremos a esto el nombre del auto. Y sólo escribamos aquí nombre de jugador. Y añadámoslo debajo del reproductor sprite aquí mismo. Asegurémonos de que sea lo suficientemente pequeño como para caber y de que sea completamente negro. Sí, ahí vamos. Y lo haremos audaz. Y acercar el zoom. Veamos cómo se ve eso y eso está debajo del jugador. Está bien, genial. Ahora bien, ¿qué más tenemos que hacer? Tenemos que sumar los HP. Vamos a duplicar esto y mover el personaje aquí mismo. Entonces este va a ser el personaje HP, y esta será la imagen del personaje. Y veamos qué tenemos aquí dentro. Entonces el personaje HP que vamos a hacer. Entonces ¿y qué más tenemos? A ver, Hagamos esto más pequeño, asegúrate de que estos alineados. De acuerdo, entonces aquí vamos a escribir a HP dos puntos. Y creo que esta no es la mejor la fuente para usar para esto. Si quieres cambiar la fuente, sí te recomiendo que si encuentras que esta fuente
no es lo suficientemente buena o no se ve lo suficientemente nítida desde la distancia. ¿ Y qué más tenemos? Bueno, necesitamos el mono, así que duplicaremos esto. Tendremos el maná y aquí, por lo que el personaje mano. Y vamos a escribir aquí mono. Y solo agreguemos algo para asegurarnos de que todo cabe, sumará 100 sobre 100. Por lo que ahora podemos ver que necesita ser representado un poco más grande. Y el HP también necesita cambiar. Entonces vamos a hacerlo 100 por 100. Y se puede ver que la fuente actual no tiene ningún carácter especial para los números. Entonces si quieres agregar otro, sí te recomiendo que si quieres un más cool buscando números, pero creo que esos son lo suficientemente buenos por ahora. Por lo que también necesitamos tener la XP actual, por lo que duplicaremos el personaje Manon también. Ahí vamos. Vamos a moverlo aparecer. Y vamos a nombrar a esto el personaje, tema actual. Y vamos a escribir aquí XP actual. Y vamos a hacer esto más grande. Ahí vamos. Vamos a aumentar el tamaño, se
asegura de que todos encajen. Lo colocaremos aquí arriba arriba a la derecha, el hombre del medio. De acuerdo, eso no se mueve. Tenemos que mover todo el objeto. Y ahí vamos. Entonces ahora tenemos el HP, el maná, y la corriente cambiará esto a un Nope, me refería a la XP actual. De acuerdo, ahí vamos. Y finalmente queremos ver la experiencia que necesitamos para el siguiente nivel. Entonces vamos a hacer algo especial al respecto. En primer lugar, vamos a duplicar esto. Lo llamaremos la XP al siguiente nivel. Ah, vamos personaje. Xp al siguiente nivel, y XP al siguiente nivel. Y en lugar de representarlo de manera numérica normal, vamos a representar eso usando un deslizador. Entonces antes de hacer eso, déjame simplemente hacer esto un poco más pequeño y reducir los espacios entre las letras solo para que sea más encontrable. Simplemente cámbialo alrededor de esto. Y tal vez un poco de distancia entre palabras. De acuerdo, así que ya es suficiente ahora es el momento de agregar un deslizador. Por lo que haremos clic derecho en el personaje NFO, ve a tu ojo. Y puedes ver aquí que tenemos la opción de agregar un slider, cobrar sobre eso. Entonces ahora tenemos un deslizador aquí mismo para representar a la XP. Y ahora ¿cómo vamos a cambiar esto? Déjame simplemente hacer clic en el personaje al siguiente nivel, bajar un poco, y tomar el deslizador, ponerlo en el mismo nivel, y hagámoslo un poco más grande. Entonces ahí lo tienes. Pero este deslizador es muy aburrido. Queremos hacerlo más emocionante. Entonces vamos a abrir el deslizador y vamos a eliminar el deslizador de mango aquí. Entonces, eliminemos eso. Se va a cambiar la imagen de fondo y el relleno también. Pero vamos a añadir nuestra propia interfaz de usuario. Por lo que te he proporcionado estos. Es una interfaz de usuario muy bonita. Son los mismos que éste de la misma carpeta. Por lo que agregaremos el relleno azul para representar o puedes agregar la naranja. Creo que voy a añadir el naranja y el fondo. Así que vamos a entrar en los sprites, elementos de la interfaz de usuario, y vamos a arrastrar el fondo del deslizador para el naranja y el amarillo. Y solo arrastremos el azul y el rojo los estarán usando más adelante. Entonces ahora tenemos estos. Volvamos a nuestro deslizador, al fondo. Añadamos la imagen de fondo al fondo del deslizador. Y en la película, se
puede ver que también tenemos un sprite de UI. Vamos a agregarle el relleno de naranja. Entonces ahora puedes ver si hacemos click en el deslizador, notarás si nos desplazamos hacia abajo en el Inspector, tenemos el valor. Si aumentamos el valor, ahí vamos. Podemos ver que podemos mover esta línea naranja para llegar al final. Pero aún tenemos un par de cambios que hacer. Entonces vamos a dar click en el fondo. Si miras en transformación directa, esta es la forma en que se representa. Está estirado por ambos lados. Eso no queremos. Queremos mantener presionada Alt y presionar el de la esquina inferior derecha, y se puede ver que se estirará a todos los lados. A continuación vamos al área de relleno en la película y vamos a estirar por todos lados. Ahí lo tienes. Por lo que ahora podemos conseguir el deslizador. Y si aumentamos el tamaño, se
puede ver que llena toda la zona. Si vamos al valor del deslizador ahora va de 0 a la longitud completa. Pero aquí hay un ligero problema. puede ver que está un poco fuera de los límites. Para arreglar esto, entraremos al área de relleno y solo lo moveremos aquí arriba y ajustados a nuestra preferencia se asegura de que ajustes los dos de la manera que quieras. En tanto que el final y haga clic en el área de relleno y aquí también, y allá van. Entonces para estirar esto para llenar todo. Y también puedes estirar esto para llenar toda la imagen sprite. De acuerdo, así que hagamos esto un poco más grande. Y ahí tienes. Ahora tenemos nuestra información de personajes, pero solo hay una cosa más que queremos agregar y es algo que está disponible en todos los juegos donde tenemos deslizadores que representan lo mucho que nos queda por ir. Y ese es un número exacto en este slider. Entonces te voy a emitir un reto y eso es agregar texto. Por lo tanto, agrega un texto para representar con precisión la XP en el deslizador para evitar confusiones. Y necesitarás duplicar el personaje y caer por otros dos personajes y nuestro juego. Así que pausa el video ahora mismo como un texto XP y duplica el personaje en la foto. Ten dos más. Oh, bien, bienvenido de nuevo. Por lo que necesitamos un número. Tenemos el deslizador. Se llama a esto, el deslizador de exposición. Y vamos al personaje y tal vez duplicar, o tal vez deberíamos hacer esto un poco más grande. No estoy seguro de que tengamos que trabajar en lo pequeño. Y diremos que son 100 mil. Y lo vamos a poner justo aquí en el número a medida que va. Entonces no me está permitiendo, tal vez necesita más de 100. Simplemente pon otro 0 extra aquí dentro. Y veamos cómo podemos ajustar esto. Ahí vamos. Por lo que es un número muy bonito, limpio que nos permite saber cuánto nos ha encantado realmente además del slider. Por lo que voy a aumentar el tamaño en ambos lados. Y por último, lo último que necesitamos hacer es
duplicar este personaje NFO y ponerlo justo aquí, duplicado de nuevo, ponerlo justo aquí. Y si quieres tener cuatro, bueno, tendrás que hacer espacio o más adelante aprenderás una técnica donde podemos cambiar el diseño de todo. A lo mejor añadir algún tipo de botón que nos permita ir a la siguiente página. Esa es una posibilidad si quieres tener más de tres caracteres. Pero como puedes ver, si volvemos atrás, si hacemos click en maximizar en el juego, ejecuta nuestro juego, y ahí tienes. Eso se ve realmente, muy bonito, sobre todo cuando ves personajes diferentes. Por lo que tenemos el HP, el maná, la XP actual, la experiencia al siguiente nivel. Y este es un deslizador dinámico que verás cómo podemos controlar más adelante. En el siguiente video, vamos a estar encendiendo y apagando el menú en función de la entrada del jugador. Porque actualmente como puedes ver, siempre
está en nuestra cara y no queremos eso. Entonces te veré en el siguiente video.
47. Administrador de menú: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. Como puedes ver, ya no tenemos el menú. Bueno, ¿a dónde se fue? Vamos a buscarlo con Jimmy. No hay menú, pero si presionamos cierta tecla, sí, ahí vamos. Tenemos el menú, pero si pasamos la misma tecla, desaparece, aparece, desaparece. Y podemos hacer esto todo el día. Entonces, no perdamos más tiempo y empecemos. Ah, caso. Por lo que actualmente nuestro menú se ve lo suficientemente bien. Por supuesto estaremos agregando más cosas más adelante, pero por ahora, necesitamos una forma de poder cerrar este menú y abrir. Entonces vamos a hacer eso y nuestro gestor de menús obviamente. Entonces hagamos doble clic en el administrador de menús y abrimos y Visual Studio, lo primero que necesitamos es obviamente una referencia al menú. Entonces vamos a duplicar esta línea. Y vamos a crear una variable de objeto de juego. Y va a ser el manual simplemente menú. Lo siguiente que necesitamos es que necesitamos una manera de
asegurarnos de encender y apagar el menú usando algún tipo de tecla. Y esa tiene que ser la misma clave. Por lo que no necesitamos usar, por ejemplo, la tecla M para abrir el menú. Y luego el, por ejemplo, no sé, pico para cerrar el menú, eso no es muy útil. Necesitamos una clave para hacer eso, y te voy a emitir un reto. Y tu reto va a ser comprobar si hay entrada, encender y apagar el menú usando la tecla M o cualquier tecla que quieras. Porque bueno, menú empieza con, y así mg es el mejor que usa en la actualización. Entonces creo que hemos borrado la actualización. Solo se puede usar una clave. Como ya he dicho. Te daré una pequeña pista sobre cómo puedes usar solo una clave si ya lo sabes o no lo sabes y quieres desafiarte,
pausa ahora mismo , ve al reto. De lo contrario, compruebe si el menú está activo en la jerarquía. Por lo que necesitarás crear una condición. Si está activo en la jerarquía, lo
apagará. Si no está activo, lo
encenderemos y ya sabes cómo poner algo activo. Esa es otra pista. Así que pausa el video ahora mismo y ve a hacer el reto. O K tu bienvenida de vuelta. Por lo que una hora codificando aquí bajo inicio, vamos a crear la actualización. Y se puede ver que inmediatamente itera para nosotros. No necesitamos escribir vacío privado, solo escribe update y hit tab. Entonces si el punto del menú está activo o activo y la jerarquía, entonces vamos a establecer el menú de puntos set activo en falso else. Y acabo de notar que ni siquiera tecleé el uso de la clave. Entonces lo haré ahora mismo después de que termine. Y si no está activo en la jerarquía que el conjunto de puntos del menú activo, va a
haber verdad. Y vamos a envolver todo esto en una condición de que la entrada FV obtenga keydown. Y en un código clave que es el m, moveré todos estos manteniendo presionada Alt y usando las flechas encabezando tabulador. Y ahí tienes. Por lo que ahora y actualizarse, sigue comprobando si teníamos la tecla M, comprobaremos si el menú está activo en la jerarquía. Lo pondremos en falso. Si no lo es, lo pondremos en verdad. Vamos a probar esto. Entonces voy a sacar el menú. Yo voy a correr el juego. Voy a golpear la tecla M y parece que no pasa nada. ¿Por qué es eso? Porque si hacemos doble clic aquí, no se ha asignado
el menú y la jerarquía activa para que puedas ver. Entonces eso significa que nos olvidamos de hacer el paso más crucial. Y que en Canvas, tenemos que darle el menú Objeto. Eso lo salvaremos. Dejaremos de maximizar en Play. Vamos a ejecutar el juego. Y cuando golpeamos la tecla M, ahí vamos. Se puede ver que tenemos nuestro menú. Si volvemos a golpear la tecla M, ahí vamos, se va, encendido y apagado va. Por lo que espero que lo disfruten. Espero que estén cometiendo sus cambios. Voy a escenificar todo ahora mismo y los voy a comprometer. Y si estás disfrutando del curso, te gustaré como instructor. Por favor, no deje una reseña. Me ayuda mucho. Entonces con eso dicho, te
veré en el siguiente video.
48. Movimiento de el jugador (de nuevo): Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. En este video, vamos a evitar que nuestro jugador se mueva cuando abra el menú. Entonces cuando abrimos el menú y aún pudimos mover a nuestro jugador. Entonces ahora cuando nos movamos en nuestro mundo, si abrimos el menú, verás que ya no podemos movernos. Y yo hice algo muy raro y tú debes. Por lo que soy capaz de controlar el deslizador usando el rastrillo como el ratón, así que nos ocuparemos de eso más adelante. Pero por ahora, no perdamos más tiempo y empecemos. Ah, está bien, así que actualmente tenemos un menú que podemos encender y apagar. Entonces si presionamos el MK, vas a ver encendido y apagado. Muy bien. Pero el problema es que, conforme nos estamos moviendo, podemos encender la llave y podemos seguir moviéndonos. Y eso no es algo que realmente queremos. Queremos evitar que el jugador se mueva cuando abra el menú. Ahora algunos juegos sí tienen la opción, no la opción. Bueno, siempre que abras el menú en esos juegos, aún
puedes moverte como,
por ejemplo, Dark Souls. Pero vamos a crear algo diferente. Queremos que el jugador se detenga. Por lo que ya hemos hecho algo parecido a esto. Si entramos en el Considerando que es el controlador de diálogo. Aquí, se puede ver aquí que cuando abrimos o cuando estamos hablando, cuando iniciamos la conversación, puede ver que la instancia de punto jugador, el Activar es igual a falso. Y hasta entonces, no, lo
estamos colocando en un lugar diferente aquí dentro. Entonces lo estamos poniendo a verdadero cuando activamos el diálogo y luego volvemos a falso cuando dejamos de hablar. Esto es bueno. Ahora tenemos que agregarla en un lugar diferente, que es el gestor de menús. Pero hay un pequeño problema. Estos podrían contradecirse. Si estamos activando el movimiento del jugador desde muchos lugares, podemos encontrar problemas donde, digamos que
dejamos de movernos o digamos que abrimos el diálogo y los abrimos y tú. Por lo que ahora podemos empezar a caminar. Podemos incluso probar esto y nuestro juego cuando lo agregamos al gestor de menús. Por lo que queremos evitar esto. Queremos un lugar centralizado donde paramos el movimiento del jugador y qué mejor lugar que usar el gestor del juego. Entonces Aquí crearemos dos variables, un bool público. Y van a ser el menú de juegos abierto
y se abrió el cuadro de diálogo. Y ahora una actualización, vamos a revisar por estos dos. Entonces si se abre el menú del juego Vi o se abre el cuadro de diálogo, entonces vamos a acceder a la instancia de punto del jugador el punto del movimiento activar y establecerlo en true. De lo contrario. Si ninguno de estos dos está abierto, entonces vamos a poner en falso la tercera instancia de desactivación del
movimiento o si uno de ellos cierra un gran. Entonces ahora tenemos un lugar central donde podemos detener el movimiento, pero aún no los hemos asignado. Y va a ser parte de tu reto. Por lo que tu reto es poner al booleano en el lugar correcto. Por lo que necesitamos evitar que el jugador se mueva en dos lugares y nuestros guiones, por lo que dos guiones, necesitamos detener el movimiento del jugador. Tenemos que ajustar uno de ellos. Y necesitamos establecerlos usando la instancia de la clase. Y por supuesto, la clase a la que me refiero es el Game Manager. Así que pausa el video ahora mismo y ve a hacer el reto. Oh, bien, bienvenido de nuevo. Entonces lo primero que pasa aquí, cuando presionemos el Encke accederá al gestor de juegos. Instancia, pensó que el menú de juego abierto y va a ser igual a verdadero, duplicará esta línea. Vamos a moverlo hacia abajo y lo pondremos a, o no, éste se debe poner en falso y éste es cierto. El menú se abre como igual a falso. Eso significa que esto ya no es cierto y necesitamos activar el movimiento se establece en falso. ¿ De acuerdo? Vamos a probar esto en nuestro juego, asegura de que la lógica funcione y ¿qué más? Es cierto, ¿de acuerdo? Y lo siguiente, necesitamos cambiarlo en el controlador del diálogo. Entonces, en lugar de la instancia de punto del jugador establecida en false, vamos a entrar en el gestor del juego. Punto de instancia de punto. El cuadro de diálogo se abre es igual a falso porque aquí terminamos de hablar. Por lo que las sentencias actuales son mayores que las sentencias de diálogo disponibles o la duración de las mismas. Por lo que el cuadro de diálogo está cerrado. Y aquí dentro, cuando se abra el cuadro de diálogo, va a ser la instancia de punto del gestor de juegos, el cuadro de diálogo abierto set a true. Entonces sigamos adelante y probemos esto. Entonces déjame mostrarte una vez más. Entonces tal vez no cogiste eso. Seguí adelante muy rápido. Ahí vas. Ahora entremos a nuestro juego. Vamos a golpear juego y podemos caminar por ahí cuando golpeamos la tecla M. Sí, ahí tienes. No podemos andar por ahí. Se puede ver desde la hierba, desde atrás. O podemos hacer doble clic en el jugador. Y ahí tienes. Este es nuestro jugador. Tratamos de movernos. Sí. Y esta es una de las características de tener un, un lienzo
tan enorme. Podemos mirar el Lienzo en nuestro menú de juegos, sin embargo aún ver en la escena correctamente lo que está sucediendo. De acuerdo, entonces ahora apagamos el lienzo o el menú. Podemos volver a caminar a la perfección. Ahora sigamos adelante y hablemos con nuestro curandero aquí. Entonces teníamos la llave. ¿ Podemos caminar? No, no podemos cuando terminemos de hablar, sí, podemos volver a caminar. Por lo que espero que lo disfruten. Espero que estés guardando tus repositorios y te veré en el siguiente video.
49. Configuración de la patina: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, vamos a estar configurando todas las estadísticas. Entonces cuando corremos nuestro juego primero, cuando tuvimos la tecla M, notarás que solo tenemos dos paneles de personajes si quitamos ahora al sanador, ejecutamos nuestro juego. Te darás cuenta de que cuando golpeamos la tecla M, sólo tenemos una porque sólo tenemos un solo jugador o personaje y nuestro mundo que tiene un jugador estático sobre él. Entonces, no perdamos más tiempo. Y tenemos que mover las estadísticas de actualización y al otro. Esto es algo que voy a cometer un enorme error. Entonces, no perdamos más tiempo y empecemos. Ah, está bien. Por lo que actualmente, déjame encender el menú. Actualmente tenemos todo configurado. Por lo que tenemos los HP, la cantidad de la XP actual y así sucesivamente. Todo configurado en términos de elementos de interfaz de usuario. Ahora lo que necesitamos es convertir estos elementos de la interfaz de usuario y a carácter
real y adelante utilizando las estadísticas de jugador que tenemos sobre cada uno de nuestros jugadores. Por lo que vamos a hacer esto en el gestor de menús. Si entramos en el lienzo, haga doble clic en Administrador de menús. Y tenemos a este grupo aquí mismo. En primer lugar, necesitamos una referencia a las estadísticas de los jugadores. Entonces crea un campo serializado aquí dentro, que va a ser un, oh, ¿sabes qué? Ni siquiera necesitamos convertirlo en un campo serializado. Podemos convertirlo en un campo privado. Y podemos moverlo aquí abajo ahora y sólo quitar esto. Entonces ahora vamos a crear un array privado de estadísticas de jugador, que se va a llamar simplemente las estadísticas de los jugadores. Lo siguiente, porque estamos accediendo a los elementos de la interfaz de usuario, tendrá que asegurarse de que tenemos usando la interfaz de usuario del motor de Unity. Y ahora queremos referencias a los diferentes elementos que tenemos. Por lo que necesitamos ponerlos dentro de un corchete, por lo que un campo serializado. En primer lugar, va a ser un texto y camino y va a sostener el texto del nombre va a contener el texto HP. Y es h p texto. Va a tener el texto de maná,
el texto de nivel, el texto de XP. Y creo que eso es todo lo que vamos a sumar a esto si
encontramos que necesitamos y tal vez debería mover esto hacia arriba o hacia abajo. No, solo lo mantendré mantendrá todos los elementos que están juntos sin ningún espacio entre ellos. Entonces lo siguiente que necesitamos es un campo serializado para estos deslizadores. Entonces un slider, va a ser, por
supuesto una matriz porque tenemos múltiples deslizadores. Por lo que XB, slider es el nombre de nuestra variable, necesitará un array de campo serializado para las imágenes. Campo tan serializado en cada matriz y el carácter, oops, la imagen del personaje. ¿ Y qué más necesitamos? Ah, necesitamos hacer un seguimiento del número de paneles. Por lo que actualmente tenemos tres paneles estáticos, pero digamos que solo tenemos un jugador con estadísticas de jugador en el juego, o tenemos dos jugadores. Entonces no queremos tener una tercera. Esto sólo hará que todo con cariño. Entonces lo que haremos es también referirnos a esto. Por lo que crearemos una matriz de objetos de juego. Y van a ser los paneles de personajes. Entonces panel de caracteres, guarde eso. Ahora vamos a poner todo en Unidad. Entonces si vamos a la gerencial de menú, ver que tenemos todo aquí dentro. Nosotros vamos a bloquear esto y luego vamos
a ir al personaje y falso los abrirá a todos. Entonces abriremos los tres. Y lo estamos haciendo porque queremos arrastrar y soltar todos ellos. Entonces en lugar de sumar cada uno, vamos así. Y en cambio vamos, por ejemplo, carácter, nombre de carácter, nombre de carácter. Y los arrastraremos a todos aquí. Y no nos está permitiendo porque por favor puedo arrastrarlo hasta aquí? No, no puedo y, y, y,
o.Entonces esto no es un impuesto. Este es el MP Pro. Guarde eso. Ahora, intentemos esto otra vez. Elegimos estos tres y no podemos usar el MPI Pro porque no hemos agregado las sondas TM que usan. Entonces, ¿ahora podemos continuar? ¿ Otra vez? Me está diciendo que hay un error. Espacio de nombres JMP Pro. Ya he agregado, estamos usando el TMP Pro. ¿ Cuál es el problema? Veamos en el controlador de diálogo, sí, ahí vamos a JMP Pro, el MPI pro. Creo que se resolverá en tan solo un poco. Text Mesh PRO techs mesh GUI, guarde eso. De acuerdo, entonces ahora por fin, vamos a elegir el nombre del personaje, carácter nombrado, el nombre del personaje, y arrastrarlo hasta el texto del nombre. Entonces como puedes ver, ahí vamos. El primero se hace referencia al primero, el segundo y el tercero. Y esto hará que todo sea más fácil. Siguiente cosa tenemos la HB. Por lo que HB carácter, HB, carácter HP carácter HB, arrástrelo en el texto HB. Entonces ahí lo tienes. Bhp, BHP. Lo siguiente es la mano a mano, una mano, hombre. Directo y texto. Ahí lo tienes. Por lo tanto, asegúrate de que el primero haga referencia al primero. Tenemos el texto de nivel. Tan actual XB, Jacqueline aquí, el personaje a siguiente nivel slider. Entonces esto es ordinal, el deslizador XP. Arrástrelo en el deslizador XP. El personaje imagen, que es algo que tendremos que cambiar. Por lo que las imágenes del personaje o no cambian. Lo que tenemos que hacer es que en realidad necesitamos agregarlas estadísticas de jugadores
envidiadas porque no lo hemos hecho ya. El personaje infos y al panel de caracteres. Y finalmente tenemos el texto de
XP, XP al siguiente nivel. Creo que esto es todo. Entonces personaje SP2, siguiente nivel, creo que es esto. Si volvemos a nuestra escena, sí, Ahí vamos. Por lo que ahora todo está configurado. Una cosa que tenemos que hacer es entrar en las estadísticas de los jugadores. Tenemos que subir en el NFO y heredar. Vamos a crear un campo serializado, que va a ser una imagen. Y no estamos usando elementos de interfaz de usuario. Entonces va a ser una imagen y va a ser la imagen del personaje. Guarda eso de nuevo en Unity. ¿ Dónde tenemos personajes? Entonces vamos a cerrar el lienzo por un segundo. Entra aquí. Y ahora podemos detener las cerraduras o presionar la bitácora para que podamos volver a ver qué está pasando aquí. Necesitamos la imagen, mientras que la imagen, podemos arrastrar el renderizador sprite. ¿Eso funcionará? No, tendremos que abrirnos, encontrar la imagen, y arrastrar esta imagen aquí. Y no es tomarlo porque necesita ser un sprite. Entonces como puedes ver, también
cometo muchos errores. Tiene que ser lo más brillante y arrastraremos aquí a los curanderos Brighton. Entonces ahí lo tienes. Guarda ese back end. O nuestro jugador también. Entonces Jimmy, mientras que dame, dame tu sprite. Muy adelante, guarde eso. Ahora, creo que esto funcionará. A lo mejor no sólo porque necesitamos cambiar el dónde está en el gestor de menús. Esto debería ser tal vez un sprite. Ya veremos qué pasa en tan solo un poco. Ahora, lo siguiente que necesitamos es que necesitamos un método para actualizar el estado. Entonces lo vamos a crear. Entonces antes de desvanecernos la imagen, y aquí vamos a crear un vacío público, actualizar estadísticas. ¿ Y qué vamos a estar haciendo aquí? Bueno, lo primero es que necesitamos las estadísticas de los jugadores. Entonces vamos a escribir estadísticas de jugador es igual a la instancia de
punto de gestor de juegos las estadísticas de jugador podemos acceder a ella? No, porque es un campo serializado, mientras que el manager del juego, es un campo serializado. Hagámoslo de la manera más profesional. Entonces vamos a crear un array público o público de estadísticas de jugador, y lo llamaremos las estadísticas de get player. Y simplemente vamos a devolver las estadísticas de los jugadores. Entonces ahí vamos y necesitamos convertirla en una matriz porque su tipo de retorno es una matriz de estadísticas de jugadores, no sólo un jugador stat Vamos a probar esto aquí dentro. El jugador, las estadísticas del jugador. Entonces ahí lo tienes. Ahora podrías haber evitado este paso de crear un método. Podrías haber cambiado esto a público y luego usarlo. Pero esa no es la forma más profesional de hacerlo. No queremos tener acceso a las
estadísticas de los jugadores porque no queremos poder modificarlas. Nosotros sólo queremos poder conseguirlos. No es problema cuando estás creando el juego, pero Por algunas
razones en algún lugar lo intentas o tal vez solo manipulaste un poco las estadísticas del jugador. Tendrás muchos problemas. Por lo que usando métodos como estos, realmente evite ese tipo de problemas. No queremos manipular las estadísticas de los jugadores. Nosotros sólo queremos conseguirlos. De acuerdo, entonces con eso fuera del camino, ¿qué más deberíamos estar haciendo? Si entramos a nuestro gestor de menús tendrá que actualizar el estado cada vez que abramos el menú. Entonces después de abrir el menú o antes en realidad, actualicemos las estadísticas. Por lo que actualizar las estadísticas. De acuerdo, entonces finalmente lo que queremos hacer es que queremos seguir adelante y apagar cualquier panel de caracteres que no se utilice. Y para hacer eso, te
voy a emitir un reto. Por lo que tu reto es activar los paneles de personajes. Así que crea un bucle que pase por las estadísticas del jugador y encienda el panel Personaje para los jugadores disponibles. Entonces lo primero es que necesitas apagar los paneles de personajes en Unity y luego usar el bucle para volver a encenderlos. Así que pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Entonces vamos a apagar todos estos. Vamos a guardar eso de nuevo aquí. Vamos a crear un bucle. Entonces para int I igual a 0, para I menos que VT jugador estadísticas longitud de punto. Y por aumentar en 1 cada vez. Primero que nada imprimamos cuántas soy tenemos. Cuántas IA no son nuestros ojos reales, los ojos y aquí, vale, Esa fue una mala broma. Vamos a acceder al panel de personajes en la posición I. Y vamos a ponernos activos. Cierto. Guarde eso. Ahora de vuelta aquí, veamos si eso funciona. Déjame apagar el menú. Hit play. Por lo que ahora le damos a la tecla M y no tenemos nada. ¿Por qué es eso? Ninguno de ellos ha sido encendido. Entonces oh, ahí vamos. Por lo que se puede ver que dos de ellos han sido encendidos y tardó un tiempo. ¿ Por qué es eso? Guardar? ¿ Nos aseguramos de que todo funcione correctamente? Vamos a subir el MPC por ahora y ver qué pasa cuando ejecutamos el juego. Teníamos la llave M. Ahí lo tienes. Por lo que sólo tenemos a uno de ellos activo porque hemos quitado al curandero. Tenemos que volver a encender al curandero. Tenemos que ejecutar el juego para que el gestor del juego pueda realmente encontrar. Entonces tenemos un M. Ahí tienes. Tenemos que, se
puede ver que tenemos un ligero problema de arreglar estos, presionando las dos veces, pero todo parece funcionar bien. Pero aún no hemos terminado porque
necesitamos llenar toda la información que hemos configurado. Eso haremos en el siguiente video.
50. Actualización de los datos: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, nuestro menú realmente hará algo útil. Entonces si miramos a nuestro sanador, digamos que la XP actual debe ser de 50, la casa actual debe ser de 60. Y no, porque el máximo es de 30, eso es ponerlo en 20. Y el maná actual será de tres. Vamos a ejecutar nuestro juego. Golpearemos la tecla M y notarás que tenemos todo configurado aquí correctamente. Incluso tenemos estos deslizadores. Se puede ver que está exactamente en el medio porque tiene, o ella tiene, la curandera tiene a Sara 50 puntos de un 100, por lo que está exactamente en el medio. Entonces, no perdamos más tiempo y empecemos. Actualmente, sólo estamos configurando los paneles para que estén activos. El siguiente paso es realmente seguir adelante y usar el dónde está en las estadísticas de los jugadores. Entonces, por ejemplo, establecer el nivel de los jugadores, la XP actual y así sucesivamente y así sucesivamente. Ahora algunas de estas tendrán que ser públicas para poder acceder a ellas. Entonces empecemos. El primero que queremos es el nombre del jugador. Entonces el texto del nombre en la posición I. Y estamos haciendo todo esto dentro del bucle for. Por lo que pasamos por todas las estadísticas de jugadores que están disponibles. Tenemos que asegurarnos de que sea dot txt y va a ser igual a las estadísticas del jugador en la posición I, que el nombre del jugador. Entonces como pueden ver, necesitamos cambiar muchas de estas. Ahora. Lo hemos hecho de la manera más sofisticada antes. Pero no creo que valga la pena la molestia de crear un método para cada uno de esos. Entonces simplemente podemos seguir adelante y convertirlo en público, hará públicas las cosas que necesitamos. Entonces va a ser el nombre del jugador de punto. Ahí tienes, Guarda eso. A continuación vamos a conseguir el texto HP en la posición I, el impuesto, el jugador. Ahora aquí dentro vamos a hacer algo diferente. Porque si volvemos, ejecutamos el menú. Apagamos, encendemos uno de los personajes. Te das cuenta de que HP no es simplemente el número. También es la concatenación con la palabra HB. Entonces si hago doble clic en el lienzo, si hago clic aquí, notarás que personaje NFO es HP dot y el número. Entonces lo que tenemos que hacer es tener eso en cuenta. Entonces vamos a escribir, primer lugar, abrir estas dos citas. Cotizaciones, está bien, Así HP, y luego vamos a sumar los dos puntos, y luego agregamos un plus. Y lo hicimos previamente en uno de nuestros grabados. Esto significa que estamos concatenando un entero con el HB. Entonces vamos a sumar otro plus. Vamos a sumar la barra delantera y otra ventaja, y son las estadísticas de los jugadores. Pensé Max HP, y tenemos que ir y aquí. En tanto que el HP máximo, el HP máximo es público y el HP actual también es público. Guarda eso de nuevo aquí. HB actual, Max HP, guarde eso. Está bien. A continuación tenemos el mono. Entonces necesitamos volver a entrar aquí y hacerlos públicos. Y haz clic en guardar eso de nuevo aquí. Y el texto como la manera actual y la máxima. Entonces, ¿qué tan aburrido es hacer esto? Pero es necesario así que el texto de nivel punto txt. Ah, y también necesitamos cambiar las cuerdas aquí dentro. Entonces maná, AHP. Ahora el nivel. Entonces, ¿qué escribimos aquí? El, oh, ni siquiera creamos un nivel, así que es el actual este impuesto de nivel se debe cambiar, creo que sí. Ve en el Canvas, gestor de menús, el texto de nivel, es el, bien, entonces es el actual, así que tenemos que cambiar. No creo que los textos nivelados realmente represente la palabra correcta, así que voy a cambiar esto al texto de XP actual y aplicarlo. Entonces la XP actual es el jugador coloca la XP actual, y no tenemos eso. También se puede agregar un impuesto al nivel. Entonces el nivel en el que está nuestro jugador, hacer esto público, guardar eso de nuevo aquí. XP actual. Y no pensamos en ninguno de esos. Guarda eso. ¿ Y qué más tenemos? Bueno, tenemos muchos más, pero por ahora, vamos a salvar Eso va aquí. Volvamos al personaje y caigamos término del menú. Y antes de que me olvidara de comer, solíamos tener las estadísticas de actualización aquí, pero la puse aquí pensando que ahí es donde abrimos. En realidad sabemos que n aquí es donde realmente abrimos los menús. Todo esto es donde vamos a llamar a las estadísticas de actualización back end nuestro juego, ejecutar el código y ahora vemos que cuando golpeamos la tecla M, tenemos un bono externo. ¿ Cuál es el problema? Por lo que estamos viendo el texto actual de XP. ¿Cuál es el problema? De acuerdo, bienvenido de nuevo. Entonces el problema es que cambiamos el nombre de la variable sin ponerla aquí. Por lo que de vuelta en el bloqueo del administrador de menús, eso es abrir el personaje NFO. Vamos a obtener el personaje mientras que el personaje actual XP. Y vamos a arrastrarlos aquí. Entonces ahí tienes. Guarda eso. Ahora no deberíamos tener ningún problema. Corremos el juego, tenía el MP. Sí, ahí vamos. Por lo que tenemos los HPs mayores de 100 menos 0 más de 30, y la experiencia actual es de 36. Entonces si queremos ir a revisarlo en el jugador, Vamos a desbloquear esto. Podemos ver que la experiencia actual Treinta y seis, genial. El siguiente HP es de 100, la h actual sea 0. Si lo hacemos 20, y apagamos el menú, lo
volvemos a encender. Ahí vamos. Por lo que tenemos 20 HP. Entonces esto parece o parece estar funcionando. Y ahora necesitamos terminar el resto y va a ser tu reto. Tu reto es completar el impuesto de experiencia. Así que actualiza el deslizador. Y en primer lugar,
antes de actualizar el deslizador, es
necesario actualizar el valor máximo en el deslizador. ¿ A qué me refiero con valor máximo? Si miramos atrás aquí, si hacemos click en el deslizador, se
puede ver que tenemos un valor y aquí tenemos el mínimo y el máximo. Entonces si decimos hacer el valor máximo 50, notarás que pasamos de uno a 50. Es necesario asegurarse de actualizar el valor en los deslizadores. Entonces con eso dicho, déjame llevarte de vuelta al reto. Pausa el video ahora mismo y ve a hacer el reto. Oh, bien, bienvenido de nuevo. Entonces lo primero que tenemos que hacer es que vamos a tener que entrar en el deslizador XP. De acuerdo, Así que XP slider en la posición i dot max value, va a ser igual a que el jugador inicia en la posición yo punto XP al siguiente nivel, y no la tenemos. Por lo que el x B2 siguiente nivel es público. Guarde eso, y veamos. Entonces para el siguiente nivel. Y aquí dentro tenemos que hacer algo muy importante. Tenemos que llevar al experto al siguiente nivel en una posición determinada. Entonces lo que vamos a hacer es que vamos a conseguir esta posición mirando las estadísticas de
los jugadores en la posición I, ese nivel de jugador. Por lo que necesitamos el nivel y el nivel del jugador necesita ser público. Entonces sé que muchos de ustedes podrían haber tropezado aquí. Esta fue la parte difícil del reto. Espero que lo hayas entendido bien. Entonces, ¿por qué estamos haciendo esto? Podrías estar preguntando,
entonces, ¿qué pasa aquí? Si vamos a la XP para el siguiente nivel, notarás que es una matriz y queremos conseguir la posición determinada. Por lo que necesitamos el nivel del jugador. Y usando el nivel del jugador, queremos acceder a la experiencia para llegar a la siguiente para configurarla. Entonces por eso aquí en el gestor de menús, estamos usando el nivel de jugador en la posición I y obteniendo el nivel que su anuncio y usando todo este entero y ordenó mirar a través de la XP para el siguiente nivel. Entonces espero que eso no fuera demasiado duro como un reto. Y ahora vamos a acceder al valor, los jugadores que puntan I. Y vamos a utilizar la exp actual, guarde eso. Y por último, necesitamos la XP gravada. Por lo que la XP gravada en el texto de posición i punto, por supuesto, es igual a las estadísticas del jugador en la posición I, la actual XB dot dos string. Por lo que este fue uno de los segundos retos. Sé que este reto fue muy duro. De lo que estamos haciendo aquí, si no agregamos un punto a la cadena, notarás que vamos a conseguir una flecha. Por lo que esta flecha nos dice que no podemos convertir implícitamente un entero en una cadena. Entonces para convertirlo en una cadena, vamos a escribir toString. Y luego vamos a sumar la concatenación con la Barra Delantera. Y luego accederemos a las estadísticas de los jugadores en la posición i, punto XP al siguiente nivel en la posición que ya hemos creado aquí. Entonces, ¿cuál es el siguiente nivel? Ponlo aquí. Y ahí tienes. Esto debería cubrir casi todo si no cometimos ningún error. Entonces ahora si nosotros, vamos a sumar de nuevo al sanador del PNJ. Entonces ahora cuando ejecutamos nuestro juego, teníamos la tecla M. Ahí vamos. Tenemos la experiencia al siguiente nivel porque tenemos, tal vez debimos haber escrito estos en blanco. Permítanme maximizar en el juego para que podamos verlos más claramente. Entonces cuando tuvimos el MK, Ahí tienes. Por lo que para llegar al primer nivel, necesitamos 100. Haremos de esto un color diferente. Tenemos 36. Para que veas que el deslizador cambia automáticamente y no tenemos la imagen para Sarah. ¿Por qué es eso? Porque debimos haber hecho esto no una imagen, sino un sprite. Y estoy seguro de que ese es el problema. Y ni siquiera eso no lo hemos asignado ni siquiera. Entonces aquí vamos a conseguir la imagen del personaje en la posición que lo haré. Por lo que imagen de personaje en posición yo punteé el sprite. Entonces, ¿por qué estamos haciendo esto? Porque si miramos hacia atrás en una de nuestras, digamos imagen de personaje aquí, notarás que tenemos la imagen y la necesidad de reemplazar el sprite en ella. Entonces la imagen del personaje dot sprite es igual a la y necesitamos asegurarnos de que el, ¿dónde está? El sprite en la stat del jugador es público. Por lo que va a los jugadores que en posición i punto personaje MHC2. Eso lo ahorraremos. Volveremos a Unidad y ojalá la imagen funcione. Entonces cuando teníamos la llave M, muy gol. Entonces, a pesar de que Sarah no se ve tan bien como debería, todo parece estar funcionando bien. Todo está funcionando correctamente. Entonces espero que hayan disfrutado de este video tan largo. Estamos alrededor de 20 minutos. Alguna edición ayudará con suerte, pero tenemos todo hecho. Y el siguiente video, estaremos creando una forma de navegar por el menú. Entonces te veré en el próximo.
51. Uso de los botones: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, vamos a poner nuestros botones a usar. Entonces si recuerdas, nuestros botones no hicieron nada. Pero ahora cuando tocamos el botón de artículos, obtenemos un panel diferente. Cuando golpeamos las estadísticas, obtenemos otro panel diferente. Y cuando dejamos el juego, se ve eso con, con el juego. Desafortunadamente porque seguimos en el editor de Unity, el rápido no hace nada. Será más adelante cuando construyamos nuestro juego, pero por ahora, funciona imprimiendo algo a la consola. Entonces, no perdamos más tiempo y empecemos. Ah, vale, así que actualmente, si ejecutamos nuestro juego, puede ver que si nuestro juego funciona algún día ahora, si le damos la tecla M, tenemos el menú. Todo está configurado bastante correctamente. A lo mejor necesitamos arreglar el sprite en el hilar pequeño aquí mismo, pero los botones no están funcionando. ¿ Por qué es eso? Bueno, porque no les hemos dado nada con qué trabajar. Por lo que necesitamos una forma de, cada vez que hacemos clic en el botón de estado o en el botón de elementos, queremos abrirnos en otros muchos. Entonces vamos a abrir el Lienzo, abrir el menú para que podamos ver todo. Y vamos a seguir adelante y poner todo el personaje y para bajo un solo objetos vacíos, o este será el personaje NFO. Y vamos a arrastrar los tres y al personaje y para TI. Y lo siguiente que vamos a hacer es que vamos a crear un nuevo panel. Entonces ve a tu panel de ojos y
lo vamos a hacer un poco más pequeño para que encaje justo debajo de los botones. Y vamos a darle el trasfondo que estamos usando. Entonces ve a los elementos, dale el fondo que siempre estamos usando y gira, whoops, ¿dónde está? Por lo que encendemos todo por completo. Ahí vamos. Incluso podemos hacerlo más grande. Entonces hagámoslo solo, oops, no, queremos hacerlo un poco más grande. Entonces ahí lo tienes. Por lo que tenemos más espacio con el que trabajar. Y este panel va a ser el panel de artículos. Por lo que los artículos o artículos o elementos panel en depende de ti. De lo que quieras nombrar. Simplemente necesita representar cuáles son los ítems correctamente. Está bien, genial. Por lo que ahora necesitamos una forma de encender y apagar este panel cuando recogemos los botones. Ahora hay muchas formas en que podemos crear un método en el gestor de menús para manejar esto. O podemos ir al botón Elementos. Entonces si abrimos los botones, vamos al botón Item. Si nos desplazamos hacia abajo, se
puede ver en el componente de juego inferior o en el componente de botón, tenemos un onclick. Este onclick, hace lo que dice. Siempre que haces clic en
él, hace algo y podemos añadir aquí una función para que haga. Por lo que puedes ver actualmente podemos agregar un objeto y aquí es donde estaremos. Oops, lo siento. Entonces si volvemos al botón Elementos aquí abajo, podemos arrastrar el panel de artículos aquí si nos deja. Por lo que el panel de elementos, y se puede ver que actualmente no hay ninguna función. Si hacemos clic en él, tenemos muchas opciones, y una de ellas es el objeto del juego. Para que podamos acceder al objeto del juego y hacer muchas cosas con él. Entonces por ejemplo, el nombre de la cadena y así sucesivamente. Pero lo que nos interesa es el set active book. Entonces si haces click aquí, ves que obtenemos esta pequeña casilla de verificación. Y esta pequeña casilla de verificación representa si queremos establecer activo en verdadero o si queremos establecer el activo en falso. Entonces si establecemos el activo a verdadero, eso significa que este panel se establecerá en bien activo. Entonces ahora si solo apago el panel de elementos, si ejecutamos el juego y apaguemos el menú, vuelve a encenderlo. Entonces si hago click en los Ítems, muy adelante. ¿ Qué tan guay es eso? Si vuelvo a hacer clic, no pasa nada porque no tiene nada más
que hacer, solo enciende el panel de elementos. Entonces así es como vamos a abrir y cerrar diferentes menús. Entonces con ese conocimiento, es hora de que creéis thes estados panel y desafío de deber. Tu reto es completar el botón stat. Por lo que tendrás que encender las estadísticas y todo lo demás apagado. Y no estoy hablando sólo del personaje NFO. Hablo de las estadísticas muchas. ¿ A qué me refiero con eso? Como puedes ver, tenemos un botón de stat que es
diferente a la información de carácter regular que hemos creado. Entonces con ese conocimiento, déjame volver aquí. Pausa el video ahora mismo, crea el panel de estadísticas. No necesita tener nada en ella, igual que los artículos. Puedes duplicar el panel de elementos y tendrás que configurar el botón de estado. Así que pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Entonces vamos al panel de artículos. Vamos a duplicarlo y lo cambiaremos al panel de estado. Ya veremos qué hace el panel de estado más adelante. Entonces entraremos en las estadísticas. Vamos a encender el panel de estado. Lo arrastraremos aquí, estableceremos el objeto del juego para que se active, y lo pondremos en verdadero. Pero no sólo eso, el reto también dice y todo lo demás fuera. Entonces volveremos aquí. Vamos a crear otro objeto onclick bajo el panel de estadísticas. Vamos a arrastrar el panel de artículos. Y aquí vamos a ir al objeto del
juego, poner activo, y lo pondremos en falso. Por lo que ahora cuando hacemos clic en el botón de estado o en el botón de stat, vamos a ponernos activos. Las estadísticas deben ser las estadísticas, no el estado. Entonces las estadísticas. Entonces cuando enciendamos el panel de estadísticas, apagamos el panel de artículos y haremos lo mismo aquí mismo por los artículos. Entonces, ¿cómo vamos a saber la diferencia? No estamos ahora mismo. Más adelante, a ver que hay una diferencia. Si lo desea, puede agregar tal vez un poco algo que diferencie los ítems de las estadísticas. Adelante y hagamos esto. En realidad, esa es una buena idea con la que acabo de empezar. Hagámoslo un poco más pequeño. Entonces ahora guardamos eso. Vamos a apagar el panel de estadísticas. Nosotros vamos a ejecutar nuestro juego. Déjame salir, vuelve a encender esto. Acude a los artículos. Ahí vas. Este es el panel de artículos, el grande. Ahora deberíamos tener uno más pequeño cuando teníamos las estadísticas. Ahí vas. Tenemos uno más pequeño. Todavía tenemos a los personajes aquí mismo. También puedes apagarlos. Por lo que el personaje NFO sólo debería subir cuando entramos. Entonces veremos cómo podemos entenderlo más adelante. También tenemos lo último que es el botón Salir. Y para eso, porque queremos dejar de fumar y salir de nuestro juego, vamos a crear un método para eso. Entonces entraremos al gestor de menús. Vamos a crear un método aquí dentro y va a ser un vacío público, dejar de juego. Y aquí dentro vamos a escribir punto de aplicación. Entonces lo que esto haga, nos sacará de la aplicación. Pero como aún no hemos construido nuestro juego, todavía lo
estamos usando en el editor de Unity. No va a hacer nada. Entonces lo que haremos es usar debug dot log. Y sólo vamos a imprimir un mensaje aquí que dice: Hemos dejado el juego. Guarde eso, vuelve a Unidad. Y veamos cómo podemos hacer esto. Vamos a entrar en el botón Salir, desplácese hacia abajo en onclick objeto. Nosotros vamos a, ¿dónde está? Dónde está vamos a arrastrar y el lienzo porque estamos usando un método que está en el gestor de menús. Entonces mientras que el gestor de menús, está en el lienzo, ahí tienes. El gestor de menús está en el lienzo. Por lo que arrastramos y vía Canvas hacia el objeto que se está pidiendo aquí, la no-función hará clic en él y notarás que deberíamos tener un gestor de menús. Y aquí dentro podemos acceder a todos los métodos que hay ahí. Y uno de ellos es el juego de dejar de fumar. Fade imagen también es uno de ellos. Por lo que siempre que quieras llamar a un determinado método desde el OnClick, asegúrate de que sea público. Entonces vamos a ahorrar eso. Vamos a apagar el menú. Déjame apagar el menú. Corriremos nuestro juego. Hemos tenido la tecla M, vamos a dar click a un quit. Y ahí tienes. Se puede ver el mensaje impreso en la consola con salir del juego. Entonces con eso hecho, espero que lo disfruten. En el siguiente video, vamos a estar creando nuestro panel de estadísticas, agregando todo lo que necesitamos para terminar ahí. Entonces te veré en el próximo.
52. Configuración de la frecuencia del estado: Bienvenidos de nuevo mis compañeros desarrolladores de juegos a este video muy, muy largo. Es largo porque tenemos muchos de ustedes yo para configurar. Entonces ahora si teníamos la tecla M, pinchamos en las estadísticas. Ahí lo tienes. Ya puedes ver que hemos creado un menú de Estadísticas. Tenemos el nombre de la defensa destreza arma equipada,
armaduras, armaduras de defensa, etcétera. También tienen estos nombres aquí dentro, y no son sólo para espectáculo. Si damos vuelta al sanador MPC, ahí vamos, Lo apagamos. Nosotros salimos, volvemos atrás y golpeamos las estadísticas. De acuerdo, eso no funciona. Eso puede apagar al curandero aquí mismo. Esto es tan incómodo. Tenía el juego equivocado. Por favor trabaje. De acuerdo, así que ahí tienes. Sólo tenemos un nombre porque sólo
tenemos un solo personaje que tiene estadísticas de jugador sobre ellos. Entonces, no perdamos más tiempo, y empecemos configurando estas estadísticas muchos 0. Por lo que en este video estaremos poniendo nuestras estadísticas. Entonces vamos a encender el panel de estadísticas y vamos a intentar restablecerlo a su tamaño anterior. Y vamos a dar click en el Tiki, que nos permitirá ir a la herramienta rec aparecer y sólo vamos a hacer que sea tan grande. Entonces ahí vamos. Este es nuestro panel de estadísticas que vamos a estar llenando. Entonces lo primero que vamos a hacer o déjame decirte la visión de lo que vamos a hacer y puedes ajustar tu propia visión de cómo quieres, las estadísticas a lucir. Vamos a añadir tal vez tres botones aquí o cuatro botones dependiendo de cuántos personajes o jugadores quieras tener. Y luego vamos a añadir una imagen aquí o dentro de aquí o en cualquier lugar, tal vez creo, a la izquierda para representar al jugador. Y luego vamos a sumar todas estas estadísticas aquí. Y tal vez te estés preguntando por qué es esto diferente a la información del personaje. Character NFO es justo para como cuánto muestra o tiene salud. Pero esto representará cuánto tiene el jugador defensa, destreza y qué armas estará equipado cosa más adelante cuando realmente creemos armas a equipar. Entonces este es el trabajo del lapso de estadísticas y no del personaje. El personaje es sólo una mirada rápida. Esta será una mirada en profundidad de lo que realmente hace el jugador. Entonces, empecemos. En primer lugar, vamos a hacer clic aquí y vamos a crear nuestros botones. Entonces entraremos en tu ojo y vamos a crear un botón. ¿De acuerdo? Pensé por un momento ahí no le daba clic. Vamos a darle la imagen de fondo a la que estamos acostumbrados. Y lo vamos a montar aquí para que lo hagamos un poco más grande. Ahí lo tienes. Creo que esto es suficiente. Y vamos a quitar este texto. Vamos a añadir nuestro propio texto, Nash Pro, y vamos a darle el medieval. ¿A dónde se fue? Entonces le vamos a dar el irregular medieval. Claro, bueno, se llama, se le va a llamar el nombre del jugador. Entonces ahí tienes, el nombre del jugador. También va a ser el nombre del texto. No tenemos que hacer esto, pero sólo lo cambiaremos. Lo hará audaz, lo
hará negro. Y igual que siempre. Entonces nada diferente ahora mismo. Y veamos qué está pasando aquí. Ajustemos el texto al tamaño adecuado. Y ahí tienes. A lo mejor haremos la fuente un poco más pequeña. De acuerdo, así que ahí tienes. Este es el nombre del jugador. Creo que este botón es suficiente. llamaremos el botón Capas. Y vamos a seguir adelante y duplicar esto dos veces. Así que duplicar los cisnes, arrástrelo un poco hacia abajo. Duplicar esta otra vez, bajó un poco. Entonces ahí lo tienes. Ahora tenemos a estos tres jugadores, y sólo espero que la distancia sea correcta conocedores. Entonces ahí lo tienes. A continuación vamos a añadir una imagen. Por lo que haremos clic aquí dentro. Y antes de seguir adelante, solo
hagamos esto bajo un solo objeto de juego. Tenemos una jerarquía muy bonita. Entonces como puedes ver de inmediato, esto se pone mucho confuso. Por lo que siempre te recomiendo que crees botones, staff, Panel, Botones en el panel de estadísticas y así sucesivamente. Por lo que tienes muy buena organización. De acuerdo, entonces lo siguiente es la UI, la imagen, y esta será la imagen del jugador, la imagen del jugador. Y sólo vamos a darle la imagen por defecto de nuestro jugador. Entonces, ¿dónde están en los personajes? Dale este. Entonces ahí lo tienes. Vamos a establecer en el aspecto de preservación SIFS nativo lo hará un poco más pequeño. Y no estoy seguro de dónde quieres poner esto puede estar aquí y luego poner todo a la derecha. Dependerá realmente, sí depende de tu toma tu tiempo. Yo estoy haciendo todo lo que está relacionado con tu ojo. Estoy tratando de pasar por ello porque no lo es,
no mucho como si no estuvieras aprendiendo nada duplicando botones. Por lo que me gusta desnatarlos un poco más rápido. Así que tómate el tiempo para crear tu propio diseño. Entonces la imagen del jugador, vamos a hacer clic derecho y vamos a crear dos conjuntos de, digamos cosas. Vamos a tener las etiquetas a la izquierda y los valores a la derecha. Y llegamos a tener en realidad, ya
sabes qué, sólo tienes que ir a los botones, ir a cualquiera de estos botones, duplicar el nombre del jugador, y lo pondremos afuera. Entonces ahí lo tienes. Ahora podemos usar este. Es mucho más rápido. Y este primero que nada, va a ser el nombre, así que el nombre del jugador, y sólo lo haremos un poco más pequeño. Ahí lo tienes. Por lo que nombre. Vamos a duplicar esto otra vez. Esto va a ser el HP va a duplicar esto de nuevo, y vamos a poner todos estos antes de empezar a duplicar esto, vamos a crear un objeto de juego vacío, las etiquetas, y vamos a poner todos estos bajo las etiquetas. Y los vamos a hacer de cara a la derecha así. Y pongámoslos en el medio para que estén todos ajustados a la derecha. Vamos a nombrar a esto el, el HB. De nuevo, vamos a hacer.
53. Muestra la información de la viuda del estado: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, te darás cuenta de que he cometido muchos errores, pero sí conseguimos algo ninguno. Entonces si vamos a las estadísticas, se
puede ver que el nombre es Jimmy HBS, 0 a uno más de 100, destreza 1030. Pero, ¿qué pasa cuando hacemos click en Sarah? Ahí vas. Se puede ver que todas las estadísticas cambian y podemos ir y venir a través de ellas. Entonces no me perdamos más tiempo y empecemos. Oh, vuelve. Entonces lo que vamos a hacer ahora es que vamos a montar nuestro panel de estado. Entonces vamos a configurar todo incluyendo los botones. Lo primero que tenemos que hacer es realmente establecer los nombres correctos en los botones. Y va a haber tu reto. Entonces tu reto es poner los nombres, tan tristes los nombres de los jugadores en los botones. Dentro del bucle accede al componente fiscal en los botones, y usa el componente Get in children para acceder a esos textos. Por lo que solo haces un poco de investigación sobre cómo funciona el Get Component y los niños. Esto nos ahorrará muchos, digamos, campos
serializados que necesitaremos agregar de lo contrario. Por lo que ResearchKit componentes y niños y úsalo para agregar el componente en lo gay. Entonces te veré en solo un rato. Oh, bien, bienvenido de nuevo. Espero que hayas intentado hacer esto. Entonces, ¿cómo funciona esto? Vamos a seguir adelante y usar los botones de estadísticas en la posición I. Después de que lo
hayamos puesto en activo, vamos a conseguir el componente y los niños y no voy a abrir los perros. Espero que lo hayas intentado. Pero como puedes ver, devuelve el componente de tipo,
tipo, el objeto de juego de los niños. Entonces estamos accediendo a los botones aquí mismo, y ellos tienen hijos que son el nombre del jugador o estos textos. Entonces vamos a acceder a ellos. Entonces vamos a conseguir niños o componentes en niños. Y como pueden ver, nos va a preguntar a qué tipo queremos acceder. Va a ser de tipo TM por fila, sin texto Mesh, mesh pro GUI. Y vamos a acceder al elemento de texto sobre ellos. Y va a ser igual a las estadísticas del jugador en la posición i punto nombre de capa. Entonces vamos a ahorrar eso. Vamos a volver a Unidad y esperar a que esto se compile. Apague este panel de pestañas. Vamos a correr el juego y vamos a ver, tenía el MPI abierto las estadísticas y ahí tienes, Jimmy. Por lo que necesitaremos ajustar un poco el nombre en estos paneles. Si miramos aquí, ¿dónde está el botón? Entonces, abramos esto. Vamos a ponerlos para que estén en el medio. Y creo que es suficiente. Guarda eso. Vamos a encender al curandero. Prueba esto una vez más. Asegúrate de que funcione. Y vamos a darle vuelta a esta AP Stats. Ahí vamos. Entonces Jimmy y Sarah. Por lo que espero que hayas entendido cómo conseguir componente y funciona los niños. Entonces lo siguiente que vamos a hacer es que necesitaremos todas las variables para representar las etiquetas y los valores. Entonces abrimos nuestro gestor de menús y vamos a necesitar muchos campos serializados. Entonces, en primer lugar, sigamos adelante y creemos un campo serializado para el texto o mensaje de texto pros o texto. Sigo olvidando que estamos usando texto Malla sonda texto Malla, pero, You Gui. Entonces es el nombre de la estadística, el stat, HP, stat mano. ¿ Y sabes qué? Te voy a emitir un reto y vamos a ver quién puede completar todas las cosas que requerimos primero. Tan stat maná, que mazos, defensa estadística. Y luego necesitaremos uno más. Y va a ser una imagen. Y el personaje stat Mucho. Ahí vamos. Lo siguiente que vamos a hacer es crear un método para actualizar realmente las estadísticas. Entonces aquí bajo el menú Stat, vamos a entrar en el vacío público y crear una actualización del menú de Estadísticas. Y porque tenemos diferentes, Así los llaman, la información del personaje, vamos a darle un argumento. Y este argumento va a ser un entero y va a representar el número seleccionado del jugador. Este método se llamará cada vez que hagamos clic en los botones de los jugadores. Entonces viste que teníamos a Jimmy y Sarah. Y cada vez que hacemos clic en Jimmy o Sarah, pasaremos una variable aquí dentro. Y en base a esa variable, actualizará todos los estados y todos los valores y etiquetas. Entonces, en primer lugar, tenemos el nombre, por lo que el nombre de stat va o dot txt en realidad va a ser igual a la stat del jugador en la posición, número seleccionado del jugador número..net o nombre del jugador de punto. Y debido a que vamos a estar usando esto cada vez, vamos a crear una variable que se va a llamar la pipa player stat Se va a llamar el jugador seleccionado y va a ser
igual a las estadísticas de jugador en posición capa número seleccionado. Y ahora podemos usarlo de inmediato aquí y guardar un poco de código, por lo que jugador seleccionado. Está bien, genial. Ahora lo siguiente vamos a usar la stat HB. Es jugador seleccionado, el HB actual HP, y lo vamos a concatenar con un HP máximo. Por lo que plus jugador seleccionó a Max HP. Y creo que necesitamos asegurarnos de que se trata de una cadena de dos para evitar cualquier error. A continuación tenemos el mono. Por lo que Stats maná, maná no creará la Mano. No. Sí, sí iniciamos Mano. Entonces, ¿por qué no se presenta? ¿ De esa manera? Ahí vas. Tan actual Madonna y la manera máxima. Está bien, genial. A continuación tenemos la destreza. Entonces vamos a crear, lo pondremos en una línea separada. Entonces, ¿cómo lo llamamos las mazos de stat? Yo creo que mazos, ahí vamos. Vamos a quitar esto y vamos a poner este a destreza. Entonces, ¿tenemos acceso a la destreza en las estadísticas de los jugadores? Yo no lo creo. Ahí vamos. Por lo que la destreza debe ser pública y también se utilizará la diferencia. Entonces hagámoslo público. Guarda eso de nuevo aquí. Destreza, dot toString, duplicar esta defensa de stat, defensa toString. Y finalmente necesitamos la imagen del personaje. Entonces el, no sé por qué duplicé esto. No lo necesitamos. Por lo que la imagen del personaje sprite. Entonces no me está permitiendo acceder a ella porque también esta debería ser la imagen estática del personaje. Entonces carácter e imagen de stat, sprite de punto. Ahí vamos. Y va a ser igual al jugador seleccionado dot player sprite. ¿ Qué tenemos? ¿A qué se llama aquí? Comprobemos la imagen del personaje. De acuerdo, entonces imagen de personaje. Ahí vamos. Y vamos a guardar eso. Y en el menú de Estadísticas, vamos a llamar a esto sólo una vez. Entonces eso se llama actualización del menú Estadísticas. Por lo que Estadísticas actualización del menú. Y vamos sólo con el 0, que debería ser el Jimmy, creo. Entonces vamos a guardar todo eso. Asegurémonos de que hemos salvado. Ok, entonces todo debe estar en su lugar. Volveremos a Unidad. Nosotros vamos a salvar esto. Nosotros vamos a ejecutar nuestro juego. Y ahora si hacemos click en el estado, ahí tienes. No tenemos nada de referencia. Por lo que no hemos hecho referencia al nombre de las estadísticas. No hemos hecho referencia a nada. Entonces, ¿cuántas veces debería Michael hacer este error hasta que finalmente lo consiga? Creo que tomará un poco más de tiempo. Entonces el nombre del jugador, PHP, V1, destreza, defensa y la imagen del personaje. En tanto que la imagen del personaje, bien Así es, creo que ahí está. Por lo que la imagen del personaje y todo lo demás como el arma equipada y demás, no
estarán usando por ahora. Por lo que ahora ejecutamos nuestras estadísticas de juego. Ahí vas. Y nada parece estar funcionando POR causa O. En lugar de darle los valores, le
he dado las etiquetas. muy inteligente. Nuevamente, volvamos la cerradura. Entonces como puedes ver, Michael comete tantos errores antes de que finalmente lo consiga. Y voy a mantener este final el video porque es importante saber que nadie es perfecto. Volvamos atrás. Vamos a ejecutar el código así que por favor Esta vez
golpeamos las estadísticas, tenemos el nombre Jimmy HP, 0 sobre 100 menos 0. Eso es porque no lo cambiamos en el jugador, y así sucesivamente y así sucesivamente. Destreza, Stan, defensa un 30. Todo está funcionando. Ahora. Tenemos que cambiarlo en el OnClick. Entonces ahora estos, si vamos a los botones que están aquí, verán que tenemos tres botones. El primer botón en el onclick no hace nada. Vamos a agregarle una función en el Lienzo. Vamos a ir al Gestor de Menús, vamos a la actualización del menú Estadísticas. Entonces como puedes ver, porque agregamos un parámetro, nos pide un entero. El primero va a ser 0. El segundo también va a tener el gestor de menús de Canvas uno. Y el tercero tendrá también la actualización de estado del gestor de menús de Canvas con entero de dos sub 1 o 0, 1. Para guardar eso. Esperemos que esto funcione y no haya cometido otros errores ni estadísticas. Jimmy, Sarah, Ahí vamos. ¿ Qué tan guay es eso? Entonces como pueden ver, tenemos la imagen cambiando. Obviamente, necesitamos hacer a Sarah un poco más pequeña usando estas canaletas, pero todo está funcionando para que puedas ver la destreza, la fuerza, demanda, y HP, incluso el nombre cambió en función de qué botón hacemos clic. Entonces, ¿qué tan difícil es eso? Espero que lo disfrutes si estás disfrutando del curso hasta ahora, pesar de que he cometido muchos errores, espero que te guste como instructor. Y si lo
haces, tómate el tiempo para dejarme una crítica, me ayuda mucho. Entonces te veré en el siguiente video.
54. Sección 8: crear artículos: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. En este video, vamos a estar creando un gestor de ítems que se agrega a cada uno de los elementos de nuestro juego. Y como puedes ver, ya hemos creado un maná, salud Océano, dos juegos de armaduras y dos conjuntos de hachas. Y notarás que una de ellas es de oro. Uno de ellos es sólo plata. Entonces, no perdamos más tiempo y empecemos. 0 caso. Por lo que necesitamos crear algunos artículos. En primer lugar, entonces lo que necesitamos es que necesitamos un guión para manejar estos ítems o para determinar qué tipos de ítems son estos, qué nombre tienen, qué valor y moneda tienen, y así sucesivamente y así sucesivamente. Entonces sigamos adelante y empecemos a crear. Por lo que entraremos en el script, crearemos una carpeta aquí dentro que llamaremos a la gestión de elementos. Supongo que manejar significaba. Y vamos a abrirnos, y aquí vamos a crear un guión C-sharp y lo llamaremos el gestor de artículos. Hit Enter. Espere a que se compile el script. Y sigamos adelante y abramos el guión. Entonces, ¿qué necesitamos aquí? En primer lugar, este gestor de artículos estará disponible para muchos tipos de artículos. Entonces, en primer lugar, tenemos los artículos regulares como, digamos monedas, pociones y demás. Tenemos armas y tenemos armaduras. Entonces, ¿cómo vamos a determinar cuál es cuál? Vamos a crear algo llamado enumerador, distinto al enumerador que utilizamos para los adolescentes de carbón. Es un numerador de tipos. Déjame mostrarte qué es eso. Creamos un público en y el tipo de elemento. Por lo que acabamos de crear un nuevo tipo de variable. Y esto se puede aplicar a, o esto puede tener tres, digamos pipas. Si quieres un tipo con tres tubos que pueda tener. Y así tal vez tipo no es la mejor palabra. Pero podemos tener o un objeto o podemos tener un arma, o podemos tener una armadura. Por lo que ahora cada elemento necesitaba elegir qué tipo es. Después vamos a crear una variable pública la cual va a ser de tipo, tipo de ítem. Entonces como puedes ver, porque hemos creado una enumeración ahora creamos, podemos crear una variable de tipo, tipo de elemento, y se va a llamar tipo de elemento. Por lo que ahora cada elemento, para cada elemento podemos establecer qué tipo de elemento es. Lo siguiente que vamos a hacer es que vamos a crear un nombre de elemento de cadena. Y te darás cuenta de que todos estos son públicos porque
queremos agilizar el proceso de conseguir realmente esta información. Vamos a crear otra cadena. Va a ser la descripción del artículo. Por ahora sabemos lo que realmente podemos crear eso en la misma línea. Entonces el nombre del artículo, la descripción del artículo, y no es necesario, pero es simplemente mejor. Y sigamos. Y aquí vamos a crear un entero público y este va a ser el valor y la moneda. Entonces el valor y las monedas. ¿ Qué más tenemos? Tenemos que configurar el sprite. Entonces es un sprite público. Y va a ser la imagen del artículo. ¿ Qué más tenemos? Necesitamos la cantidad de efecto que hace. Entonces si tenemos, digamos, por ejemplo, una porción, si tenemos un artículo, queremos decírselo, ¿cuál es la cantidad de efecto? ¿ Nos dará 100 HP, 200, ó 700 HP? Por lo que es una cantidad entera pública de efecto. Y también vamos a crear una enum para el tipo de efecto. Entonces vamos a tener una enum pública y va a ser el tipo de efecto. Y vamos a tener dos tipos. Va a afectar ya sea al HP o al hombre. ¿ Qué más tenemos? Necesitamos, vamos a necesitar crear la pipa de afecto público. Y se va a llamar tipo de efecto solo por la simplicidad de las cosas. Y por último, necesitamos algo para la destreza y defensa de las armas y armaduras. Por lo que público y armamento cubiertas 3080 y la defensa pública y armaduras. Así que defensa armaduras. De acuerdo, Entonces ahora creo que cada aspecto de un artículo configurado. Ahora tendremos que seguir adelante y crear algunos. Ahora si volvemos aquí. Vamos a entrar en los recursos que les he proporcionado. Y esta es una lista de artículos que usaremos. Para que veas tenemos diferentes escudos, diferentes ejes, el frente, espadas, etcétera. Tenemos corazones, tenemos porciones azules, tenemos porciones rojas para el, ¿a dónde fuimos? Entonces las pociones Lu, las pociones verdes y , las
monedas, las gemas, todas estas se pueden utilizar en nuestro juego. Entonces voy a entrar en los sprites aquí, hacer clic derecho y crear una carpeta. ¿ O sabes qué? No necesito crear una carpeta. Simplemente podemos arrastrar esta carpeta y aquí, pero asegurarnos de que tenemos una carpeta separada para el ítem sprites. Llamaremos a esto los artículos sprites. Y ahí vamos. Entonces haga doble clic aquí, ya ves que tenemos todos los sprites. Adelante y sumamos un par de artículos. Entonces vamos a sumar, digamos una armadura. Obviamente no podemos ver esta armadura porque está detrás de la ventana. Entonces otra vez, por favor, armadura, ¿Dónde está? ¿ Dónde está? Ahí está por alguna razón no estaba apareciendo. Vamos a ponerlo en segundo plano. Lo pondremos en uno. Y si no es muy visible, podemos aumentar la escala a dos por dos, digamos. Entonces ahí lo tienes. Tenemos el artículo en el suelo en alguna parte. Tal vez podamos agregarle algún tipo de fondo para que se vea mejor en el suelo. Pero por ahora creo que se ve lo
suficientemente bien cuando estamos caminando si ejecutamos el juego. Sí, ahí vamos. Podemos ver el artículo y podemos caminar sobre él. Pero no te preocupes, no tendremos la capacidad de caminar realmente sobre él. Entonces ahora tenemos la armadura. Podemos incluso hacerlo más grande si queremos. Creo que eso es exagerado. Por lo que 2.52.5. Sí, ahí vamos. Vamos a agregarle un poco de rotación. Entonces, oops, 2.5. Añadamos un poco de rotación. Ahí vamos. Entonces hay una armadura tendida en el suelo. Vamos a añadir un componente, el encargado de artículos. Y como puedes ver en este momento, este es el tipo de artículo que podemos elegir. Si se trata de un artículo, arma o armadura. Obviamente es un animal. Ahora necesitamos un nombre, así que vamos a llamarlo la armadura plateada. Necesitamos una descripción. Esto defenderá de los monstruos. Vamos a necesitar un valor para ello. Entonces digámoslo, vale 15. Necesitamos el ítem sprite, para que podamos arrastrar éste. ¿ Podemos, podemos arrastrar éste? Sí, ahí vamos. Por lo que la imagen del artículo ya está disponible. ¿ Cuánto afecta? No queremos estar usando esto en realidad e incluso podemos bajarlo un poco. Entonces creo que si bajamos esto, Es mejor. Entonces porque no es ningún tipo de artículo que podamos beber. Entonces, en realidad no vamos a estar usándolo. No vamos a estar usando la cantidad de hecho. Vamos a añadir una defensa de armaduras que puedes empezar a crear y algún tipo de condición que nos permita utilizar estas especificaciones en lugar de las otras. Pero no creo que valga la pena la molestia por ahora. Por supuesto, cuando más tarde estás creando tu propio juego. Por supuesto que no deberíamos tener todos estos disponibles. Entonces, ¿cuál es la defensa de armaduras? Digamos que son seis. Estos son sólo una especie de números arbitrarios extraños. Ahora a continuación vamos a sumar los actos. Entonces vamos a sumar actos aquí. ¿ O sabes qué? ¿ Por qué no solo duplicamos la armadura y la moveremos hacia arriba y cambiaremos el sprite a una x Así que ahí tienes. Esto es un hacha, digamos arma. Se llama la plata x. Esto matará demonios y monstruos porque somos un demonio. ¿ Es un daemon un monstruo? Ni siquiera estoy seguro de cuál es el valor. Creo que el eje son más baratos que la armadura. El ítems es sprite, es el hacha y la diferencia 0. O incluso puedes tener algún tipo de defensa para el arma. Pero como verás más adelante cuando construyamos nuestro sistema de batalla, no
estaremos tomando en cuenta la diferencia al atacar. Si tenemos el hacha y la destreza de armas, digamos que son nueve. De acuerdo, guarde eso. Genial. Ahora es el momento de un reto. Y tu reto va a crear el resto de los artículos. Así que crea el resto de los artículos. Qué tipo de artículos te recomiendo que agregues otra armadura y otra x. Algo que sea diferente puede ser eje oro. Es una buena idea o puedes agregar algún tipo de escudo. Tenemos escudos. Entonces dos tipos de clases, dos tipos de armaduras, dos tipos de movimiento. Por lo que no agregamos ninguna poción. Tendrás que añadir una poción. Y yo solo pondré clases aquí. Se puede acceder, puede ser lo que quieras, y puedes agregar cualquier otro artículo que quieras. Puedes agregar otros atributos a tus artículos. Entonces si piensas que hay más cosas a los artículos que sólo las cosas que he mencionado. Por ejemplo, puede agregar efecto sangrante. Entonces si esto, Digamos arma así dimensiones, puedes agregar el efecto sangrante después de todo, después de la cierta cantidad de daño y así sucesivamente. Entonces con eso dicho, pausa el video ahora mismo y ve a agregar el resto de los artículos. De acuerdo, bienvenido de nuevo. Entonces vamos a nombrar a esto los actos de plata y la armadura se llamará la armadura de plata. Y sigamos adelante y sumamos una x dorada. Así que este será un hacha de oro. Vamos a encontrar un hacha de oro. ¿ Es esto un hacha de oro? Sí, Hay. Esta es una x dorada. Vamos a cerrar. Vamos a mover un poco el hacha de oro. Y creo que estos son un poco demasiado grandes. No lo sé. A lo mejor los haremos un poco más pequeños. Entonces la x dorada que somos, asegúrate de que sea un arma. Se llama el Hacha Dorada. Y su descripción matará monstruos más rápido. Más rápido. Valorar moneda por supuesto, va a ser doble, tal vez hasta 25. El sprite va a ser el x2 y los actos. Y aquí X a la cantidad de efecto no necesitamos las armas destreza serán 18. Y ahí vamos. Entonces este es el hacha de oro. Consigamos alguna armadura dorada si tenemos alguna. Entonces no creo que tengamos ninguna armadura de oro. Creo que todo lo que tenemos es oh sí, ahí vamos. Tenemos alguna armadura dorada. Entonces armadura plateada. Armadura de oro. Copia eso, pegarlo aquí dentro defenderá de los monstruos. Mantequilla. El valor será de 35, donde cambiaremos los sprites aquí y la diferencia será de 19. Guarda eso. Entonces vamos a mover esto. Y aquí creo que los haré un poco más pequeños. Es decir, mira lo grandes que son comparados con nuestro gimnasio, el justo aquí. Y por último, necesitamos crear las dos porciones. Entonces voy a replicar la armadura dorada. Pondré las porciones aquí. Este será el océano HB y va a ser de tipo artículo. Va a tener el nombre. Entonces, ¿por qué no cambió la poción de HP? Gracias. Poción hb, esto te dará h ser el valor en moneda. Yo soy nano 7. Y veamos dónde está eso. Entonces, ¿dónde están nuestras porciones? Ahí vamos. Sprite, sprite y cantidad de efecto. Por lo que va a afectar el HP, la cantidad de efecto. Digamos que nos da 50 HB y solo quita este 0 o algo así. No importa. Y vamos a cambiar un poco la rotación. Duplicado. Entonces, ¿todo bien en casi duplicar esto? Y movámoslo a la derecha. Este será el océano monopolo. Elimina todo esto. Es un artículo. Y mano poción, nombrelo, esto te dará un valor en moneda. Creo que debería ser 11. Y encontremos la porción azul que está aquí, ponla aquí. Y la cantidad de efecto, creo que el 15 es lo suficientemente bueno. El tipo de efecto como el maná, que salvan todo eso. Entonces como puedes ver ahora tenemos un montón de artículos y si ejecutamos nuestro juego, Vamos a ver cómo se ve eso. Sí, ahí vamos. Entonces una, hay una poción, la tomamos. Ahí hay otra porción. Caminamos arriba, yo, hay algún tipo de armadura y aquí mucha armadura y hachas que podemos usar. Y voy a hacer clic con el botón derecho para crear un objeto de juego vacío, llamarlo los ítems golpeados Entrar, restablecer su posición, y tomaremos cada uno de los ítems y lo dejaremos caer debajo los ítems también cambiará la escala a 1.8 por 1.8. A ver. Sí. Ahí vas. Creo que estas porciones ahora son mucho más lógicas. Son más pequeños y parecen algo que cabría encima de nuestro edema de gimnasio y cosas que puede sostener en la mano. Quiero decir, mira, ¿qué tan genial sería eso? Esa x sigue siendo grande pero no se preocupe por eso. Por lo que espero que lo disfruten y los veré en el próximo video donde estaremos creando nuestro menú de artículos.
55. Ventana de artículos: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, como puedes ver, hemos creado una ventana de artículos de aspecto increíble. Entonces verás justo aquí que tenemos para justo aquí verás que tenemos el nombre del ítem. Deberíamos cambiar esto aquí mismo. Cambiará automáticamente. Contamos con dos botones por lo que podemos usar un artículo o descartar ese artículo. Y también hemos añadido una pequeña plaza aquí y arreglado un par de artículos. Y acabo de notar que el botón de artículos, deberíamos tener la imagen del artículo justo aquí para que la cantidad aparezca mejor. Entonces, no perdamos más tiempo y empecemos. De acuerdo, entonces ahora es el momento de crear un ítems Menú. Entonces qué vamos a hacer, así que ya tenemos algún tipo de menú de elementos, abre el menú y aquí vamos a encender esto. Y si vamos al panel de artículos, encienda esto. Ahí vas. Entonces ahora tenemos o ya tenemos un panel de artículos que podemos usar. Ah, está bien. Entonces ahora sólo hagámoslo un poco más grande por todos lados. Lo que vamos a hacer es que vamos a duplicar el panel de artículos. Lo vamos a agregar bajo el panel de artículos ya existente, y llamaremos a esto la descripción del ítem, esta opción de curva. De acuerdo, presiona Enter y lo vamos a hacer más pequeño. Entonces aquí es donde vamos a establecer la información de nuestros artículos. Entonces, ¿dónde tendrá un nombre y la descripción del artículo que hemos creado? Entonces vamos a entrar en uno de estos botones, el botón de elementos, Digamos que vamos a duplicar el texto y vamos a arrastrarlo hacia la descripción del elemento. Y lo moveremos hacia abajo. Y aquí dentro vamos a escribir que este es el nombre del artículo. Y obviamente queremos ponerlo a la derecha y tal vez el sábado hacia arriba. Entonces, solo ajustemos esto. Y de nuevo, este va a ser un video largo. Siento que a pesar de que no hemos empezado, pero porque cada vez que estás trabajando con UI, va a ser un video largo. Entonces los artículos nombre, y tal vez hacer esto un poco más pequeño. Entonces ahí lo tienes. Este es tipo del nombre de los artículos, creo. De acuerdo, entonces nombre del elemento, y vamos a cambiar este texto por el texto del nombre del elemento. Y lo vamos a duplicar. Y no, no duplicamos,
duplicamos ahora y vamos a añadir un aquí. Este va a ser el artículo, esta corrupción o vamos a llamarlo el, el guión o escritorio y escritorio. Entonces porque aquí no tenemos mucho espacio, sólo
tendremos que ver con lo que tenemos. Podemos incluso hacer esto un poco más pequeño. Por lo que vamos a hacer el panel de la descripción del artículo un poco más pequeño, así que tenemos más espacio para agregar. Los artículos moverán esto hacia abajo. Y ahí tienes. Entonces y este va a ser el ítem Texto Descripción del ítem. Oh, está bien, así que vamos a guardar eso. Ahora vamos a necesitar dos botones. Entonces, ¿qué podemos hacer con un artículo una vez que lo
elegimos aquí dentro, necesitamos usarlo o descartarlo. Por lo que vamos a agregar dos botones aquí, haga clic derecho y la descripción del elemento, o no tiene que estar en la descripción del elemento. Sigamos adelante y creamos fuera de ella, pero aún en el panel de artículos. Entonces un botón que vamos a estar arrastrando aquí abajo. Vamos a llamar a esto el botón Usar y ver tipo de fondo, ¿debemos darle? Bueno, es el fondo que estábamos usando. Por lo que los elementos de la interfaz de usuario, Vamos a dar que este fondo conjunto de preservar nativa. Digamos que tal vez no deberíamos preservar la relación de aspecto. Deberíamos sumar nuestra propia relación de aspecto. Esto se va a duplicar. A Botón Descartar. Entonces descarta botón, y si ya estás aburrido, recomiendo la verdadera pausa el video ahora mismo y solo tienes que seguir adelante y seguir adelante. Porque estas son cosas muy básicas. Entonces lo que voy a hacer, sólo
voy a borrar el texto de los botones. Haga clic derecho, Agregar sonda de malla de texto. Y vamos a nombrar este uso. Y el texto se va a quedar igual o hacer clic aquí otra vez en el texto Mesh pro. Scarred debió haber hecho eso antes. Vamos a establecer la fuente,
establecer el color completamente negro, ponerlo en negrita. Y ajustemos las posiciones aquí dentro así que vamos a marcar esta marcada. Nos vamos a asegurar que esté en el medio. Y ahí vamos, tal vez hacerlo un poco más pequeño. Entonces ahí vamos, el descarte. Creo que incluso podemos hacer que este botón sea más grande. Por lo tanto, permítanme borrar el botón estadounidense y trabajar en uno solo. Entonces se duplicó. Entonces haremos esto un poco más alto. Ahí tienes, un poco más ancho. Por lo que ahora podemos hacer encajar nuestro texto y solo un poco más y aumentar. Oh, bien, eso se ve mucho mejor. Por lo tanto, duplica el botón de descartar. Y lo vamos a mover justo al lado del botón aquí dentro. ¿ Dónde está el texto? Y vamos a poner esto a usar. De acuerdo, entonces ahora que se hace la parte fácil, empecemos con la acidez estomacal y antes de que me olvide, también tenemos que ir a la descripción del artículo. Duplicar esto también, porque queremos agregar el nombre del artículo aquí. Entonces vamos a hacer así, mucho más tiempo. Entonces debería ser justo por aquí. Y vamos a duplicar esto y ponerlo aquí abajo. Este sería el valor del nombre del artículo y el valor del artículo. Y sólo intentaremos tal vez configurarlo para que quepa en el texto, sea lo que sea. Tan auto size porque tal vez la descripción va a ser demasiado larga para caber aquí así que no queremos que se vaya por todo el lugar. De acuerdo, entonces ahora que la parte fácil está hecha, es hora de la parte dura. Y vamos a crear la caja de artículos aquí. Entonces para hacer eso, vamos a entrar en el cerrado la descripción del elemento y el panel del ítem haga clic derecho, vamos a crear un objeto de juego vacío. Estos serán los artículos que vamos a hacer que sea tan grande como el espacio disponible que tenemos aquí dentro. Entonces ahí lo tienes. Y ahora vamos a agregar el clic derecho aquí, crear o agregar UI un botón. Vamos a darle el trasfondo de este tipo de paneles. Entonces al igual que tenemos, y vamos a sumar el texto aquí abajo. Hagámoslo un poco más pequeño. Aquí abajo, vamos a 0. Esto debería ser un texto Mesh Pro, por lo que no se preocupe por esa sonda de texto Mesh. Y esta será la cantidad, cantidad. Eso es así porque más adelante tendremos artículos que podemos almacenar o apilar varias veces. Entonces podemos tener, digamos cinco porciones de salud en la misma posición. Entonces sigamos adelante y pongámoslo aquí abajo. Tamaño hará que la fuente escriba en 99. Vamos a lograrlo. No estoy seguro de qué puede ser completamente negro, tal vez completamente blanco. No estoy seguro de qué debería ser. Ya veremos más adelante. Y supongo que esto es lo suficientemente bueno. A lo mejor el botón necesita ser más cuadrado. Entonces el, vamos a ver. Lo vamos a montar aquí. Debe ser cuadrada. Entonces vamos a ver si es un libre hacer el ancho 160. Y sin embargo, creo que 120 por 120 es un buen número. De acuerdo, entonces moveremos un poco el texto a la derecha o no debería estar usando la t Siempre asegúrate de usar la herramienta rec cuando trabajes con elementos de la interfaz de usuario. Entonces por herramienta de rack, estoy en esta caja justo aquí, o presionando V T. ¿De acuerdo? Y por último, necesitamos añadir una imagen aquí. Entonces hacemos clic con el botón derecho. Vamos a la UI, agregamos una imagen. Y esta imagen será la representación de algún tipo de artículos. Entonces va a ser el artículo, ítems imagen. Y sólo vamos a añadir algún tipo de imagen por defecto. Entonces usemos el Hacha Dorada. Ahí vas. Así se llama un conjunto de hacha tamaño nativo o.¿ Cómo tira que preservan la relación de aspecto? Y lo vamos a anclar a todos los lados y aquí, así que allá van. Como pueden ver, tenemos el artículo aquí dentro. Entonces ahora el paso final es que vamos a agregar a los ítems un componente que se llama el layout, el layout de cuadrícula. Ya hemos cubierto este diseño de cuadrícula. Entonces necesitamos que sea 120 por 120 porque eso es lo que hemos dicho aquí arriba. El tamaño del botón debe ser de 120 por 120. Se puede ver aquí mismo. Y tal vez solo agregue un poco de espaciado o algo así. Entonces vamos a poner esto en 0. Y ahora si presionamos el botón, botón de
artículos, vamos a duplicarlo, duplicado, duplicado. Y veamos cuántos botones podemos agregar. Entonces te voy a emitir un reto aquí dentro, y tu reto es descubrir el nuevo componente. Entonces ya hemos cubierto este componente, lo
sé, pero es hora de que lo descubras. Tómese el tiempo para explorar el nuevo componente de cuadrícula y úselo para organizar los artículos de una buena manera. Así que encuentra el tamaño que quieres para tus artículos y asegúrate de cambiar el espaciado, cambiar el tamaño de las celdas, jugar, ver cómo puedes organizar tus elementos en el menú de ítems. Así que pausa el video ahora mismo y ve amigo, cada reto. Oh, bien, bienvenido de nuevo. Entonces vamos a ir a los ítems 120 por 120. Esos son mis números. No tienes que seguir mis números. Entonces voy a añadir un poco de espacio aquí y un poco de espacio así. Entonces, ¿cuántos artículos quieres tener? Y creo que quiero hacerlos en realidad más grandes. Entonces creo que un buen número, 150 como pueden ver, estoy experimentando. No estoy seguro de qué voy a usar. Yo sólo voy con el flujo, a ver qué pasa. Entonces es que suficientes artículos o deberíamos hacerlo aún más grande. Probemos 200 por 200. No, eso es demasiado grande. Por lo que 170 por 170. Es así como hacen los juegos, señoras y señores. Entonces ahí lo tienes. El 170 es un buen número. Y encajan perfectamente bien juntos. Entonces vamos a duplicar de nuevo. Y ya verás, sí, ahí vamos. Estos son nuestros artículos ahora son valores por defecto. Los cambiaremos más adelante, pero ahora que tenemos el diseño correcto, podemos eliminarlos todos. Y la forma en que puedes elegir la primera y la última, haz click en una de ellas. Sostenga Shift, haga clic en el último, hit, Eliminar. Ahí vamos. Por lo que ahora nuestros artículos muchos buen bloqueo. En el siguiente video, estaremos almacenando nuestros artículos en el inventario para que posteriormente
podamos añadirlos aquí en el menú de artículos. Entonces dicho eso, espero que lo disfruten. Ah, y antes de que me olvide, espero que no hayas cometido tus cambios porque no queremos que todo el PNG se comprometa. Entonces voy a hacer clic con el botón derecho e ignorar todo bajo activos, artículos, o incluso bajo activos sprites. Ignora todo, está bien, ahora seleccionaremos todos ellos y los artículos con artesanos manager y creamos unos artículos y muchos. De acuerdo, gran compromiso todo eso. Espero que lo disfruten y los veré en el siguiente video.
56. Listas en C#: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, vamos a estar creando un inventario usando listas y C-sharp. Entonces cuando ejecutamos nuestro juego, nada especial. Acabas de ver aquí, hey, se ha creado un
nuevo inventario porque tenemos un guión de inventario en el gestor del juego, esto será importante para el reto. Entonces recuerda, el inventario va en el gestor de juegos. Yo di el reto. No se preocupe. No perdamos más tiempo. Y empecemos. Ah, caso. Por lo que listas y C-sharp. ¿ Por qué estamos usando listas y C-sharp? Porque queremos crear un inventario. Y el inventario tiene una lista de artículos. ¿ Y por qué estamos usando una lista y no una matriz? Te lo explicaré en solo un poco. Pero antes que nada, sigamos adelante y creemos un nuevo guión aquí. Entonces si vamos a los guiones, haga clic derecho o vaya a los ítems derecho derecho y cree un inventario. Entonces en inventario, ahí vamos. Y abramos el guión. Y esto sigue sucediendo. Abre los guiones. Y lo primero que vamos a hacer es crear una lista privada, Privada. Y cada lista tendrá un tipo. Va a ser de tipo item manager y va a ser una lista de artículos. Entonces, ¿por qué estamos usando una lista de artículos y cuál es la diferencia entre una lista y una matriz. Por lo que las matrices tienen un sitios ya definidos. Entonces cuando creamos una matriz de jugadores, estadísticas y gestor de juegos y demás, ya
sabemos cuántos habrá. Podemos sumar a eso. Pero siempre que queramos quitarle un de
ella, va a ser muy difícil. Tenemos que descartar el lugar vacío que dejamos. Entonces, por ejemplo, digamos que creamos una matriz de tres lugares y se quita uno de ellos, entonces va a ser muy difícil reemplazar ese espacio vacío. Por qué las listas son muy dinámicas y mucho más fáciles de pasar. Y necesitamos algo donde podamos quitar un artículo y colocar un artículo muy rápido. No queremos estar empantanados quitando estos espacios vacíos y llenándolos de algo y reordenando todo y demás. Por lo que las listas son mucho más flexibles que la matriz. Entonces cada vez que
creamos una lista, necesitamos instanciarla. Entonces y empezar, cada vez que iniciemos nuestro inventario, vamos a ir a la lista de artículos. Y vamos a decir que es igual a una nueva lista de tipo item manager. Y tendremos que sumar estos dos corchetes y cerrar con punto y coma. Ahora lo que queremos hacer es que queremos asegurarnos de que se cree una nueva lista. Entonces es hora de un pequeño reto, y va a ser enviar un mensaje en la consola cada vez que se crea una nueva lista de elementos, cada vez que iniciemos una lista. Entonces lo consigues, inicia la lista. Y necesitarás usar el registro de puntos de depuración y el estándar de impresión. Así que pausa el video ahora mismo y ve a hacer este pequeño reto. De acuerdo, bienvenido de nuevo. Entonces debug, ya sabemos cómo hacer esto. Es un reto bastante fácil. Entonces debug backlog y el heno, se ha creado
un nuevo inventario. Guarda eso de nuevo en nuestro juego. Apagemos el menú por ahora. Corremos, oh, antes de ejecutar el código, no
hemos agregado el guión. Esto era parte del reto que quería que probaras. Espero que lo hayas hecho, espero que hayas encontrado este error. Necesitamos realmente agregar el inventario en alguna parte. ¿ Dónde deberíamos estar agregándolo? Bueno, creo que el mejor lugar un inventario es en el gestor de juegos. ¿ Por qué? Porque a medida que pasamos del guión al guión, queremos mantener nuestro inventario. No queremos, quiero decir,
del guión, me refería de escena en escena, queremos mantener nuestro inventario y Game Manager es uno de los pocos quieren objetos de juego que no se destruyan cuando pasamos de escena en escena. Entonces creo, de nuevo, Gerente es un lugar perfecto para almacenar en inventario. También puedes crear un guión separado o un objeto de juego separado para el inventario, o puedes añadirlo al jugador. Pero no creo que el jugador sea el mejor lugar porque
digamos en algún momento queremos matar a nuestro jugador y destruir el objeto. Queremos hacer un seguimiento del inventario y algo más permanente. Nunca destruiremos al gestor del juego. Entonces ahora que el encargado del juego tiene el inventario, vamos a ejecutar el juego. Y ahí tienes. En cuanto iniciamos el juego tenemos, hey, se ha creado
un nuevo inventario. Está bien, genial. Entonces ahora una de las cosas más esenciales para usar a
un analista es poder agregarle cosas. Y el inventario es muy importante tener una manera de agregarle. Entonces si recogemos los artículos, necesitamos agregarlos al inventario. Entonces volvamos atrás y nuestro script de inventario. Y aquí dentro vamos a crear un vacío público, añadir artículos. Y vamos a darle una discusión. Y ese argumento o parámetro va a ser de tipo ítems, manager, ítem. Guarda eso. Ahora aquí vamos a llamar a la lista de ítems y vamos a añadir el ítem. Cierra eso. Entonces, ¿ahora qué pasa? Este es un método especial de listas. Por lo que llamamos a los artículos, llamamos al método agregar artículos del inventario. Le damos el artículo que queremos agregar. Y luego accedemos a la lista de artículos que tenemos y le agregamos un artículo. Y la forma en que accedemos a la lista o al inventario es que vamos a crear un inventario público estático en postura. Ahí vamos y empezamos. Vamos a poner la instancia a esto. Ahí vamos, guarde eso. En el siguiente video, comenzaremos a visualizar cómo se verán estos artículos en nuestros artículos, hombres. Por lo que espero que lo disfruten. Espero que estés comprometiendo tu trabajo y te veré en el siguiente video.
57. Cómo elegir artículos: Bienvenidos de nuevo a mis compañeros desarrolladores de juegos en este video PARA, y de nuevo,
solo te mostraré no necesito decirte qué pasa. Entonces nos acercamos a la monopolización. Ahí vamos. Hace autodestrucción y tenemos manipulación se ha agregado al inventario. ¿ Qué edad tiene esa porción de HP? El blindaje de plata y el naranja dorado y los actos dorados. Entonces como puedes ver, tenemos un inventario que realmente funciona con los artículos que hemos creado. Entonces, no perdamos más tiempo y empecemos. Ah, así que es hora de empezar a recoger nuestros artículos. lo primero que tenemos que hacer para recoger un artículo como forma de interactuar con él. Entonces, ¿qué vamos a hacer mientras vamos a añadir un colisionador? Entonces vamos a revisar todos estos. Vamos a añadir un componente y va a ser un colisionador. puede elegir si se trata de un colisionador, un Colisionador de Caja, o colisionador de círculo. Simplemente elegiré un círculo. Entonces, ¿a dónde fue eso? Colisionador de círculo. Ahí vamos. Por lo que cada uno de estos artículos tiene ahora un colisionador de círculo. Puedes ajustar cada uno de esos. Por ejemplo, se puede ver que éste es un poco demasiado grande para el HP, para la poción. Por la armadura de oro. No, eso es lo suficientemente grande para la x, para la x plata y para la armadura plateada. De acuerdo, entonces ahora que tenemos un colisionador en cada uno de esos, vamos a hacer que sea un gatillo. Y vamos a ir a crear un método donde podamos activar algo cada vez que entremos a las inmediaciones ya sabemos qué significa gatillo. Entonces vamos a crear un emprendedor, entrar en cada artículo. Por lo que en el gestor de artículos, es el encargado de nuestros artículos. Entonces vamos a crear un on Trigger Enter to D. Y lo primero que tenemos que asegurarnos es que necesitamos, primer lugar, que es el jugador el que está bien chocando con el artículo. Por lo que no queremos que nada más recoja este artículo. Entonces si la etiqueta collision.com es el jugador, entonces aquí dentro vamos a seguir adelante y hacer un par de cosas. Entonces lo primero es que vamos a imprimir el nombre de los artículos. Entonces este artículo es y lo vamos a concatenar con el cual uno de esos y nombre del elemento. Entonces nombre del elemento, cierra eso, guarda eso de nuevo y nuestra Unidad, Vamos a ejecutar el código y ver si eso funciona. Así que corre nuestro juego. Y ahora si nos movemos a la porción de maná, ahí vas. Este rubro es reparto de demanda. Este maná es la porción HP. Armadura de plata, armadura de plata y oro y el hacha de oro. Entonces, ¿qué tan genial es eso? Ya sabemos qué artículo estamos recogiendo. Pero como saben, cuando recogemos un artículo en un juego, esos artículos desaparecen. No sigue parado ahí y observándonos. Entonces necesitaremos una forma de destruirlo. Entonces para destruirlo, te
voy a emitir un reto. Y tu reto es autodestrucción o autodestrucción. Por lo tanto, crea un gestor de métodos y elementos en el script de ítem, esto debería haber sido script de ítem que se destruye a sí mismo. Entonces úsalo cuando un artículo sea recogido por el jugador. Y te daré una pequeña pista. Si ya sabes destruir un objeto de juego, pausa el video ahora mismo y ve a hacer el reto. No usar destruir. Sí, eso es todo en un objeto de juego. Así que pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Entonces aquí crearemos un vacío público, aunque no creo que lo estemos usando en ningún otro lugar. Pero vamos a mantenerlo como público, se llamará a sí mismo destruir. Y aquí dentro vamos a destruir el objeto del juego. Guarda eso. Y ahora después de recoger el artículo, vamos al Sur destruido. Ahí vas. Guarda eso. De vuelta en nuestro juego aquí dentro. A ver si eso funciona. Entonces ahora deberíamos ver, por ejemplo, poción de
maná, y luego que los monopolios deberían desaparecer. Entonces lo recogemos. Ahí vamos. Hombre aborto a desaparecido. El estado de salud y todo lo que podemos recoger y todo eso desaparece. Tan genial estamos en camino a crear un sistema de artículos increíble y sistema de inventario. Pero todavía hay una cosita que tenemos que hacer y eso es en primer lugar, podemos quitar esto, comentarlo. Y en el inventario también comentará esto fuera. Ya no necesitábamos guardar eso. Ahora necesitamos realmente agregar ese artículo a nuestro inventario. Entonces lo que haremos es guardarlo todo aquí, entraremos en el artículo de adición. Simplemente imprimiremos la pista aquí, algo solo para hacer un seguimiento de todo y asegurarnos de que nada salga mal. Por lo que artículo soy y para hacer otra cosa, item dot item name plus the ha sido agregado al inventario. Guarda eso. Y lo que también podemos hacer igual que tenemos la longitud de una matriz. También podemos comprobar el recuento de listas de artículos. Por lo que contamos nos da el tamaño de la prueba. Y lo que tendremos que hacer aquí antes de que destruyamos las células. Vamos a acceder al inventario. Vamos a acceder a la instancia y vamos a añadir un artículo en ítems. Y el artículo que le vamos a dar es éste. Entonces guarde eso, y veamos si eso funciona. Por lo que de vuelta en Unity, vamos a ejecutar nuestro juego y vamos a comprobar si estamos agregando artículos para que recojamos el maná. Ahí tienes, hombre, el aborto se ha agregado al inventario. Después tenemos la porción HP se ha agregado al inventario y se puede ver que el conteo es de dos. El blindaje, el, ¿qué es? El acto de plata, la armadura dorada y los actos de oro. Entonces como puedes ver, hemos creado una forma de agregar cosas a la lista, el crecimiento de ella, y eso es todo. En el siguiente video, realidad
vamos a estar mostrando los artículos recogidos en nuestro inventario. Entonces te veré entonces. No olvides, para comprometer tus cambios.
58. Actualización de artículos en el inventario: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. No estamos haciendo nada de fantasía en este video, simplemente
estamos poniendo las bases que vamos a usar para salir
al siguiente video donde vamos a estar exhibiendo todos los artículos que estamos recogiendo. Entonces solo tendremos una referencia a un par de cosas. Hablaremos brevemente sobre la instanciación, y también vamos a crear un método que devuelva listas. Entonces, no perdamos más tiempo y empecemos. De acuerdo, entonces es hora de mostrar los artículos que estamos recogiendo. ¿ Cómo vamos a hacer esto? En primer lugar, permítanme encender el menú para que podamos ver claramente lo que está pasando. Entonces lo que queremos hacer es cada vez que recogemos un artículo, queremos crear una nueva ranura de artículo aquí. Y no queremos tener todas las ranuras de artículos disponibles aquí para luego encenderlas y apagarlas. Queremos realmente instanciarlos cada vez que los necesitemos. Entonces estamos teniendo un enfoque un poco diferente al anterior, sobre todo cuando estábamos creando carácter y 4, donde ya tenemos todo aquí dentro. Queremos crear algo diferente. Queremos realmente instanciar cada elemento ya que está siendo recogido. Entonces, ¿cómo vamos a hacer esto y qué incluso está instanciando? Bueno, no vamos a adentrarnos en instanciar en este video, pero déjame solo darte una pequeña visión general. El modo en que instanciamos algo es que tenemos un prefabricado del mismo en algún lugar almacenado en nuestros activos. Y cada vez que queremos crear algo que sea similar a este prefabricado, tal vez con pequeñas diferencias, podemos instanciarlo. Entonces lo primero, como sabemos, necesitamos la referencia prefab. Necesitamos al padre. ¿ Por qué padre? Porque queremos instanciar los elementos dentro de los ítems. Llamémoslo el panel de exhibición de artículos. Por lo que este panel de juego, por lo que necesitamos una referencia a este panel de visualización de artículos. que podamos crear artículos, botones, que serán nuestros prefabs dentro de aquí. Y debido a que ya hemos creado un diseño de cuadrícula, se
colocarán muy bien y nuestro menú. Entonces espero que no sea demasiado confuso. Yo sólo quería sentar las bases para los próximos dos videos para que no nos confundamos. Empecemos. En primer lugar, vamos a crear un prefabricado. Por lo que NR prefabs aquí. Adelante y arrastre el botón de elementos. Entonces esto será lo que usaremos para instanciar y también obtendremos una referencia al mismo. Entonces sigamos adelante y abrimos nuestros guiones y el gestor de menús, ¿dónde está? Entonces en Menu Manager y no nos hemos dado cuenta de cuántos scripts ya tenemos, nuestra ganancia realmente está tomando forma. Entonces, si eso es pequeño recordatorio, vamos a obtener una referencia al contenedor de ranura de artículo. Entonces vamos a crear un campo serializado. Va a ser de tipo objeto de juego. Este es el contenedor de nuestros artículos. Por lo que artículo, ranura, contenedor. Este será el, este el elemento de visualización. Entonces, ¿dónde está? Por lo que será el panel de exhibición de artículos. Y luego vamos a crear un segundo campo serializado el cual va a ser de tipo transformado. Y va a ser el padre contenedor de ranura de artículo. De acuerdo, entonces lo que puedo decir que el contenedor de ranura de artículos será el prefabricado que acabamos de crear y el padre serán los paneles de visualización de artículos. Entonces solo para evitar cualquier confusión, igual que confundí en
este momento, aquí será donde dijimos el padre, este será el contenedor que vamos a estar instanciando, va a ver todo eso en tan solo un poco desnudo conmigo. A continuación, tendremos que crear un método para mostrar nuestros artículos cada vez que los recogemos en el Administrador de menús. Entonces aquí, nos desplazaremos hacia abajo y después de la actualización del menú Estadísticas creará un vacío privado. Actualizar artículos, inventario. Y por ahora sólo lo dejaremos en blanco porque antes de hacerlo, necesitamos una forma de conseguir una referencia de nuestros artículos. Si buscamos en el inventario, notarás que la lista de artículos es privada, por lo que necesitamos un método en el inventario para poder obtenerlos. Entonces la forma en que hacemos eso es emitiéndote un reto y tu reto es crear un método de lista de tipos. Entonces crea un método que nos permita acceder a la lista de artículos. El método debe ser de tipo que devuelva una lista, un tipo particular de lista, y debe devolver la lista de elementos que tenemos. Así que pausa el video ahora mismo y sigue adelante y crea un método que nos consiga la lista de ítems. De acuerdo, bienvenido de nuevo. ¿ Cómo conseguiste todo eso? Y no estoy seguro de que estemos usando actualización por ahora. Por lo que solo lo eliminaré si sí lo necesitamos, lo crearemos más adelante. Entonces esto será un público porque vamos a acceder a él desde los guiones frontales. Va a ser de tipo lista. Ya lo sabes, pero ¿de qué tipo debería ser? Debe ser de tipo item manager porque estamos obteniendo lista de
estos ítems y se va a llamar la lista get items. No toma ningún argumento, y todo lo que hace es que devuelve la lista de ítems. Ahí vamos. Entonces, ¿qué pasa ahora cuando llamamos a la instancia del inventario? Accedemos al método get items list y nos devuelve esta lista de ítems. Entonces de vuelta en nuestro gestor de menús, ¿dónde está? Lo vamos a estar usando aquí para asegurarnos de que tenemos todos ellos. Y en el siguiente video estaremos agregando las ranuras del código a medida que sigamos con nuestro juego. Y tal vez antes de hacer eso, vamos sólo y el lienzo Eso es desplazar hacia abajo. A ver. Ahí vamos. El contenedor de ranura artículo. Este debe ser el botón Elementos. Y transformamos serán los artículos de exhibición. Y tal vez te estés preguntando, ¿por qué es de tipo transform, porque si hacemos clic en la pantalla Items, notarás que no tiene nada más que el transporte. Puede que hasta tengamos que cambiarlo a Rect, Transformar. Se trata de un tipo diferente de transformación que se utiliza sólo para los elementos o los objetos del juego en la interfaz de usuario. Entonces con eso hecho, espero que lo disfruten. No necesitarás comprometer tus cambios solo por ahora en el siguiente video. Entonces te veré entonces.
59. Muestra artículos recogidos: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. Este es un video muy emocionante porque cuando recogemos artículos, si vamos ahora a nuestro menú, vamos a ítems de estadísticas. Ahí vas. Se puede ver que tenemos todos nuestros artículos exhibidos con los sprites correctos y ¿cuántos hemos recogido? No, no representado por un número, pero se puede ver que tenemos tres botellas de promoción de la salud y así sucesivamente. Entonces este es un video muy emocionante. Realmente pone todo con lo que hemos trabajado juntos. Puede ser un código un poco complicado, pero lo aprenderemos todo paso a paso y comprenderás cada uno de esos pasos. Entonces, no perdamos más tiempo y empecemos. Está bien. Hora de llegar a la parte difícil. No es demasiado duro, pero es un poco nuevo. Entonces, ¿qué queremos hacer? Y nuestra codificación aquí, podemos ver que queremos actualizar los artículos en inventario. Entonces lo que haremos es ir por cada uno de los ítems de la lista de ítems. Y podríamos usar el bucle for, pero hay una forma mucho mejor y eficiente de acceder a cada ítem y a una lista determinada. Y ese es el bucle foreach. Entonces hablemos del bucle para cada uno, un muy central para. Por lo que permite pasar por cada cosa en una colección de cosas del mismo tipo y una matriz o lista, no importa. Entonces esta es la estructura que escribimos para cada uno establecemos el tipo, creamos un nombre en especie de cosas. Entonces será, por supuesto
deberían ser del mismo tipo. Por lo que esta será la lista a la que íbamos a acceder. Entonces por ejemplo, en nuestro caso, esta será la lista de artículos. Esta será cualquier variable que quieras nombrar para que podamos nombrarla ítems. Y será de tipo item manager porque estamos accediendo a item. Entonces cuando accedemos o cuando pasemos por cada uno de los elementos de esa lista, podemos conseguir la cosa o el artículo. Podemos usar algún método sobre él, o podemos enviarlo a algún otro método o ejecutar cualquier otra cosa que queramos con él. Entonces sigamos adelante e implementemos un bucle foreach. Entonces vamos a escribir para cada uno, vamos a abrir este pequeño corchetes y va a ser de tipo item manager. Se va a nombrar ítem. Y vamos a estar buscando en el inventario. Por ejemplo, dot get list. Entonces consigue lista de artículos. Entonces este es el método que hemos creado antes y aquí, así que allá tienes, Get items list. Entonces, ¿qué vamos a estar haciendo aquí en realidad? Bueno, lo que queremos es instanciar las ranuras de artículos que configuramos aquí mismo. Por lo que necesitamos crear nuevos botones, ranuras de
horas para el artículo cada vez que tenemos un nuevo artículo en el inventario. Y si entramos aquí, te
mostraré lo que significa instanciar. Por lo que como se puede ver, hay muchas declaraciones de ello en los perros de la unidad. Y uno de ellos, y el que vamos a usar es
éste que nos permite poner a ciertos padres para ello. Por lo que se convertirá en hijo de otro objeto o va a estar debajo de él. ¿ Y por qué necesitamos eso? Ya lo hemos cubierto en el video anterior. Queremos que los artículos creados sean los hijos de
este panel de exhibición de artículos para que se coloquen correctamente usando el diseño de cuadrícula. Entonces eso establecido, sigamos adelante y usemos este, el que usa al padre, y ya hemos configurado el padre aquí. ¿Dónde está? Por lo que ahí tienes, el contenedor padre de los artículos ranura. Entonces, ¿cómo vamos a hacer esto? Bueno, va a ser primero que nada,
de tipo Rect Transformate. Entonces Rect Transformate, ya dijimos por qué es transformación directa, pero lo repasaremos de nuevo para que puedas ver aquí mismo que es Rect Transformate. Entonces aquí también estamos instanciando una transformación envuelta, no cualquier transformación. Entonces de vuelta aquí, Rect Transformar va a ser la ranura de artículos y va a ser igual para
instanciar contenedor de ranura de artículo. Y este es el prefabricado que hemos configurado. Ahora tenemos que darle un padre que va a ser el padre contenedor de ranura de artículo. Y si nos detenemos aquí mismo, notarás que tenemos un error porque queremos
instanciar un objeto de juego en un Rect, Transformar. Y por eso vamos a acceder al componente. Entonces obtendremos el componente del transporte arrugado de ese objeto. Entonces espero que esto tenga sentido. ¿ Qué estamos haciendo aquí dentro? En primer lugar, estamos instanciando el contenedor de ranura de artículo. Y configurando el padre como el padre contenedor de ranura de artículo padre. Ya configuramos estas dos variables en el video anterior. Y entonces estamos accediendo al componente de la Transformación Rect para que podamos usarlo más adelante, tal vez si sí lo necesitamos. Entonces espero que quede claro. Guardemos todo eso. Volvamos a Unity, y sigamos adelante y apaguemos el menú. Con carrera, nuestro juego recogerá algunos artículos. Entonces 1, 2, 3, 4, 5. Trabaja por delante el menú. Iremos a Stat, vamos a artículos. Y no tenemos nada que mostrar porque
cuántas veces tengo que hacer este error antes de que finalmente lo consiga, terminamos los botones necesitan realmente llamar a este método de elementos de actualización. Por lo que un artículo agregará uno aquí. Lienzo, ¿a qué función quieres llamar? Voy a actualizar en el gestor de menús, ¿dónde está la actualización? ¿ Lo hicimos privado o caso? Entonces hagámoslo público. Di eso de vuelta aquí. Y ahora podemos gestor de dinero extra y actualizar artículos en inventario, guardar eso, ejecutar nuestro juego. Y ahora cuando recogemos algunos artículos, ahí vamos. Por lo que ahora le damos a la tecla M. estadísticas van a artículos, y ahí tienes. Para que podamos ver en nuestra consola que tenemos cinco artículos. Y aquí dentro se puede ver que tenemos seis. Eso es porque ya tenemos uno de los botones establecidos. Entonces, ¿cómo vamos a evitar esto? Y sobre todo si has probado esto por tu cuenta, notarás que algo muy raro sucede cuando sumamos todos esos. Golpeamos los elementos clave M, ítems, ítems, y ves que cada vez que estás aumentando. ¿Por qué es eso? Porque si volvemos en el código, notarás que estamos pasando por cada artículo y luego estamos instanciando el contenedor de ranura una y otra vez y otra vez y agregándolo al padre contenedor de ranura. Entonces, ¿cómo vamos a evitar esto? Bueno, no estoy seguro de cómo podemos hacer esto. He hecho mucha investigación, así que creo que este va a ser tu trabajo de hacer. Por lo que vas a destruir las ranuras antes de que las instanciemos. Por lo que vas a utilizar tus conocimientos recién adquiridos para eliminar o destruir las ranuras de objetos antes de actualizarlas. Y tendrás que pasar por cada ranura de artículo en el contenedor de ranura de artículo y destruir. Entonces con esa información, pausar el video ahora mismo, pasa por toda la ranura de artículos y el padre de ranura y destruirlos antes de actualizar el inventario. Para que no, paren el video ahora mismo y vayan al reto. Oh, bien, bienvenido de nuevo. Espero que no fuera demasiado duro. Entonces, ¿qué vamos a hacer antes de actualizar todo aquí o antes de instanciar? A lo mejor lo has hecho en un método separado. Eso no está mal. Pero podemos hacerlo en el mismo método. Vamos a pasar por cada ranura de artículo de transformación y el padre contenedor de ranura de artículo. Y lo que vamos a hacer es simplemente destruir el objeto de juego de tragaperras de artículo. Y estamos accediendo al objeto del juego porque esto es una transformación. Entonces debido a que el elemento slot container parent contiene tipos de transformación, vamos a destruir el objeto de juego ranurado artículo. Entonces, ¿cómo funcionará eso? Volveremos aquí. Vamos a ejecutar nuestro juego. Vamos a recoger algunos artículos. Y ahora verás que tenemos cinco artículos. Si vamos estadísticas ítems ahí vas 12345. Y eso es porque siempre estamos destruyendo los anteriores disponibles. Por lo que las estadísticas de back-end, notarás que ya no tenemos el error, pero hay un ligero problema. Y eso es que las imágenes siguen siendo las mismas, así que tenemos la imagen por defecto. Entonces para arreglar eso, volveremos a nuestro código y donde instanciemos nuestra ranura de artículos, vamos a crear una variable que será de tipo imagen. Será la imagen del artículo. Y va a ser igual al artículo slot dot find. Y vamos a buscar la imagen dentro de la ranura de artículos. Ahora bien, ¿qué es el hallazgo? Déjame mostrarte. Encuentra. Ahí está. Se encuentra un objeto de juego por nombre y siempre lo usas en un objeto de juego. Para que puedas ver ese juego objeto dot find. Entonces lo que queremos hacer, así que asegúrate de tomar esto y abrir documentos para que puedas verlo con claridad. Lo que queremos hacer es ir al botón Elementos aquí mismo y acceder a la imagen de los artículos. Entonces vamos a copiar esto porque es una referencia de cadena y mira a través de su nombre. Nosotros lo vamos a pegar aquí. Y vamos a conseguir el componente en él, que es de tipo imagen. Por lo que te recomiendo que uses este punto encontrar mucha moderación porque puede causar muchos errores, sobre todo si a veces cambias el nombre. Entonces si cambiamos la imagen de los elementos de nombre de debajo de la ranura de artículos, va a causar muchos errores. Entonces espero que hayas entendido lo que estamos haciendo aquí. Accedemos a la ranura de artículos que hemos creado. Por eso nos aseguramos de que sea una variable, para que podamos usarla más adelante. Encontramos la imagen que se llama ítems imagen. Obtenemos la imagen del componente. Y ahora vamos a establecer el sprite de punto de imagen del artículo para igualar al artículo porque estamos pasando por cada artículo,
recuerde, y nuestra imagen de artículos de inventario. Entonces vamos a guardar eso, volver atrás y nuestro juego, vamos a ejecutar el código. Y si recogemos algunos objetos, deberían tener la imagen correcta siendo mostrada. Tan imágenes estáticas, ahí vamos. ¿ Qué tan guay es eso? Por lo que hemos creado un inventario de muy buen aspecto, pero hay un ligero problema si en este momento recojo una segunda botella de salud. Por lo que artículos, poción HP. Permítanme duplicar esto. Entonces lo agregaremos aquí. Hemos agregado y aquí vamos a ejecutar el código. Por lo que ahora recojo 1231 de las pociones de salud y un par de otros artículos. Si voy estadísticas artículos, se
puede ver que tenemos tres pociones de salud. Ahora bien, esto no es un error. Todo está funcionando bien. Pero si jugaste juegos de RPG, notará que las pociones y otros tipos de gemas a veces son apilables. Por lo que tenemos este número aquí mismo debería representar cuántas porciones tenemos. A lo mejor espadas y hachas y blindaje y así sucesivamente. No necesitan ser apilables, pero las pociones sí necesitan ser apilables. Por lo que vamos a abordar este problema en el siguiente video y asegurarnos de
poner en escena todos sus cambios y la cadena fuente. Por lo que espero que lo disfruten. Espero que estés disfrutando del curso. Espero que te haya gustado como instructor. Si lo haces, de nuevo, te
voy a recordar, haz un plug-in aquí. Déjame una crítica sobre lo que me ayudó mucho. Gracias.
60. Artículos apilables: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, vamos a estar apilando artículos encima, uno encima del otro. Ahora, a pesar de que Jimmy el demonio puede poner hachas en su bolsillo, tiene bolsillos grandes para sumar bosones todos juntos. Entonces ahora cuando corremos nuestro juego, verás que si levantamos uno de los ejes y escudos, me refiero a Armen, también podemos recoger múltiples de estas pociones. Por lo que notarás que recogimos tres pociones de maná y por porción de HP. Entonces cuando teníamos, um, artículos de
estadísticas, ahí tienes. Te das cuenta de que tenemos un acto de cada uno y una armadura de cada uno. Pero cuando miramos las pociones, tenemos 43. Están apilados uno encima del otro y no en diferentes ranuras. Entonces, no perdamos más tiempo, y empecemos a apilar artículos. O, k Así que algunos artículos deben ser apilables, otros no deberían. Entonces monedas, océanos, y así sucesivamente. Todos deben ser apilables. Placas de armadura, cascos ,
espadas, etc. no deberían ser apilables. Entonces implementemos esto en nuestro gestor de artículos. Vamos a entrar al gerente de artículos. Y aquí dentro vamos a sumar dos nuevas variables. El primero va a ser un bool público y es apilable. Entonces si éste es cierto, lo
vamos a agregar un poco diferente en el inventario. Y otra variable que agregará
va a ser un entero y va a ser la cantidad. Entonces digamos que arrojas una porción de salud, puedes establecer la cantidad para que sea dos o tres, o cinco o 10. De acuerdo, entonces con eso hecho ahora necesitamos
crear un método especial en el inventario para agregarlos. Por lo que vamos a asegurarnos de que podamos comprobar una cantidad cada vez que agreguemos un artículo. Y actualmente vamos a quitar la impresión o tal vez, ya
sabes qué, vamos a quitarla o vamos a mantenerla como comentario. Entonces lo comentaremos. Ya sabes lo que fue quitarlo, vamos a quitar éste y éste. Y ahora vamos a revisar y los artículos. Entonces, en primer lugar, si el artículo que estamos buscando es apilable, entonces lo que vamos a hacer es recorrer cada uno de los artículos. Gestor nombrará a este artículo. Y luego lista de artículos Tory y V. Y luego vamos a comprobar si el artículo en la lista de inventario nombre del artículo
punto es igual al artículo que estamos tratando de agregar nombre del artículo punto. Entonces básicamente lo que estamos haciendo aquí es comprobar si ya
tenemos ese artículo en el inventario, vamos a ir a los artículos del inventario, vamos a acceder a la cantidad. Y lo vamos a aumentar por la cantidad del artículo que estamos tratando de agregar. Entonces, ¿qué está pasando aquí? Estamos en primer lugar comprobando si es apilable. Entonces vamos a mirar a través de nuestros artículos en la lista de artículos. Y vamos a comprobar si uno de estos artículos es igual al igual que el mismo que el artículo que acabamos de recoger. Y si lo es, entonces vamos a aumentar el monto
del artículo en el inventario por el monto del artículo que se nos da. Entonces digamos que ya tenemos dos pociones de salud. Recogemos dos pociones más de salud. Se incrementará en dos, por lo que tendremos un total de cuatro. Y por último, si no es apilable, eso simplemente va a agregar el elemento y la lista. Ahí vas. Ah, está bien. Correcto. Pero qué haremos si el artículo es apilable pero aún no se ha agregado. Por lo que es la primera vez que se le agrega al inventario. Vamos a crear aquí un booleano que hará un seguimiento de eso. Entonces un artículo booleano ya en inventario, y va a ser igual a falso solo por defecto. Y si está disponible dentro del inventario, vamos a ponerlo en verdad. Por lo que el artículo ya en inventario es igual a verdadero. Entonces eso está establecido. Pero si no lo es, entonces crearemos una condición aquí dentro que va a ser si el artículo no está ya en el inventario. Por lo que notarás que tengo este signo de exclamación. Entonces si el artículo en inventario es falso, eso significa que no fue encontrado en el inventario y la pendiente aquí mismo. Entonces lo que vamos a hacer es simplemente ir a la lista de artículos y agregar ese elemento. Como normalmente lo hacemos. Ahí vamos. Entonces lo que está pasando aquí dentro, como ustedes saben que aquí y este bucle por-cada, estamos mirando a través de todos los artículos y comprobando si
tenemos ese artículo dentro del inventario. Y si lo encontramos, lo incrementamos por la cantidad que estamos recibiendo. Y estamos poniendo los artículos que ya están en inventario a verdaderos. Por lo que esta condición no accede, o esta, esta condición aquí es falsa. O toda la condición aquí mismo con el signo de exclamación es falsa. Por lo que no agregamos el ítem a la lista. Simplemente lo incrementamos por la cantidad. Si no lo encontramos, entonces el artículo en inventario se mantiene falso, entonces toda esta condición con el signo de exclamación es cierta. Eso significa que tenemos que añadir el artículo. Entonces, vamos a guardar todo eso. Volvamos a nuestro juego. Y ahora cuando recogemos todas las pociones de salud, no
deberíamos ver tres. Sólo deberíamos ver a uno de ellos. Entonces ahora recogemos estos. Vamos a artículos de estadísticas. Entonces ahora volvamos atrás y hagamos la unidad. Y deberíamos ver que en la armadura de plata que tenemos es apilable y la cantidad. Entonces vamos a ir a la porción HP, asegurarnos de que sea apilable. Tenemos que sumar a todos estos que el monto es uno. Deberíamos haberlo puesto como predeterminado cada vez que creamos cualquier objeto, debes asegurarte de que al menos haya uno y la porción HP como uno y así sucesivamente. Por lo que la porción HP, toda la porción HP y todas las porciones en general son apilables. Entonces vamos a ahorrar eso. Y más adelante vamos a ser pre-fab en todos nuestros artículos. Entonces esto no será una, una molestia tan grande. Entonces vamos a realmente, es una buena idea preformarlos ahora. Pero sigamos. Vamos a ejecutar el juego. Eso lo haremos en un poco. Entonces ejecutamos el juego, recogemos algunos artículos. Revisamos los artículos. Y como pueden ver, pesar de que hemos recogido tres pociones, sólo
tenemos una ranura de ellas. Ahora el siguiente paso obvio es representar que hay tres pociones y no sólo una. Tendremos que acceder al texto aquí mismo. Y va a ser parte de tu reto. Tu reto es actualizar el texto de la cantidad. Por lo que primero consigue que los elementos se monten texto, necesitarás acceder a él. Entonces comprueba si tenemos más de un artículo. Si lo hacemos, necesitarás mostrarlo de lo contrario. Realmente no necesitamos mostrarlo. Entonces, por ejemplo, si
tenemos un otoño, no queremos poner ahí que tenemos un pedido. Basta con sólo ver la imagen. Por lo que necesitamos esta condición para comprobar que hay más de uno de estos artículos. Y te voy a dar una pequeña pista. Necesitas asegurarte de convertir la cantidad a dos cuerdas, porque cuando estaba creando el juego, tuve este error y me tomó mucho tiempo
averiguarlo, así que pensé que un Hinton aquí ayudaría. Y con eso dicho, pausa el video ahora mismo y ve al reto. Hey, bienvenido de nuevo. Entonces parte del reto fue encontrar ¿dónde realmente necesitamos hacer todo esto? Y tendremos que hacerlo, por supuesto, aquí
dentro cuando estemos actualizando el inventario del artículo. Entonces vamos a crear una variable aquí de tipo texto. Va a ser la cantidad de artículos Siguiente, y va a ser igual a la ranura de artículo. Y vamos a encontrar aquí la cantidad de texto. Entonces si volvemos, encontramos el texto de la cantidad, lo
copiamos porque es una referencia de cadena que hemos pegado aquí. Vamos a acceder al impuesto por componentes, y sigamos adelante y acceda a ese texto. Y antes de continuar, recuerdo que hice un par de cambios aquí al texto mucho Pro, así que ya no es el medieval. Y acabo de cambiar a la Liberación Sans ya que la F se puso audaz y agregó un par de cosas aquí. Oh, no hay cosas extra. Simplemente cambiarlo un poco y aumentar el tamaño de la fuente solo para que lo sepas, si es diferente a tu fuente, en realidad, necesitabas tomarte el tiempo y configurar todo cuando se trata de ti. Yo así con eso hecho, volvamos atrás. Guarda eso. Ahora vamos a comprobar si el monto de punto del artículo es mayor a uno. Entonces vamos a establecer la cantidad del artículo, texto de punto para que sea igual a la cantidad de punto del artículo. Dot toString. Y te darás cuenta de que no agregué ningún corchetes. Y te diré por qué en tan solo un poco. Y si el elemento no es mayor que uno, entonces simplemente lo estableceremos en 0 para que el elemento, texto de
cantidad, el texto será igual a una cadena vacía. Entonces, ¿dónde están los corchetes? ¿ Nos mentiste que nunca tuvimos que usarlos? Bueno, no, porque simplemente estamos usando una sola línea en el condicional, estamos tratando de implementar una sola línea de código. No necesitamos agregar los corchetes. Ahora, este escuadra garabateado, ahora, si te relaja más para agregarlos, entonces ve por ello. Esto es sólo para ahorrar un poco de espacio y un truco inteligente que quería enseñarte. Entonces vamos a salvar todo eso. Vamos a volver a Unidad. Vamos a duplicar la poción de maná, duplicar eso. Y otro aquí, duplicar eso, agrego otro aquí, guarde eso para ejecutar el juego. Y ahora cuando recojamos las pociones, levantamos las porciones, respaldamos los artículos. Golpeamos la tecla M, vamos a los artículos y tenemos una flecha. Y esa flecha nos está diciendo que cuando estamos tratando actualizar la cantidad de puntos de ítems toString, no conseguir una referencia. Por lo que objeto no establecido como instancia de mirada. Entonces obviamente, obviamente, obviamente necesitas ir al Lienzo. ¿ Y dónde está el monto del impuesto? El impuesto. Y es porque necesitamos asegurarnos de que sea una sonda de texto Mesh porque vemos, porque recuerdo que copiamos esto o lo cambiamos a un texto Mesh Pro. Ya no es un texto regular en un botón. Entonces en lugar de texto aquí, asegúrate de que sea texto Mesh pro GUI. Y espero que durante el reto no hayas caído en el mismo error. Si lo hiciste, sin preocupaciones, puedes ver que nos pasa a los mejores de nosotros. Si no lo hiciste, te felicito. Tienes dando el siguiente paso, joven saltamontes. Entonces guardamos eso. Volvemos atrás y nuestro juego, Vamos a ejecutar esto. Y creo que ya no hay errores. Para que veas que hemos recogido dos porciones de salud y tres porciones de maná. Vamos estadísticas artículos. Ahí vamos. Entonces tenemos una x No
necesitamos los números porque tenemos uno de cada uno y no son apilables. Los artículos apilables que puedes ver que tienen un número abajo a su lado. Entonces, ¿qué tan genial es eso? Nuestro inventario realmente está tomando forma. Y por último, un pequeño paso. Vamos a crear una carpeta aquí para los artículos. Y vamos a poner todos los artículos, no los que tienen uno y dos al lado de ellos en los originales. ¿ Y por qué no puedo sumarlas todas a la vez? Para añadirlos uno por uno sobre x, hacha
dorada y así sucesivamente y así sucesivamente. Por lo que vamos a estar usando estas pre-fabs y con el fin de agregar artículos. Entonces por ejemplo, porción HP. Necesito estar en la escena. Porción de Hp. Ahí vas. Hemos agregado otra poción de HP y podemos cambiar todo sobre esta porción de HP desde aquí, desde la prefabricada. Por lo que espero que lo disfruten. Espero que estés cometiendo tus cambios y te veré en el siguiente video.
61. Selección de artículos: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos en este video, cuando ejecutamos el código, cuando recogemos un par de artículos. Cuando accedemos a los ítems, si hacemos click en uno de ellos, ¿notamos qué? Observe lo que sucede aquí. Ahí vas. Por lo que ahora sabemos que esta es una porción de HP. ¿ Qué hace? Esto te daremos HB. Esto te dará maná. Esto matará monstruos. Esto matará monstruos más rápido porque es un hacha de oro. Este fue un acto de plata. Entonces, no perdamos más tiempo y empecemos. Por lo que actualmente, si recogemos algunos artículos, notarás que cuando vayamos a los artículos, si hacemos clic en ellos, no pasa nada. Todavía tenemos el nombre del
artículo, la descripción del artículo, o vacío, y no podemos usar nada. Entonces básicamente es una lista de artículos sin valor. Eso vamos a cambiar. Entonces primero vamos al gestor de menús y op aquí
vamos a crear un nombre de elemento de texto público. Vamos a crear un también añadir a ella la descripción del artículo. Y también vamos a crear y aquí una instancia o ya tenemos una instancia. Entonces eso es bueno. Guarda eso. Ahora vamos a volver atrás y unidad, esperar a que esto se compile. Y vamos a crear un script que maneje empujar uno de estos botones. Por lo que tenemos el botón Items. Queremos crear un script para manejar lo que sucede ahí. Podríamos usar el onclick. Usaremos el onclick, pero queremos crear un script. Entonces entraremos en guiones, entraremos en artículos. ¿ Crees que la gestión de artículos es un buen lugar para crear esto? Sí, seguro. Por qué no tan bien, crea un guión aquí, estamos llamando al botón del ítem. Pulsa Enter, espera a que esto se compile y entraremos en el botón de ítem de Prefabs o prefabs, y vamos a bloquear, ir a los guiones y agregar el botón de ítems. Y así ahí vas. Botón So Items, guarde eso. Abre el botón de artículos. ¿ Y qué vamos a hacer aquí? Bueno, vamos a crear un método que presione o caso. Entonces aquí estamos en los ítems, el guión. Sólo necesitamos una sola variable por ahora, y va a ser un gestor de artículos públicos y el elemento en botón. Por lo que esto representará qué artículo tenemos en la parte inferior. Entonces ahora el siguiente paso es crear un método que se llame cada vez que presionamos el botón para establecer las pilas de
ítems o nombre de ítems y el gestor de menús y la descripción del ítem. Y va a ser parte de tu reto. Tu reto es crear un método para presionar. Por lo que un botón Items, cree una pulsación de método, úselo para acceder al administrador de memoria y establezca el nombre y la descripción del elemento en función del elemento en el botón. Así que pausa el video ahora mismo y ve a hacer el reto, 0, k Así que eliminemos el inicio y actualicemos por ahora. No creo que los necesitemos. Lo haremos más adelante. Si los necesitamos, crearlos. Vamos a crear un método de progreso del vacío público. Y aquí accederemos a la instancia de punto del gestor de menús, nombre del elemento de punto, texto de punto. Y esto va a ser igual al elemento en botón, el nombre del elemento. Y también estableceremos esto exactamente mismo para la descripción. Entonces, en lugar del nombre del elemento, la descripción del artículo, y la descripción del artículo, vamos a guardar eso. Y ahora vamos al gestor de menús. Desplazémonos hacia abajo. Dónde configuramos el upcase o aquí donde actualizamos. Después de que
terminemos de actualizar, vamos a ir a la ranura de artículos. Vamos a conseguir el componente. Y ese componente es el botón de elemento. Vamos a acceder aquí, el artículo en botón. Y va a ser igual al ítem que acabamos de agregar. Entonces creo que una mejor manera tendría si configuramos esto en privado y luego creamos un método para obtener acceso a este botón de elemento para configurarlo. Eso habría sido probablemente mejor. Pero por ahora sólo usaremos esto como público. No se preocupe por eso. Entonces, ¿dónde estábamos y el encargado del menú? Ahí vamos. Ranura artículo obtener componente. Accedemos al botón de elemento de script, que es un componente en la ranura de ítem. Accedemos al elemento en botón y lo configuramos para que sea el artículo que se acaba de agregar en el inventario, la lista. Entonces ahora si ejecutamos nuestro juego, si entramos en nuestro Canvas, abre nuestro Canvas, abre nuestro menú. Y por cierto, Unity acaba de chocar contra mí. Entonces vamos a, dónde está el menú,
el panel de elementos, la descripción del elemento. Entonces vamos a bloquear el lienzo. ¿ Qué necesitamos? Necesitamos el nombre del artículo, la descripción del artículo. A ver. ¿ Esta es la descripción del artículo? Ahí hay esto bajo un año, así que el nombre del elemento, texto, etcétera. Entonces, ¿cuántas veces cometería este error de texto? Malla pero Gui? Entonces probablemente estés frustrado de que yo siga haciendo esto, Michael, necesitas ponerlo en tu cabeza. Estamos utilizando texto Mesh Pro. Guarda eso. Entonces ahora sé que tengo dos problemas en los que trabajar. En primer lugar, asegúrese de establecer siempre el texto Malla amplia, no texto, y de establecer siempre los elementos en el inspector. Hasta ahora, he arreglado este problema, arreglado uno de ellos al menos. Entonces guardamos eso. Corrimos nuestro juego. Ah, está bien, así que antes de continuar, me acabo de dar cuenta de que tenemos el valor. Deberíamos haber establecido el valor. Entonces, ¿qué es esto borrado? Prefiero la descripción. Entonces necesitamos los valores y no el texto regular. Entonces dijimos el valor, valor descriptivo. lo guardamos. Corrimos nuestro juego. Recogemos unas pociones. Y de nuevo, hay una cosa más que tenemos que hacer. Si entramos al botón Prefabs y al botón Items, retiramos el candado para que podamos verlo con claridad. Necesitamos el onclick para ser V items botón script. Y en el botón Elementos llamamos a la prensa. Entonces guarde eso. Y ahora todo está configurado. Podemos recoger algunos artículos, recoger todos estos. Golpearemos los artículos. Si hacemos click en uno de los ítems, ahí tienes. Se trata de unos huevos dorados. Esto matará monstruos más rápido. Déjame hacer esto más grande para que quede más claro. Esto matará monstruos más rápido. Esto matará monstruos. Esto defenderá mejor de los monstruos. Esto te dará HB, Es una poción HP, y este es un océano monopolo. Esto te dará dinero. Entonces ahora estos botones realmente hacen cosas. Y en el siguiente video veremos cómo podemos usar el botón de descartar para descartar los artículos. Entonces te veré en el siguiente video.
62. Artículos de descarte: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, vamos a estar recogiendo los artículos. Y cuando golpeamos la tecla M, vamos a los artículos. Si elegimos uno de ellos y desechado. Ahí lo tienes, te darás cuenta de que desaparece. Hemos hecho un poco de retoques en cómo se destruyen los artículos. Y ahí vas con destruir todos los artículos. Entonces no perdamos más tiempo que digo destruir. Quiero decir descartar todos los artículos y empecemos. Ah, está bien. Por lo que para descartar un artículo, necesitamos hacer un seguimiento del acto del ítem en el que acabamos de hacer clic. Entonces vamos a hacer justamente eso. Entraremos a nuestro gestor de menús, y aquí crearemos un gestor de artículos públicos. Y el elemento activo. Ahí vamos. Por lo que ahora tenemos que entrar en el botón de artículos. Y cuando presionemos irá al gestor de menús, accederá a la instancia, establecerá el acto de ítem para que sea igual al elemento en la parte inferior. Guarde eso. Ahora lo que queremos hacer es crear un método que descarte el acto de elemento. Y voy a emitir un pequeño reto. No es lo que piensas. Crea un método para descartar un elemento e iniciarlo, imprime el nombre del ítem simplemente descartamos eso. Tendrás que asegurarte de aplicarlo al botón de descarte, que es algo que sigo olvidando. Entonces por favor, haz eso para pausar el video ahora mismo y ve al reto. De acuerdo, bienvenido de nuevo. ¿ Cómo te llevaste con eso? Nos desplazaremos hacia abajo hasta el fondo. Y aquí dentro crearemos un vacío público. Desechar el artículo o simplemente descartar. No importa. Por lo que aquí simplemente imprimirá el elemento activo, nombre del elemento
punto, nombre del elemento. Guarde eso. Entraremos a Unidad donde accederemos al ¿dónde está? El botón de descartar? ¿ Por qué tenemos un botón Descartar uno? ¿ Acabamos de duplicar y lo dejamos ahí? Por lo que el menú encienda eso. A ver, Botón Descartar, Haga doble clic. Oh, bien, entonces cambiemos esto de este botón de carrito a usar botón. Ahora en este botón de carrito, vamos a desplazarnos hacia abajo. Vamos a añadir un on-click. Vamos a arrastrar el lienzo. Vamos a acceder al gestor de menús. Vamos a descartar el artículo, guarde eso, ejecutar el juego. Eso se apaga en estadísticas TIC 0. Entonces quién, que ni siquiera han recogido ningún artículo. Entonces volveremos a ejecutar el juego. Saldremos recogeremos un par de artículos. Ahí vamos. Golpe Entrar y estadísticas Ítems. Haga clic en uno de los artículos, descarte. Ahí lo tienes. Estamos descartando los actos de plata fueron descartando la armadura de plata, descartando 10 pociones, y descartando el HP. Por lo que estamos consiguiendo correctamente el elemento activo. El siguiente es empezar realmente de moverlo de nuestra lista. Por lo que entraremos en el inventario, crearemos un método aquí dentro que va a ser el elemento de adición. Vamos a crear el método vacío público y vamos a quitar el arte. Entonces quita el elemento y va a tomar un argumento que va a ser el gestor de ítems, type item manager y el item que vamos a quitar. Y aquí dentro haremos un par de cosas. Simplemente podemos empezar a eliminar de la lista de artículos. Tenemos que asegurarnos antes que nada, que sea apilable. Si lo es, solo queremos quitar uno de ellos, no todos los Ahmad o no todos los artículos. Entonces si el artículo es apilable, entonces vamos a, en primer lugar, crear una variable aquí de type item manager. Y va a ser el artículo de inventario. Y va a ser igual a nulo. Y ya verás por qué estamos haciendo esto en un poco,
vale, así que todo está bien. Vamos a recorrer todos los artículos. Y vamos a asegurarnos de mirar a través de la lista de artículos. Y vamos a comprobar si v artículo en inventario, que estamos consiguiendo en este momento. Nombre del elemento de punto ya hemos cubierto esto es igual al ítem dos iguales signos porque estamos comparando con el ítem, el nombre del ítem. Entonces lo que haremos es el artículo en inventario, la cantidad la cantidad que el IntelliSense no me está ayudando en absoluto. Y sólo le quitaremos uno. O simplemente podríamos haber escrito aquí menos menos. Por lo que esto elimina A1. Y entonces lo que haremos es que vamos a configurar el artículo de inventario, que creamos aquí para que sea igual al artículo y al inventario. ¿ Y por qué estamos haciendo eso? Bueno, porque queremos comprobar después de terminar el bucle for-each, si el artículo de inventario es diferente a nulo, y el artículo de inventario es menor que la cantidad en dólares, por lo que esa cantidad es menor o igual a 0. Entonces lo que haremos es que vamos a quitar el artículo. Entonces la forma en que eliminamos a medida que accedemos a la lista de artículos con arriba y eliminamos, y accedemos al inventario Artículo. Entonces lo que estamos haciendo aquí es que estamos creando esta variable para hacer un seguimiento del elemento que estamos eliminando. Si eliminamos uno, digamos que el monto llega a 0, el artículo de inventario, luego comprobamos si es diferente a nulo y el monto es menor o igual a 0, entonces retiraremos el artículo. De lo contrario, simplemente eliminaremos la cantidad y solo haremos un seguimiento de la misma para más adelante. Y si no es apilable, entonces simplemente retiraremos el artículo. De lo contrario, si no es apilable, item, list dot remove the item, save that. Ahora volveremos a la Unidad. De acuerdo, entonces actualmente, cuando ejecutamos nuestro juego, hay un ligero problema del que no hablamos. Por lo que cuando recogemos todos los artículos, presionamos la tecla M, vamos a los ítems, hacemos click en uno de los ítems. Si miramos el botón Elementos aquí, notarás que falta el botón activo o el botón elemento en. Lo mismo es cierto si vamos al Lienzo y buscamos el Elemento activo. Ahora quizá te estés preguntando, ¿por qué está pasando esto? ¿ No estamos escribiendo el código correctamente? ¿ Está mal el algo con agregar inventario? ¿ Pasa algo en el Gestor de Artículos? Sí. Si pensaste en el último, el problema es el gestor de ítems. Entonces, ¿qué está pasando aquí? Cada vez que estamos recogiendo uno de los artículos, lo
estamos destruyendo. Se puede ver aquí mismo. Entonces cuando destruimos el artículo con destruir el objeto del juego y no hay más referencia al mismo. Entonces en lugar de destruir, vamos a poner el activo en 24. Entonces vamos a establecer esto, el revés. Por lo que vamos a establecer el set de punto de objeto de juego activo en falso. Guarde eso. Ahora de vuelta en nuestro juego, vamos a correr. Y ahora te darás cuenta de que los artículos en lugar de ser destruidos simplemente van a desaparecer, pero van a seguir aquí disponibles para nosotros. Entonces nosotros, recogemos todo eso. Golpeamos la tecla M, vamos a los artículos y te darás cuenta de que ahora, ahí tienes. Tenemos la poción y la, todos los demás artículos. Si hacemos click en el hacha dorado y en el lienzo, tenemos una referencia al Hacha Dorada. Entonces ahora cuando descartemos los artículos, el último que desechemos, desaparecerá tan bien, todo lo demás. Y te darás cuenta, ahí tienes. Entonces todo está desapareciendo. Todo está funcionando correctamente. Entonces con eso hecho, veré en el siguiente video donde estaremos usando los ítems y no solo desechándolos. Entonces te veré entonces.
63. Uso de artículos: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, hemos implementado el uso de un botón del botón estadounidense en realidad. Entonces ahora cuando vamos a los artículos, elegimos una de las pociones. Si miramos al jugador, usamos la poción, pero espera un segundo, el HP actual sigue siendo el mismo. Si lo intentamos de nuevo, whoops, el HP actual sigue siendo el mismo. Pero si elegimos al sanador, notarás que cuando miramos el modelo actual, que es 3, si le agregamos un poco de manera, ahí lo
tienes, puedes ver que está funcionando pero no en el jugador correcto. Eso lo arreglaremos más adelante, pero por ahora es momento de implementar el botón de uso y nuestros menús de iconos. Entonces, no perdamos más tiempo y empecemos. De acuerdo, entonces es hora de empezar a usar nuestros artículos. Y el primer elemento que vamos a usar o artículos que vamos a utilizar son
las porciones que tenemos para Adición Mano y agregar HB. Entonces para eso necesitamos métodos y estadísticas de jugadores que agreguen mono y HP a nuestro jugador. Y eso va a ser parte de tu reto. Tu reto es agregar manera y HP. Así que haz una instancia del script de estadísticas de jugador. Y también crea dos métodos. Uno para agregar mono y querer agregar HP. Ambos métodos deben tener un argumento o un parámetro pasado a él sobre la cantidad para aplicar la cantidad al actual HP slash mono, y asegurarse de que el HP y el maná actuales nunca
sobrepase la manera máxima de HP porque no queremos que nuestro jugador. Digamos que si el HP máximo es de 100, no
queremos que el jugador tenga, digamos, 110 o 120 cuando se le añada HP a su salud. Entonces con eso dicho, pausa el video ahora mismo y co-crea los métodos. De acuerdo, bienvenido de nuevo. Entonces aquí, sigamos adelante y creemos una instancia. Tan público, estático, instancia, ops, estadísticas de jugador, instancia. Y empezar. Vamos a poner la instancia a esto, salvo eso. Ahora nos desplazaremos hacia abajo y aquí vamos a seguir adelante y crear dos métodos, el vacío público, añadir HP. Y aquí dentro vamos a tomar un parámetro entero que va a ser la cantidad HB a agregar. Y sigamos adelante y empecemos a escribir aquí. Entonces, ¿qué vamos a hacer? El primero que haremos es conseguir el HP actual. Va a ser más iguales. Por lo que le agregaremos la cantidad de HP a sumar. Pero tendremos que asegurarnos de que el HB actual, por lo que el HP actual, si va por encima del HP máximo, entonces vamos a establecer el HP actual para que sea igual al HP máximo. Entonces eso es todo lo que tenemos que hacer y haremos lo mismo aquí dentro. Entonces vamos a duplicar este. Y esta será la adición de maná. Esta será la forma de monto para sumar la mano actual. A mano para sumar actual Mano. Si se pone mayor que el max Mano, entonces el yo sólo copia esto, pegarlo aquí, copiar esto, pegarlo aquí, guardar eso. Entonces ahora tenemos todo preparado. Ahora vamos a crear un método para utilizar estos ítems desde el script de gestor de ítems. Entonces aquí bajo la actualización o sabes qué, solo
eliminemos el inicio y actualicemos porque no siento que pronto los necesitemos. Y aquí dentro vamos a crear un vacío público Uso Item. Y aquí lo primero que vamos a hacer es que vamos a comprobar si el tipo de elemento es igual al artículo, escriba punto elemento. Vamos a comprobar si su tipo de efecto es igual al tipo de efecto HP. De lo que haremos es llamar a las estadísticas de los jugadores. Accederemos a la instancia, agregaremos HP y le enviaremos la cantidad de efecto. Entonces ahí tienes. El monto de efecto else-si su tipo de efecto es igual al tipo de efecto dot mono, entonces, oops, quise decir que éste debería estar aquí. Entonces la condición si no es si es un artículo o no, es en el si afecta a HP o mono. Y acabo de añadir un else-if y no sólo un más porque tal vez te gustaría agregar otros océanos que aumentaran la destreza. Y así sucesivamente. Entonces es mejor usar else si en este contexto. Entonces vamos a añadir una stat de jugador, la otra instancia, Madonna, y la cantidad de efecto. Ahí vas. Guarda eso. Y por último, lo que tenemos que hacer es llamar al ítem de EU desde el gestor de menús. Entonces un libre ir a donde está? ¿ Dónde está el gestor de menús? Ahí vamos. Por lo que en Administrador de Menús, tenemos el elemento de descarte. Ahora vamos a crear un vacío público Usar ítem. Y aquí dentro vamos a comprobar el acto de artículo. Vamos a utilizar el artículo. Ahí vamos. Y por último, hay una cosa más que tenemos que hacer y es descartar el artículo. Entonces vamos a llamar al elemento de descarte porque en cuanto lo
utilicemos, queremos descartarlo. Entonces lo que haga, lo eliminará del inventario usando
la instancia de inventario quitar artículo y luego actualizará el inventario. Entonces vamos a ahorrar eso. Vamos a entrar en nuestro juego. Nos vamos a asegurar que lo hemos guardado todo. De acuerdo, así que de vuelta en nuestro juego, corre nuestro juego. Y veamos al jugador, veremos aquí mismo que tenemos, yo tengo, ¿Dónde está? Por lo que los jugadores actuales HP es 0. Entonces vamos a recoger un par de artículos que tenía, um, ir a los artículos, recoger la promoción de la salud, usarla y ver si el HP actual aumenta. No hemos asignado el botón para hacer nada. De acuerdo, entonces Lienzo, menú, botones, stop items, use botón, haga clic en eso, agregue un onclick en el Canvas, vaya al Administrador de Menús y use ítem guarde eso, ejecute el juego. Ahora esto debería estar funcionando por lo que recogemos los ítems, vamos a amniote ítems, escogemos la media porción Eso es click en el jugador se asegura de que el, hay algún tipo de efecto y como puedes ver, actualmente
hay nada. Por lo que podría estar preguntándose qué salió mal ya nuestro código no escribe como algo que tratamos de agregar aquí, no funciona mientras todo está funcionando. Pero el problema es, es que cuando recogemos los artículos, golpeamos la tecla M, vamos a los artículos a la poción HB y lo usamos. No es el jugador el que eso se está afectando. Es el sanador y PC porque también tiene una stat de jugador en él. Y si miras de cerca aquí, puedes ver que la actual Mano en el sanador es de tres. Si elegimos el océano monopolo y lo usamos. Ahí tienes, puedes ver que hemos añadido un poco y una y otra vez. Por lo que ahora somos capaces de usar nuestra poción. Pero el siguiente paso es tener realmente una forma de elegir qué personaje obtiene los beneficios de usar la porción que tenemos. Por lo que en el siguiente video, estaremos eligiendo el personaje apropiado para usar. Las porciones y artículos son. Te veré entonces.
64. Agrega la elección de los personajes: Bienvenido de nuevo a mis compañeros desarrolladores de juegos. Entonces recuerda cuando solíamos recoger artículos y no saber quién puede conseguir qué mientras ahora cuando hacemos click en uno de los ítems, intentamos usarlo, whoa, conseguimos este panel justo aquí que se abre y nos pregunta, a
quién quieres usar esto en? ¿ Ya sea Jimmy? ¿ Es Sarah? Pero aún podemos hacer cualquier cosa al respecto. Eso haremos en videos posteriores, pero por ahora es momento de crear un panel para la elección del personaje. Entonces te veré entonces. De acuerdo, entonces, ¿cómo vamos a poder elegir qué jugador obtiene la poción en la que queremos usarla, o cualquier otro objeto. Vamos a crear un panel que se abre cada vez que hacemos clic en noticias. Y elijamos entre los jugadores disponibles. Por lo que vamos a volver atrás el menú temático. Haremos doble clic en él para abrirlo. Haz que esta ventana de juego sea un poco más pequeña porque tenemos un poco de edición aquí que hacer. Vamos a tal vez digamos el panel de exhibición de artículos. No, creo que la descripción del artículo, Vamos a duplicar esto. Y aquí dentro Vamos a borrar todo, borrar eso. Entonces ahora tenemos la descripción del artículo, que es una ronda tan grande como la descripción del artículo original. Este será el panel de elección de personajes. Vamos a golpear Enter. Y aquí dentro vamos a tener un par de botones. Así que vamos a entrar en los botones aquí, conseguir el botón de elementos, duplicémoslo y arrástrelo hacia abajo a la elección del personaje. Y movámoslo aquí abajo. Por lo que vamos a tener la opción de elegir entre tres jugadores. Creo que esa es la cantidad que teníamos. Entonces haremos esto un poco más pequeño, quizá lo hagamos un poco más alto para el nombre. Y va a ser la elección de capa, opción
C, elección del jugador. De acuerdo, Así que elección de jugador. Y veamos si solo podemos hacer que la fuente sea un poco más pequeña y hacerla más grande por los lados. Entonces ahí lo tienes. Ya basta con eso. Creo que ese es un buen lugar para elegir al jugador. Hagamos esta elección más pequeña del destino, y pongámosla aquí. Vamos a duplicar esto. Entonces vamos a poner, este será el primero de la derecha. Esto será en el medio, y vamos a duplicar eso otra vez, ten el tercero aquí dentro. Y ahora veamos, son alrededor de 400 por 134. Entonces vamos a añadir una cuadrícula. Entonces vamos a agregar un diseño de cuadrícula. Vamos a configurar estos botones. Entonces los vamos a expandir en la x, en la y Añadamos un poco de espaciado. Y vamos a ver. A lo mejor en la y nada, no
golpeamos en la naturaleza porque no tenemos distancia alguna. Entonces sí, eso es acerca de lo correcto. Y podemos moverlo. Podemos agregar un poco de relleno desde la izquierda. Entonces ahí vamos. Quitar el espaciado de la derecha. Y eso se trata de lo mucho que necesitábamos. A lo mejor lo moveremos hacia abajo. Por lo que vamos a añadir un poco de relleno desde la parte superior. Esto fue parte del reto cuando lo necesitas para explorar. Entonces apuesto a que encontraste el tema, el relleno. El relleno. Y vamos a ver, tal vez esto debería ser un más pequeño a un costado, y ahí vamos. Por lo que ahora tenemos tres botones de opciones de jugador que podemos usar. Entonces lo que haremos es cada vez que golpeemos la llave de EU, vamos a abrir este panel y elegir a uno de los jugadores disponibles. Entonces tal vez deberíamos cambiar el texto aquí para decir nombre del jugador. Y por eso necesitamos hacerlo un poco más pequeño o no, podemos autodimensionarlo. No, el tamaño automático parece demasiado pequeño. Por lo que solo lo pondremos para que sea alrededor de 30 como buen número, pulsa Enter o k Así que con eso hecho, cerremos esto. Guarda todo eso. Abramos el gestor de menús y es hora de configurar todo. Por lo que las dos primeras variables que necesitamos son obviamente el panel de elección de caracteres y los nombres de opciones de caracteres. Por lo que crearemos dos campos serializados. Uno de ellos será un objeto de juego. Y va a ser el panel de elección de personajes. Y otro campo serializado, que va a ser una matriz de textos. Y va a representar los ítems, carácter, elección, nombres. Sé que es un nombre largo para una variable, pero necesitamos asegurarnos de que entendemos con qué estamos trabajando. Y luego aquí abajo, vamos a, ¿dónde estamos? Deberíamos estarlo, Vamos a tirarlo aquí abajo sobre el botón de descarte o saber qué, Vamos a ponerlo bajo el botón de EU para que se quede cerca. Entonces va a ser un vacío público. Y queremos abrir la elección del personaje. Entonces vamos a llamar a este panel abierto de elección de personajes. ¿ Y qué vamos a hacer aquí dentro? En primer lugar, el panel Carácter debe configurarse en activo. Por lo que el panel de elección de caracteres que establece activo es cierto. Entonces tendremos que recorrer todas las estadísticas de los jugadores. Entonces vamos a crear un bucle for, o podemos crear un para cada bucle, realmente no
importa, pero a veces sí. Y te mostraré tal vez en este video ¿por qué? Entonces si soy menor que las estadísticas de jugador que tenemos esa longitud. Por lo que sí tenemos una referencia a todos los jugadores disponibles. Ahí vamos. Por lo que tenemos la referencia aquí, podemos usar las estadísticas del jugador de inmediato. Y yo plus, plus. Entonces ahora como estamos pasando por todas las estadísticas de los jugadores, crearemos una variable que va a ser de estadísticas de jugador tipo. Lo llamaremos el jugador activo. Y va a ser igual al manager del juego. Instancia de puerta. El jugador stat en la posición i Ahora que tenemos referencia al jugador activo, vamos a acceder a los ítems, elección de personaje, nombre. En la posición i. vamos a ir al texto y va a ser igual al nombre del jugador de punto activo. Y por último, necesitamos encender y apagar el botón
en función de si este jugador está activo en la jerarquía o no. Entonces lo que haremos es crear un booleano. Por lo que la capa activa bool están disponibles y va a ser igual al objeto de juego del jugador activo punto activo y jerarquía. Y he creado una variable separada para ello porque la siguiente línea va a ser muy larga. Por lo que vamos a acceder al primero de todos los elementos, nombre de elección de personaje. Ahora, ¿cuál es este nombre de elección de personaje? Es el texto en los botones. Por lo que necesitamos encender y apagar los botones o ponerlos activos o no activos. Entonces lo que tendremos que hacer es acceder a la transformación y obtener al padre. Y luego desde el padre accede a los objetos del juego. Entonces ahora estamos en el botón y lo pondremos en activo en
función de si el acto de jugador como disponible. Entonces como he dicho, Tal vez electrón, cuando asignemos todo en Unidad, será más claro, pero este es el texto en el botón. Y es, creo que debería ser texto Mesh Pro. Entonces texto Mesh pro, creo que es la primera vez que no hago este error. Por lo que este es un texto Mesh Pro. Necesitamos acceder primero a la transformación antes de poder acceder al padre. Después accede al objeto del juego y configúrelo a activo en
función de si el jugador activo está disponible o no. Por lo que ahora podemos salvar todo esto. Y también por supuesto, necesitamos una manera de cerrar este solo, crear un vacío público,
cerrar, cerrar panel de elección de personajes. Y es realmente simple. Simplemente vamos al panel de elección de caracteres, selector de puntos, falso. Guarda eso. Ahora de vuelta en Unity, necesitamos asegurarnos de que cuando salgamos del menú, cerremos la ventana de elección de personajes. Entonces vayamos al Lienzo, asignemos todo. Entonces si nos desplazamos hacia abajo, tenemos los nombres de elección de caracteres. Así que abre todo esto. Cerraremos a este inspector, zapatos todos estos, los arrastraremos aquí. Arrastraremos el panel de elección de caracteres y a su posición correcta. Vamos a guardar todo eso. Cerraremos esto y vamos a apagar el panel de elección de personajes. Y también tenemos que volver aquí y cuando usamos el elemento, así que cuando usamos el elemento, necesitamos abrir el panel de elección de caracteres. Entonces ahí vamos. Abrimos el panel de elección de personajes. Y esto nos permitirá elegir a uno de estos personajes sobre los que queremos utilizar las pociones. Ahora se deben mover estos artículos de descarte. Por lo que vamos a añadir un comentario aquí. Esto debe estar en movimiento y debe
activarse después de que elegimos a uno de los jugadores más adelante. Entonces, solo asegurémonos de que todo esté funcionando. Entonces voy a apagar el panel de artículos y apagarlo. Vamos a quedarnos con el panel de artículos. Nada nos molesta. Ejecuta el juego. Recoge un par de artículos, abre el menú, ve a Items, y vamos a ver, si hacemos click en una de las porciones que teníamos EU. Ahí vas. Tenemos a Jimmy, Sarah, y el nombre que no debería estar disponible para nosotros porque aquí no los apagamos. Entonces déjenme dar la vuelta atrás. Permítanme elegir todos estos y ponerlos a un activo. Porque los estamos encendiendo en base si hay un jugador y ya estaban encendidos. Entonces vamos a elegir, abrir los elementos del menú, utilizar su ego solo gimnasio y Sarah o están disponibles. Ahora actualmente, esto no hace nada, pero al menos sabemos que está funcionando y dándonos una opción. Entonces en el siguiente video, realidad
estaremos eligiendo al personaje, usando el ítem en este personaje y llenando todo lo que necesitamos hacer. Entonces te veré en el próximo.
65. Elegir un personaje: Bienvenido de nuevo a mis compañeros desarrolladores de juegos. Y en este video, por fin hemos podido utilizar los artículos en los que llevamos tanto tiempo trabajando. Entonces ahora cuando vamos a los artículos, elegimos la poción de maná. Golpeamos la llave de EU, obtenemos la opción de elegir si queremos a Jimmy o a Sarah. Si hacemos click en el jugador ahora mismo echemos un vistazo a los HP actuales. Teníamos EU, o hemos aumentado la manera, Vamos a aumentar la demanda de Sarah. Y Sarah, incrementamos la demanda de Sarah. Por lo que finalmente terminamos de implementar esto. Entonces, no perdamos más tiempo y terminemos finalmente con el uso de artículos. De acuerdo, entonces ahora necesitamos elegir realmente un personaje. ¿ Cómo vamos a hacer esto? Entrémonos en el botón de artículos. Y aquí dentro vamos a añadir un parámetro. Por lo que va a ser un personaje ENT para usar en. Entonces, ¿por qué agregué un entero como parámetro y no una stat de jugador real Déjame explicar cómo va a funcionar todo esto. Entraremos en la elección del jugador aquí dentro, y vamos a sumar a cada uno también. También necesitamos quitar todos estos en los botones. Por lo que vamos a asegurarnos de que cada uno de estos fondo de elección de jugador tenga un número específico a ella. Vamos a, cada vez que presionemos el botón, vamos a enviar ese entero al gestor de menús aquí. Y luego usando este, este ítem, y luego usando este poder, vamos a enviarlo de vuelta al ítem de EU en el gestor de artículos. Entonces vamos a implementar esto si no has entendido lo que quise decir, te
mostraré a medida que pasemos. Por lo que ahora en el gestor de ítems usa método de ítem, vamos a seguir adelante y crear una variable que es de cinco estadísticas de jugador. Se va a llamar el personaje seleccionado y es igual a la instancia de punto del manager del juego, dot get, o a los jugadores que obtienen stat del
jugador en la posición del personaje para usar. Por lo que ahora aquí en lugar de instancia de punto de jugador, vamos a conseguir el personaje seleccionado. Y también aquí el personaje seleccionado. Guarda todo eso. A continuación, necesitamos asegurarnos de saber qué personaje usar vamos a usar. Entonces de vuelta en Menu Manager y aquí vamos a pasar un parámetro el cual va a ser el personaje seleccionado. Y vamos a pasar aquí al personaje y maestro seleccionado. Entonces, ¿qué pasa ahora? Déjame mostrarte. Si volvemos aquí, seleccionaremos a los tres jugadores de aquí. Nos aseguraremos de que sean ellos los que usan el artículo. Por lo que arrastraremos también, seguimos en Modo Juego. Oh no. De acuerdo, entonces ahora tenemos que volver a hacer todo esto, porque se quitan todos los cambios que hacemos durante el juego viejo. Eso es tan triste de ver. De todos modos, sigamos adelante y agreguemos un on-click a todos esos. Agrega un artículo y aquí. Y luego elige un gestor de menú temático. En el gestor de menús, el ítem de Estados Unidos, elección del jugador será 0 y el uno
será uno en la segunda opción y será dos en la última. Vamos a ahorrar que se asegure de que estén en la posición correcta. Por lo que la primera elección del jugador, que es 0, debe estar en el lado más izquierdo. El del medio debe ser el uno, y del lado derecho deben ser dos. Entonces vamos a salvar todo eso. También vamos a añadir aquí un, otro método y que es cerrar los paneles de personajes. Entonces vamos a ir a elegir. ¿ Dónde está? Cerrar, cerrar, cerrar panel Carácter. Ahí vamos. Guarda eso. Y por último, en el botón estadounidense, sólo
deberíamos abrir el panel Carácter. No queremos usar realmente el artículo con el botón US. Por lo que usa el botón. En lugar de usar, tenemos que ir al gerente y sólo abrir el panel de caracteres se guardará todo eso. Y esto debería estar funcionando. Y una cosa menos está aquí cuando queremos abrir el panel Carácter, necesitamos asegurarnos de que tenemos un elemento activo. Entonces si no tenemos seleccionado un elemento activo, no
queremos poder abrir el panel. Esto causará muchos errores más adelante. Con eso guardado, volvamos atrás y probemos finalmente, nuestro código, a ver si funciona. Entonces recogemos los artículos que teníamos y vamos a los artículos, vamos a la porción HP. Demos click en el jugador para asegurarnos de que agregamos a Genie. Utilizamos el artículo que elegimos, Jimmy y ahí tienes. Por lo que ahora le hemos sumado una velocidad a Jimmy específicamente. Ahora tratemos de agregar alguna manera a Jimmy. Muy vamos. Por lo que el hombre ha sido agregado a Jimmy. Tratemos de sumar a Sarah. Demos click en los curanderos MPC. Echemos un vistazo. El actual es de tres. Añadamos alguna manera. Ahí vas. Y Jimmy no consiguió ningún mono. lo que finalmente terminamos con el uso de estos artículos. Ahora todavía tenemos que usar las armas y la armadura. Por lo que espero que estén disfrutando. Sé que no hay demasiada acción en esto, pero estamos aprendiendo información de codificación
muy, muy valiosa y profundizando en la complejidad. Entonces espero que estés disfrutando y te veré en el próximo video.
66. Uso de armas y armadura: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, vamos a poder usar los artículos y armaduras o todo lo que no sea los artículos. Por lo que podremos asignar la armadura de oro. Escogamos a Jimmy y asignamos el de plata a Sarah, asignamos el hacha de oro a Jimmy y los actos de plata a Sarah. Si vamos a las estadísticas, ya verás que déjame solo hacer esto más grande. Ya verás que Jimmy tiene los huevos dorados y la armadura dorada, y Sarah tiene la x plateada y estas Alma plateadas, también
vemos el poder de las armas aquí dentro. Si Jimmy ya tiene el hacha de oro, si queremos darles una x de plata, podemos cambiar eso. Ya veremos cómo funciona todo eso en tan solo un poco. Entonces, no perdamos más tiempo y empecemos. De acuerdo, entonces es hora de agregar armas y armaduras. Primero entrémonos en las estadísticas de los jugadores. ¿ Dónde están nuestras estadísticas de jugadores? Vamos a subir. Y aquí dentro vamos a sumar un par de cosas. Entonces lo primero es el nombre público del arma
equipada String . El segundo es nombre de armadura equipada. Entonces vamos a sumar dos más, que son públicas y de arma, poder o destreza. Y luego finalmente la defensa de armaduras. Entonces esto va a ser un poco diferente a la destreza y defensa normales. Estas serán las de las armas específicas. Entonces vamos a ahorrar eso. A continuación hay que tener en cuenta que tenemos el menú Estadísticas. Entonces si te acuerdas, volvamos aquí. Abramos el menú y se puede ver que teníamos el, apaguemos los paneles y veamos el panel de estadísticas. Ahí vas. Entonces recuerdan que teníamos el arma equipada. Aquí es donde vamos a sumar todo en los valores de los equipados para anexar los blindados equipados, el poder de armas y la defensa de armas. Ahora lo hemos llamado warp y power. Cambiemos esto. A lo mejor deberíamos mantenerlo como estaba. Entonces cuando el jugador estadísticas, Vamos a mantener el poder del arma. De acuerdo, entonces poder de arma de nuevo en nuestro gestor de menús, también
vamos a tomar todo esto en consideración. Entonces aquí, vamos a sumar dos textos más. Entonces aquí es donde estábamos usando las estadísticas. Entonces esto que vamos a sumar el arma equipada de stat y blindaje equipado de stat. Y también agregaremos aquí textos para la defensa y textos 40 poder del arma. Y yo solo duplicaré esto. No quiero que la línea sea demasiado larga. Por lo que stat equipar, arma, poder y stat son más caso de defensa guardar eso. Creo que eso es todo lo que tenemos que hacer aquí. Y tendremos que desplazarnos hacia abajo ¿dónde actualizamos las estadísticas? Entonces después de establecer no, el menú Estadísticas, actualizamos el menú Estadísticas. Entonces aquí es donde deberíamos estar trabajando después de poner la imagen, también
necesitamos un par de cosas aquí. Entonces el Stat, una cita, armas, esto obviamente está mal. Entonces déjame cambiar eso. Arma. Statt equipado para suceder. Entrar punto txt es igual al jugador seleccionado nombre de arma equipada punto. Duplicar eso. Stat son más defensa punto seleccionado arma arma equipada nombre de armadura. Guarda eso. Ahora necesitamos más los que representarán el poder y la defensa de armaduras. Entonces va a ser el poder de arma stat. El texto es igual al jugador seleccionado prenda de jugador seleccionado. Ese poder de arma. Duplicar eso. Stat, son más lo que le llamamos la defensa de blindaje stat. ¿ De acuerdo? Por lo que el stat armamento defensa dot txt jugador, el son más defensa. Ahí vamos. Guarda eso. ¿ Cuál es el problema aquí dentro? Y es un entero. Ah, qué bonito para cuerdas, punto dos cuerdas. Entonces eso es todo. Recuerda hace un par de retos, esto fue una pista. Por eso es una pista porque a veces podríamos olvidar cuál es el problema. Ahora es hora de sumar las armas de los artículos. Pero primero tenemos que considerar lo que sucede cuando realmente equipamos arma. Cuando equipamos arma, queremos soltar el arma que
ya estamos sosteniendo y volver a meterla en el inventario. Por lo que necesitamos hacer un seguimiento de los objetos que tiene el jugador, las estadísticas del jugador. Entonces cualquier estadísticas de jugador, vamos a crear dos variables más aquí, que van a ser de tipo item manager. Y va a ser el equipado. Siempre consigo la palabra mal equipada. Entonces espero que no esté completamente equivocado. Arma equipada y el equipado en jabón equipado y el equipado son. De acuerdo, así que vamos a guardar eso. Y ahora es el momento de un reto. Y tu reto es equipar arma y todo. Así que crea dos métodos para equipar armas y armaduras. Cada uno debe tomar un argumento de las armas cortan blindaje a equipado. Dijo que la armadura de corte de arma equipada estableció el nombre del arma y la destreza recortar la diferencia. Por lo que todo eso debe hacerse en las estadísticas de los jugadores. Si no me equivoco, es, tú también eres un reto para ti. Así que pausa el video ahora mismo y ve a hacer el reto. Por lo que de vuelta en nuestras estadísticas de jugadores, agregamos XP, agregamos HP, agregamos mono. Y también podemos equipar armas. Entonces, ¿dónde deberíamos estar haciéndolo? Creo que bajo demanda, hagámoslo aquí dentro. Entonces va a ser un arma de equipar vacío público. Y va a tomar una discusión de Item Manager y va a ser el arma para equipar. Y aquí dentro vamos a poner el arma equipada. ¿ Por qué elegí nombres tan duros de cuatro nuestra variable. Por lo que el arma equipada será igual al arma a equipar. El nombre del arma equipada será igual al equipado para suceder. Déjame simplemente copiar esto. Equipado nombre de punto arma y el equipado para poder armar. Probemos el poder. De acuerdo, entonces el poder del arma es el equipado para abrir la destreza del arma de punto. Guarde eso, duplicará esto porque es más o menos lo mismo. Por lo que en lugar de equipado para anexar va a ser el arma armen equipar. Armadura para equipar. Y la armadura equipada es igual al brazo para equipar. Y el equipado. Y probémoslo. La hormona esteroide. A lo mejor esto será más fácil. Nombre de armadura tan equipado, nuestra Marie de France. Copia esto, pegarlo aquí y pegarlo aquí. Nombre del artículo y son más defensa guardar eso. Por lo que todo esto debería ser correcto. Verificaremos más adelante si tenemos algún tipo de error. Ahora de vuelta en el gerente de artículos, necesitamos revisar las indicaciones de armas y armaduras. Por lo que aquí, comprobamos el artículo. Si no es un artículo, entonces vamos a crear otro. Si el tipo de elemento es igual al tipo de elemento punto uno y si el carácter seleccionado punto elemento equipado, mientras que así el arma equipada, quiero decir, es diferente a vacío. Entonces eso significa que tenemos algún tipo de arma aquí dentro, equipada para suceder nombre. Nombre de arma tan equipado porque estábamos comparando un gestor de artículos con una cadena en blanco. Vamos a seguir adelante en el inventario. Vamos a acceder a la instancia. Y vamos a añadir un artículo, que va a ser este ítem. Es el que estamos actualmente, y vamos a sumar el personaje seleccionado punto lo equipado para suceder. Arma tan equipada. Entonces lo que esto hace es que verifique. En primer lugar, ¿estamos tratando de sumar y un arma? Sí, lo estamos. ¿ El personaje ya le ha abierto? Sí, lo hace. Eso significa que necesitamos agregar ese artículo al inventario y en su lugar, lo
vamos a reemplazar con el arma equipada de punto personaje seleccionado. Y vamos a ponerlo a este o ningún movimiento que sumar. Este debería ser el método. Tan equipado. Tenemos que equipar arma y necesitamos pasarle un parámetro y va a ser esto, entonces es el ítem actual en el que estamos trabajando. Y por último, necesitamos añadir otro else-if. Y vamos a comprobar si el tipo de artículo es igual al tipo de artículo dot ARMA. Si lo es, entonces vamos a revisar, vamos a copiar esto porque es más o menos lo mismo. Entonces vamos a comprobar si el equipado, Vamos a probar esta armadura equipada nombre Armen. Si lo es, entonces agregaremos un objeto, el personaje seleccionado armamento equipado. Y luego vamos a equipar y a Narmer y también va a ser esto. Entonces, vamos a guardar todos esos. Volvamos a nuestro juego. A ver si eso funciona. Y ya sabes, es posible que también necesitemos actualizar las estadísticas en algún momento, pero eso nos preocuparemos más adelante. Entonces vamos a ejecutar nuestro juego. Apagemos esto. Echemos un vistazo al jugador y verás que no tenemos armas equipadas, ni armaduras equipadas. Entonces voy a ir por alguna armadura. Vamos a abrir el menú, ir al elemento, seleccionar la armadura dorada que vamos a usar. Vamos a ponérselo a Jimmy. Y sí, ahí vamos. Por lo que tenemos la armadura equipada en el personaje jimmy. Si vamos a las estadísticas y hay un problema porque no hemos establecido la instancia de valor. Vamos a preocuparnos por eso. Posteriormente. Le agregaremos un hacha de oro a Jimmy. De acuerdo, Así que ahí tienes. El x de Oro Si tratamos de sumar los actos de plata a Jimmy, aparece
el Hacha de Oro y nuestra lista de artículos. Excelente. Y agreguemos esa Sarah. Selecciona los actos dorados en esa Sarah, y puedes ver que ya tenemos un ligero problema y duplicar artículos. Entonces, para agregar eso, Sarah, ahora Sarah, los curanderos deberían tener una armadura de plata y un hacha de oro. Entonces con eso hecho, volvamos a entrar, veamos nuestras estadísticas. Tenemos que ver los valores. Ve a Lienzo, bloquea eso hacia abajo, desplázate hacia abajo, y el personaje del elemento, ¿dónde estamos? De acuerdo, entonces el arma equipada de stat, así que stat equipado para suceder, Vamos a ver. El poder del arma debe ir a escuchar. La defensa de armaduras debería entrar aquí. El arma equipada debería entrar aquí, y el honor equipado debe entrar aquí. Vamos a guardar todo eso, volveremos a ejecutar el código. Apagaremos el menú, hablaremos un par de armas, y ahí tienes. Artículos Coppa. Úsalo con Jimmy. Usa el dios 14, Sarah, usa la armadura de oro para Jimmy, usa esta armadura de plata para Sarah. Vayamos a las estadísticas y veamos aquí. Lo que tenemos tan equipados para suceder es que los actos de plata para equipar armaduras no es nada. Entonces por alguna razón la armadura equipada no aparece correctamente, así que veremos cómo lidiar con eso en tan solo un poco. Veamos cuál es el problema. 0, vale, entonces aquí podemos ver que usamos la defensa de armaduras, no la armadura. ¿ Cómo se llamaba? Déjame volver a donde fueron estos los que equipan armaduras. Entonces ahí tienes, la armadura equipada stat, salvo que ahora todo debería estar funcionando bien. Vamos a ejecutar nuestro juego. Recogamos los artículos. Démosle la armadura de plata a Jimmy. Vuelve a las estadísticas, elige jimmy, Ahí tienes. Se puede ver que la armadura equipada es la plata y
también tiene una defensa de armaduras de seis. lo que finalmente terminamos de crear nuestro inventario. Finalmente terminamos de revisar nuestros artículos en el inventario. Hemos hecho muchas cosas. Hemos usado los artículos. Nosotros, esta fue una sección grande, enorme, así que espero que la disfruten y los veré en el siguiente video.
67. Sección 9: mosaico de tienda: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, sólo vamos a estar trazando las bases de nuestra tienda. Por lo que antes que nada, asegúrate de ir y aplicar todo a tu prefab de lienzo, porque ya hemos agregado mucho. No hemos aplicado a la anulación de Prefabs o Canvas. Asegúrate de aplicar todo lo que tengas para crear el gestor de juegos Prefabs o simplemente arrastra el gestor de juegos. Y aquí, asegúrate de aplicar también los cambios en el jugador. Y cuando termines con eso, sigamos adelante y creamos una nueva escena. Llamaremos a esto el Guardar aquello. Por lo que esta nueva escena, podemos quedarnos con la cámara principal. No necesitamos tener una “follow cam”. Solo podemos tener una tienda estática donde
no movemos la cámara es solo una toma y te mueves y esa tienda. O si quieres hacerlo de manera diferente a seguir adelante. Entonces aquí vamos a, antes que nada vamos a ir a las prefabs y vamos a sumar la grilla. Por lo que agregaremos la cuadrícula, haremos clic con el botón derecho e iremos a la prefab desempaquetar completamente. Entonces este es un punto muy vital. Ahora es el momento de usar los azulejos. Te he proporcionado un conjunto de archivos, así que entraremos en los recursos. Ahí tienes, Es de interior. Déjame solo agregar este archivo para que hagamos clic derecho o retrocedamos. Vamos a jag y el interior. Y ahí tienes. Ahí tenemos el interior. Ahora estamos creando una nueva paleta de azulejos se va a llamar el interior Crear. Y lo crearemos dentro del azulejo interior. Ahí vamos. Por lo que ahora tenemos una nueva paleta de azulejos. Ahora necesitamos establecer el modo sprite en múltiplo. Tenemos que aplicar los cambios. Tenemos que ir al Sprite Editor. Y aquí, me encontré con que el tamaño perfecto es de 16. Por 16 fue un offset de la parte superior. Vamos a cortar todo eso. Ahí vas. Por lo que esto le dará una rebanada muy bonita, excepción del borde aquí abajo. Por lo que notarás que no hay rebanada en el acto porque la hemos compensado por una. Se puede ver aquí mismo. Y como lo hemos compensado por uno, se
puede ver que aquí abajo no hay rebanada. Nos ocuparemos de eso más adelante. Pero si cortamos todo, habrá un gran problema en la ventana de paleta de azulejos. No nos va a permitir hacer todo sin problemas. Y si tienes tus propios sprites, entonces necesitarás encontrar tu propia forma de cortarlo. Incluso puedes hacerlo manualmente. Entonces vamos a aplicar todo eso. Vamos a arrastrar a los pilotos. Y aquí vamos a asegurarnos de que seleccionamos el archivo Endo para los activos del azulejo. Seleccionaremos eso. Y ahí tienes. Podemos empezar borrando todo. Por lo que crearemos un objeto o seleccionaremos varios archivos. Eliminar 0. Simplemente sal de edición, borra. Y vamos a seguir adelante y quitar todo y nuestro mundo de los objetos al fondo. A los objetos de fondo. Entonces ahí tienes. Ahora podemos empezar de nuevo. Entonces, por ejemplo, tendremos esto como fondo. Y ahí vamos y solo dibujamos esto. Y se puede ver que tenemos que hacerlo más grande. Intentemos que sea 32. Aplicar. 16. Creo que 16 será el buen número. Ahí vas. Y ahora podemos empezar a añadir alfombras y así sucesivamente. Y para los bordes inferiores, vamos a volver a ir al Sprite Editor. Vamos a crear aquí una caja que va a ser del tamaño. Entonces exactamente el mismo ancho que el anterior, pero una altura un poco más pequeña, lo que es 16 por 15. Por lo que volveremos a crear varios archivos aquí. Y esto va a ser 16 por 15, 16, 15. Y lo pondremos en la posición correcta. ¿ Este también? No. Este también. 16 por 15. Y creo que necesitaremos otro. Este debe tener 16 años. Ahí vamos. Desafortunadamente, no he encontrado una forma más rápida de hacer esto. Entonces lo estoy haciendo todo manualmente. Seguro que hay una forma más suave y fácil de copiar y pegar. Pero ahí vamos. Entonces los hemos rebanado, vamos a aplicar. Pero asegúrate de que no simplemente arrastras esto dentro de aquí. Por lo que necesitamos obtener los sprites específicos que están en la parte inferior. Tenemos que diferenciar entre estos sprites. Entonces ahí vamos. Seleccionaremos los últimos. Entonces son estos 123. Ahí tienes, los puedes ver aquí mismo. Los arrastraremos hasta aquí. Sí. Está en el archivo interior y como puedes ver, no
están configurados correctamente. Entonces lo que podemos hacer es hacer que esto sea un poco más grande. En primer lugar entraremos al modo Editar. Después seleccionaremos a estos dos. Por ejemplo, haga clic en el movimiento, lo
colocará aquí. De nuevo, selecciona Mover. Y como yo, ahí vamos Como,
um, y estoy diciendo como soy porque se puede ver aquí mismo que EU es una tecla de acceso directo y VM como tecla de acceso directo también. Entonces como yo, y ahí vamos, hemos montado nuestros azulejos ahora podemos dibujar todo. Y es preguntándonos ¿dónde queremos salvar la escena? Iremos a las escenas, vamos a crear un afilado aquí. Y ahí tienes, Guarda todo eso. Ahora, es hora de un poco de reto. Y tu reto será crear tu propia tienda. Así que crea y configura tu propia tienda usando los azulejos y descarga tus propios azulejos de la tienda de slash interior y crea una tienda si no quieres usar los que te he proporcionado, puedes ir a Open game art o cualquier otro y encuentra todo lo que necesitas ahí dentro. Entonces, antes de irme, me voy. Tendrás que añadir también el jugador. Por lo que necesitaremos encontrar
al jugador de prefabs y tendremos que asegurarnos por supuesto que cambiemos hacia arriba, por ejemplo, el fondo. Se puede ver que es una consulta muy grande para hacer más pequeños
los polígonos y asegurarse de agregar los bordes, por ejemplo, para ser una pared que sea sólida y el jugador no puede salir de ahí. Por lo que te dejaré a ello para crear tu propia tienda. Y en el siguiente video, te
mostraré lo que he creado y continuaremos. Entonces te veré entonces.
68. Configuración de la tienda: Bienvenidos de nuevo a mis compañeros desarrolladores de juegos en este video muy largo. Sé que son alrededor de 20 minutos tal vez, pero todo está construyendo UI. Entonces como ustedes saben, esto es personal. Simplemente te mostraré el diseño y luego podrás crear el tuyo propio. Entonces lo que hicimos aquí dentro, creamos un panel celular por panel y botón de salida de tienda, una moneda para usar valor del artículo y así sucesivamente y así sucesivamente. Entonces, no perdamos más tiempo y empecemos con nuestro menú de tienda. O k. Empecemos. Siento que este será uno de nuestros videos más largos. Entonces, en primer lugar, necesitamos comprometer nuestros cambios. Tenemos que asegurarnos de que ignoramos todo bajo el estilo de activos marinos, estilos y golpeamos OK. Ahora etapa de y ahora vamos a comprometer nuestros cambios. Creó una tienda, cometerlos. De vuelta en nuestro juego. Ahí vas. Esta es mi pequeña tienda. Y antes de que nos olvidemos, asegúrate de agregar un gestor de nivel y sentar azulejos de fondo profundo que. Entonces ahora cuando ejecutamos el juego, Ahí tienes. Entonces, vamos a ver. Ahí vamos. No podemos movernos por las paredes. No podemos movernos por las sillas y los objetos que hemos creado. Entonces no es muy elegante, es muy básico, así que aquí no hay nada demasiado elegante. Puedo colocar para salir, así, o un lugar para entrar, pero el jugador puede moverse por eso. Por lo que ahora es el momento de empezar a crear el manual de taller. Por eso. Vamos a añadir el Lienzo a la jerarquía. Ahí vamos. Y aquí dentro vamos a hacer un par de cosas. Entonces estamos abriendo el Lienzo, podemos deshacernos de la Paleta de Azulejos, cerrar la pestaña. Vamos a duplicar el menú y vamos a llamar a este menú D agudo. Por lo que tienda menú. Y aquí dentro Sólo apaguemos el menú, mantengamos el único menú de la tienda abierto. Y vamos a hacer un par de cambios aquí. Entonces lo primero que vamos a hacer son los botones. Por lo que los botones van a cambiar. Entonces en lugar de artículos aquí dentro, vamos a tener el botón de compra. En lugar de las estadísticas tendrá el botón celular. Y el final que va a ser el guardar, va a ser el botón Salir. No tan sexy botón, el botón Salir. Y vamos a eliminar los dos últimos botones los cuales están cerca y se van. Vamos a ir a la compra. Vamos a dejar que solo minimice. Y por supuesto todos estos se cambiarán en la celda, la salida, y así sucesivamente. Por lo que la celda tiene estas entidades onclick u objetos. Y vamos a entrar el texto. El texto en el botón va a estar por en la celda va a ser celular. En la salida va a ser tienda de salida. Hit Enter. Y vamos a hacer que este botón sea un poco más grande. Además, estamos trabajando en la grilla. Déjame hacer que la cuadrícula en realidad se ponga un poco más grande. Entonces vamos a aumentar el tamaño de las celdas porque también vamos a sumar el dinero aquí para que no quepa ni todo y lo vamos a aumentar en el y también. Y veamos, muévelo hacia arriba en la parte superior y el tamaño de celda, aumentémoslo aún más para la tienda de salida. Por lo que la tienda de salida hará que esto sea un poco más pequeño, o es demasiado pequeño en este momento, vamos a aumentar el tamaño del cuadro de texto. Y como he dicho, cada vez que estamos creando UI se recomiendan deben hacer tus propias creaciones. Porque todo esto es muy subjetivo y puedes cambiar lo que quieras. Y sólo lo moveré hacia abajo. Entonces ahí lo tienes. Salir de tienda. No. Salir de tiendas, vender y comprar. De acuerdo, Entonces ahora que tenemos los botones principales, es hora de configurar todo lo demás. Entonces el personaje y la caída se va a ir, los paneles de estadísticas van a ir, sólo necesitaremos el panel de elementos
y aquí, y también haremos un par de cambios. Entonces déjame minimizar esto porque estamos trabajando mayormente aparecen. Entonces, ¿qué vamos a hacer aquí dentro? Bueno, vamos a tener dos juegos de paneles. Entonces vamos a tener el panel celular o el por panel sí importa por panel. Y luego tendremos el panel celular. Por lo que ahí tienes, vendo pan. Entonces, ¿qué tenemos en el panel de bicicleta? Vamos a quitar el botón de descarte, el botón de EU. Vamos a renombrarlo a la compra. Y vamos a cambiar el texto también aquí para comprar se mantendrá la descripción del artículo y los paneles de exhibición de artículos. Entonces todo aquí va a ser igual. El panel de elección no necesita estar aquí. Y probablemente deberíamos haber hecho eso y luego duplicarlo. Pero no se preocupe por eso. Vamos a añadir también aquí un texto Mesh Pro, o simplemente un texto. Y va a ser el valor del producto. Por lo que valor. Y aquí solo vamos a escribir valor y sólo tendremos uno de ellos va a cambiar. Como siempre, necesitamos establecerlo como el medieval. Tenemos que hacerlo completamente negro. Y lo vamos a arrastrar hacia abajo junto al botón de compra. Entonces sí, ahí vamos, Eso es todo. Y este será el valor del artículo que elegimos comprar mientras que en el panel celular. Déjame justo y estábamos trabajando en la celda o la Biblia debería haber apagado eso. No obstante, estábamos trabajando en la celda. Entonces en lugar del botón Comprar, esta va a ser la celda. Y las palabras sobre también van a ser celular. De acuerdo, Así que este fue el panel celular. Todo está configurado aquí y los botones aquí arriba, el gran BY y la celda grande nos llevarán a, de panel a panel. Esto aquí dentro nos permitirá vender un artículo. Esto será lo que ya tenemos en el inventario y luego podremos venderlo. En tanto que en el diodo de derivación se tendrá algún tipo de tendero que abrirá el panel, se quitará el C, lo que hemos utilizado. Este botón tiene que ir, este será el adiós. Y también aquí dentro, el tendero, tendremos un par de artículos para comprar. Entonces necesitaremos el valor que tenemos aquí dentro. Por lo tanto, duplicar el valor. Ponlo aquí arriba. Ahí vas. Entonces ahora tenemos el valor del artículo, y estoy seguro de que tendremos que hacer esto un poco más grande. Entonces déjame elegir las herramientas adecuadas y aumentar el tamaño tanto como podamos. Ahí vamos. Y sobre el valor aquí abajo también hará los mismos ajustes. Entonces ahí vamos. Por lo que ahora tenemos el panel celular por panel. Creo que eso es todo lo que necesitamos, o y también necesitamos una etiqueta aquí arriba en el menú de la tienda. Por lo que vamos a hacer clic derecho y nueva interfaz de usuario, agregar el texto Mesh o saber qué podríamos haber usado simplemente uno de estos valores. Y vamos a sólo nombre y valor. Y vamos a, estamos, vamos, íbamos a duplicar el valor aquí dentro. Y lo subiremos en el menú de la tienda. Y lo moveremos aquí arriba. Entonces ahí vamos. Y esta será V de moneda que vamos a utilizar. Para que puedas elegir cualquier divisa que desees. Voy a usar Bitcoins. Y eso es porque actualmente El Salvador se acaba de legalizar un poco. Entonces es una moneda de curso legal. Podemos usar Bitcoins si no estás familiarizado con bitcoins se recomienda leer sobre un débito, digamos gran tecnología, especialmente para desarrolladores de
juegos que se mueven y cualquier tipo de programadores honestamente. Y esta será la cantidad de VDC. Vdc significa pero son menos cantidad de Bitcoin. De acuerdo, genial, así que ahora tenemos todo preparado. Ahora, es hora de empezar a hacer un seguimiento de nuestro oro y así sucesivamente y así sucesivamente. Y también, por supuesto, crear un gerente de tienda. En primer lugar, lo que tenemos que hacer es añadir aquí un gestor de juegos. Ahí vas. Tenemos todo preparado. Tenemos que hacer un seguimiento de nuestros bitcoins y ¿cómo vamos a hacer eso? Y no deberíamos convertirlo en un niño de la lona lo pondrá aquí arriba. ¿ Cómo vamos a hacer eso? Bueno, podríamos haber rastreado la cantidad de oro que tenemos en el jugador. Esa es una buena idea. Pero como tenemos un gestor de juegos con el inventario y demás, creo que el mejor lugar para hacerlo es en el guión de gestor de juegos. Entonces abramos al gestor del juego. Y aquí dentro vamos a crear un, otro público y cuerdas y juego. Es decir, Bitcoins actuales. Y solo haremos un seguimiento de todo eso. Ahora. Obviamente, no deberíamos hacerlo público porque no
queremos que ningún otro guión tenga acceso a él. Pero por ahora sólo lo mantendremos así ya que tenemos una instancia. Y no siento que sea necesario
crear otra función solo para obtener los Bitcoins actuales. Entonces vamos a guardar eso, de acuerdo con esa configuración, lo siguiente que tenemos que hacer es ir y crear un gerente de tienda. Entonces entraremos a los guiones, esperaremos a que eso se compile en cualquier momento, entraremos a los guiones, crearemos una nueva carpeta aquí dentro que llamaremos a la tienda. Y dentro de la tienda vamos a crear un guión C-sharp que se va a llamar el gerente de tienda. Hit Enter, espere a que eso se compile. Vamos a añadirlo al lienzo. Entonces al lienzo, como puedes ver ahora, el Canvas tendrá el gestor de menús, el controlador de diálogo, y un gerente de tienda. Está bien, genial. Abramos al gerente de tienda y Visual Studio. ¿ Y qué deberíamos estar haciendo aquí? En primer lugar, tendremos que crear una instancia de esta clase. Por lo que crearemos una instancia pública de gestor de tomas estáticas. Vamos a poner la instancia a esto. ¿ Y qué tenemos que hacer aquí? En primer lugar, necesitamos una referencia al panel de la tienda, al panel y al panel celular. Entonces vamos a crear objeto de juego público, y vamos a tener el menú de la tienda. Por lo que esta es toda la tienda muchas que tenemos tendrán acceso también al panel de compra y venta. Y tendremos que armar todo y unidad. Pero antes de hacer eso, tendremos que crear un método que abra el menú de la tienda. Entonces entraremos en crear un vacío público, menú de tienda abierta. Y aquí solo conseguiremos el menú de la tienda y pondremos el activo en verdadero. De acuerdo, genial, Así que ya sabes lo que hace esto. Ahora el siguiente paso obvio es que queremos detener a nuestro jugador cada vez que abra las tiendas o cuando empecemos a hablar con el tendero y tenemos la tienda abierta, queremos que nuestro jugador simplemente se detenga. No necesita empezar a moverse mientras habla con los tenderos. Entonces va a ser parte de tu reto. Tu reto es impedir que el jugador se mueva. Sí, de nuevo, así que cada vez que abramos la tienda, el jugador debe dejar de moverse. Te daré un par de pistas. En primer lugar, crear una variable y Game Manager y actualizar hacer la variable a una de las condiciones y cambiar la variable cuando abramos el menú de la tienda. Entonces con eso dicho, con todos esos, de ahí, ya lo
hemos hecho antes. Pausa el video ahora mismo, y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Entonces, ¿dónde estábamos? En primer lugar, tendremos que entrar al gestor de juegos. Y tendremos que sumar otro volumen aquí dentro, que va a ser la tienda abierta. Abierto solo para mantenerse consistente de nuevo, muchos cuadro de diálogo abierto abierto, tienda muchos abrieron. ¿ Y dónde están las condiciones? Entonces vamos a añadir una condición aquí si se abre la tienda. Ahora, ¿qué más tenemos que hacer? Crear variables, actualizar, cambiar la variable cuando abramos la tienda. Por lo que volveremos al encargado de la tienda. Y aquí cuando dijimos que la tienda activa a true accederá, el gestor del juego accederá a la instancia, accederá a la tienda abierta y la pondremos en verdad. Oh, bien, Genial. Por lo que eso hecho. ¿ Qué más deberíamos estar haciendo? Bueno, obviamente, necesitamos poder cerrar la tienda,
así que vamos a crear un vacío público cerrar menú de tienda. Y sé que no estoy probando todo, pero ya hemos cubierto la mayor parte de esto, así que estoy tratando de pasar por ello un poco más rápido. Entonces vamos a usar estas dos líneas. Y vamos a poner el set activo en falso y el gestor de juegos Door instance o tienda abierta a false. Ahora necesitamos tener la capacidad de cambiar entre los paneles. Por lo que necesitamos cambiar entre el panel de anticuerpos celulares requerirá dos métodos más. Y podríamos haber hecho todo eso en el onclick, pero intentemos de una manera diferente e intentemos usar solo los métodos. A lo que quise decir es que podríamos haber encendido y apagado los objetos del juego usando el onclick en los botones. Pero ahora estamos creando un método o métodos para hacer todo eso. Entonces basta de hablar, vamos a aplicar todo eso. Entonces abriremos por panel. Y en el panel de bicicleta accederá al por panel configurado activo a verdadero. Y tendremos que configurar el panel celular para que se ponga activo en falso. Duplicará esto porque básicamente es lo mismo. Y vamos a abrir panel celular. Por lo que por panelado falso, panel celular, verdadero. Está bien, genial. Y finalmente lo que tenemos que hacer es cuando abramos la tienda. Por lo que cuando abrimos el menú de la tienda, también necesitamos asegurarnos de configurar correctamente el Bitcoin etiquetado. ¿ Tenemos referencia? No, no necesitamos agregar el impro, Así que usando el m por fila para poder acceder al
Obviamente el texto Mesh Pro, vamos a crear una variable aquí que va a ser un campo serializado. Y va a tener acceso a nuestros Bitcoins. Entonces lo vamos a llamar el texto Mesh pro GUI. Y va a ser el texto actual de Bitcoin. Guarde eso. Y ahora dónde está? Cuando abrimos el menú de la tienda, queremos establecer los textos actuales de Bitcoin. Entonces va a ser el texto actual de Bitcoin. El texto es igual a BTC dos puntos. Y aquí dentro vamos a concatenar a un gestor de juego entero. Punto de instancia de punto accederá a la corriente del Bitcoin, pero monedas. Creo que es suficiente, ¿
o necesitamos agregar una de dos cuerdas? No, Ahí vamos. Guarde eso. Ahora abramos nuestro juego y veamos si algo de eso realmente funciona. Entonces tenemos un par de cosas que hacer. Así que abre el Lienzo, abre tienda, tienda drop menu, y vamos a añadir el menú de la tienda. Encerremos esto. Agregamos el bypass, el panel celular, el texto actual de Bitcoin. Guarde eso. Ahora tendremos que abrir los botones y asegurarnos de que configuramos todo correctamente. ¿Qué es esto? Fue así. De acuerdo, entonces arregla eso. De acuerdo, entonces ahora lo que tenemos que hacer es que vamos a necesitar agregar algunas funcionalidades a nuestros botones. Entonces primero estamos trabajando en el botón grande que abre el panel. Entonces lo abriremos. Vamos a añadir el lienzo como objeto. Vamos a acceder al gerente de tienda. ¿ Y qué hace esto? Se abre V por panel, irá al siguiente botón de celda grande. También vamos a añadir la funcionalidad en el Canvas. Acude al gerente de tienda. Y vamos a abrir menú celular. Por lo que abre el panel celular y el botón de salida. Por lo que esto saldrá de la tienda. Vamos a, oops, cerrar tienda. Por lo que Gerente de Funciones, cerrar menú de tienda. Entonces ahí vamos. Guardemos eso. ¿ Qué más necesitamos hacer? A ver, ¿tenemos algún otro código abierto, open close. De acuerdo, y también tenemos que hacer una cosa más. Y eso es siempre que realmente abrimos nuestra tienda, necesitamos configurarla solo por menú. Por lo que vamos a acceder al menú o al panel de bicicleta punto set activo, true. Entonces esto lo hará, en cuanto abramos la tienda, vamos a acceder al panel de la bicicleta. Guarda eso de nuevo aquí. Esperemos a que esto se compile. Corremos nuestro juego y veamos si algo de eso funcionó. Por lo que actualmente, uh, déjame ir al gestor de juegos y darnos capaz de Bitcoins. Dámonos 32. Eso es realmente buen número, guarde eso, y vamos a probarlo. Ve a la celda. Oh, estoy trabajando aquí abajo. Entonces celular. Nada de esto está funcionando porque, y podría encontrarse con este problema para, ¿por qué no funcionan nuestros botones? Porque no tenemos un sistema de eventos. ¿ Qué hace un sistema de eventos? Bueno, déjame mostrarte el otro guión y la otra escena. Es decir, así que iremos a la ciudad a hacer doble clic. Notarás aquí que tenemos un sistema de eventos y esto es lo que nos permite interactuar realmente con los botones. Esto es lo que hace un seguimiento de lo que hacemos clic en nuestro menú de juegos. Y debido a que en este lienzo y el sistema de eventos están separados cuando agregamos un lienzo usando el prefab, no
obtuvimos un sistema de eventos. Entonces lo que haremos es arrastrar en el sistema de eventos el lienzo. Desde luego no necesitamos hacer eso porque si aplicamos el lienzo aquí dentro, todo lo que hicimos anteriormente y el otro en el menú de la tienda va a ser destruido. Por lo que de nuevo aquí con nuestro menú de tienda, vamos a hacer clic con el botón derecho e ir a su ojo y agregar un sistema de eventos. Ahorraremos eso ahora si ejecutamos nuestro juego, estoy bastante seguro de que todo debería estar funcionando. Entonces ahí lo tienes. Vendemos, vendemos, compramos, compramos, salimos de tienda, salimos de chuleta. Y desgraciadamente aún no tenemos forma de actualizar Debussy, pero llegaremos allí. Entonces espero que hayas disfrutado de este video
muy, muy largo y te veré en el siguiente.
69. Configuración de la tienda: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, vamos a estar activando la tienda y desactivándola en base a si estamos lo suficientemente cerca del tendero. Por lo que como pueden ver, tenemos la pequeña caja Trigger. Si estamos dentro de ella, podemos abrir la tienda. Podemos ir a la celda al porqué. Por supuesto, no podemos mover a nuestro jugador mientras tenemos esto abierto, se
puede ver que nuestro BDC son 32. Salimos de la tienda. Podemos movernos otra vez. Si tratamos de abrirlo en cualquier otro lugar, no podemos. Entonces, no perdamos más tiempo. Y sigamos adelante y armemos un tendero. O K. Así que tiempo para crear una tienda. Ya he añadido un tendero. Entonces usé uno de estos sprites que te proporcioné. Usé una de las caídas. Lo he tenido aquí y lo he tendido, aquí arriba. También me he asegurado de rebanar el sprite y agregar la imagen aquí. De acuerdo, Así que ahora con nuestro tendero, sprite terminado, es hora de seguir adelante y crear un nuevo guión en la tienda. Y va a ser un guión C-sharp llamado el tendero. Hit Enter, espere a que se compile. Ahí vamos. Entonces ahora si vamos en el tendero, agreguemos aquí el scripting. Y vamos a sumar también un par de cosas también. Entonces, antes que nada, le agregaremos un colisionador. Por lo que un colisionador de caja 2D justo a su alrededor. Veamos qué tan grande es eso. Sí, ahí vamos, Ya basta. Y vamos a añadir otro colisionador de cajas y este será un gatillo. Por lo que el primero es sólo para no poder caminar a través de él. El segundo será zona V donde realmente podremos acceder a la tienda. Entonces solo crearemos uno. Y aquí estábamos moviendo el colisionador de caja equivocado. Entonces probemos esto una vez más. Y haremos este más pequeño, éste un poco más grande. Entonces ahí lo tienes. Bueno, hazlo un poco grande para que tengamos más espacio para entrar. Y ahí vamos, asegúrate de que esto sea un gatillo. El segundo, el encendedor. El colisionador de caja grande. Sí. Está bien. Ahora sigamos adelante y abramos el guión de la tienda o el guión de los tenderos. Y aquí, en primer lugar, necesitamos crear un booleano que compruebe si realmente podemos abrir la tienda. Por lo que es un bool privado puede abrir tienda. Entonces no es un campo serializado. No necesitamos verlo, pero lo que sí queremos ver es una variedad de artículos. Por lo que crearemos un campo serializado. Va a ser una lista. Y luego digo array, me refería a lista, y va a ser una lista de artículos. Entonces el encargado de artículos, este es el tipo y lo vamos a llamar los artículos a la venta. Y el único problema aquí dentro con la creación listas es que no aparecerá en el inspector salvará esto. Volveremos a una unidad. Y ahí vamos. Se puede ver que en el tendero tenemos los artículos para decir, Ok, genial. Ahora lo que necesitamos hacer es poder abrir el menú de la tienda y la ropa. Y tu reto es desencadenar entrar y salir. Así que crea un en azúcar entrar y salir en el tendero. Consulta por el jugador en ellos y dijo que la puede abrir tienda booleana a verdadero o falso basado en, debes saber en base a qué. Así que pausa el video ahora mismo y ve a crear el gatillo, entra y sale. De acuerdo, bienvenido de nuevo. Entonces aquí vamos a crear un Trigger Enter propio. Y vamos a revisar colisión de FV. El DAG es igual a jugador. Entonces esto es algo diferente a la etiqueta de comparación. En realidad estamos accediendo a la etiqueta en la colisión y luego comparándola con el jugador. Y si es el jugador, entonces puede abrir tienda es igual a cierto. duplicará o Novak, no
se duplica en la salida de gatillo a la y sólo vamos a copiar esto. Ahí vamos. Pégala aquí. Puede abrir tienda es falsa. Ahí vamos. Entonces ahora si el jugador y la colisión del jueves, lo
ponemos a cierto, eso significa que podemos abrir la tienda. Si estamos fuera de ella, entonces no podemos abrir la tienda. Ahora, necesitamos obtener una entrada de un determinado botón para poder abrir la tienda. Por lo que una actualización vamos a comprobar si podemos abrir la tienda
y el punto de entrada se abotonen hacia abajo. El de fuego creo que se llamaba. Entonces. A pesar de que es una referencia de cadena, sólo lo
nombraremos firewalls. Si sí tenemos un error o algo no se abre, entonces vamos a volver a revisar. Y también tenemos que asegurarnos de que el jugador, por lo que el guión de jugador con una instancia y el movimiento de desactivación se establece en falso. Entonces tenemos que asegurarnos de que el jugador pueda
caminar y verás más adelante a qué me refiero con eso. Y por último, tenemos que asegurarnos de que la tienda no esté ya abierta. Por lo que FV, gerente de tienda, instancia de punto, punto activo, punto GameObject dot está activo y jerarquía. Activo y jerarquía. Por lo que podemos añadir un entrar aquí. Ahí vamos. Simplemente no tengas esta larga fila. Por lo que necesitamos antes que nada asegurarnos de que podamos abrir la tienda. Tenemos que asegurarnos de que pulsamos la tecla de entrada. Tenemos que asegurarnos de que el jugador sea capaz de moverse. Entonces lo hicimos. Todavía no tenemos el activado el movimiento. Y por último, necesitamos asegurarnos de que aún no se haya abierto el menú de la tienda. Está bien, genial. Y aquí en lugar de objeto de juego, necesitamos ser menú Shot porque las preferencias de administrador de tienda, siempre que escribimos instancia de administrador de tienda dot GameObject, estamos haciendo referencia al objeto del juego que tiene el gerente de tienda, que es el lienzo que necesitamos para acceder al menú de la tienda. De acuerdo, Entonces con ese Don, ¿qué vamos a hacer aquí dentro? Bueno, claro que vamos a abrir la tienda. Entonces gerente de tienda, instancia de punto, punto, hombres de tienda abierta. Guarda eso. Y antes de ir a probar esto, hay una cosa más que tenemos que hacer, y eso es establecer una lista de artículos en el menú de la tienda. Entonces si vamos al gerente de tienda, habrá que crear aquí una lista de cinco artículos gerente. Y van a ser los artículos a la venta también. Entonces en el tendero, abrimos la tienda y entonces estamos antes de que incluso abramos la tienda, podemos acceder al gerente de tienda, gerente tienda dot instance dot items para la venta. Y va a ser igual a los artículos a la venta que ponemos aquí. Entonces este es el objeto que entonces es gerente de tienda, mientras que éste es el que estamos usando para el tendero, Vamos demasiado confuso para ti. Te recomiendo que cambies el nombre. Adelante y cambiemos el artículo de los tenderos a la venta. Está bien. Entonces ahí vamos. Guardianes de tienda artículos en venta. Aplica eso. Por lo que ahora los artículos a la venta en la tienda o los tenderos artículos a la venta. Entonces vamos a salvar todo eso. Vamos a volver a la Unidad. Vamos a correr nuestro juego y vamos a ir
al lado del tendero y tenía la llave de fuego. Y ahí vamos, tenemos que comprar la celda y la tienda de salida, y podemos salir de la tienda. Si abrimos la tienda, ¿podemos movernos? No, no podemos. Cuando salimos de la tienda, ahí vamos. Podemos movernos. Tan excelente. Todo parece estar funcionando. En el siguiente video en realidad estará mostrando los artículos que queremos comprar y vender. Entonces con eso hecho, te
veré en el siguiente video.
70. Artículos para comprar y vender: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, vamos a permitir la capacidad comprar o visualizar los artículos que queremos comprar y vender. Entonces como viste ahora mismo, recogí un par de artículos. Fui al tendero, hago clic en el Menú y voila, puedo ver de inmediato que tengo los actos y todo lo que está disponible en el tendero para comprar y hemos agregado todos estos manualmente desde el tendero derecho aquí. Si lo deshago, se puede ver que el artículo de los tenderos a la venta. Ahí vas, los actos de plata, la armadura dorada, y todo eso. Y ahora si voy al panel celular, ahí tienes. Estos son los artículos que he recogido y que puedo. Ahora actualmente no hacen nada, pero por ahora, nuestro principal objetivo es visualizarlos todos. Entonces, no perdamos más tiempo. Y empecemos. Ah, así que tiempo para visualizar los artículos que queremos comprar y los artículos que queremos vender. Entonces esto va a ser bastante similar a la forma en que manejamos los ítems en el menú de ítems. Entonces vamos a entrar en nuestro código. El primero que necesitamos son referencias al contenedor de ranura de artículo, que va a ser el botón y el icono de la ranura del contenedor parent. Por lo que entraremos en el gestor de menús. Y si nos desplazamos hasta aquí, simplemente
podemos copiar el contenedor de ranura de artículo y uno para los padres. Entonces copiaremos eso, lo pegaremos aquí. Vamos a guardar esto. Y cuando abramos el panel bimanual, queremos seguir adelante y actualizar todo eso. Entonces, ¿cómo lo actualizamos? Bueno, también es bastante similar al que estamos usando aquí. Por lo que en el gestor de menús, donde actualizamos los artículos en el inventario van a copiar todo este código. Y vamos a seguir adelante y pegarlo aquí. Pero en lugar de usar el inventario, así que cuando estamos mirando a través de todos los artículos en el gestor de menús, usamos para mirar a través del inventario y el encargado de la tienda, vamos a seguir adelante y mirar a través de los artículos para digamos, Guardar eso. Y una cosa más que necesitamos cambiar es la cantidad. Por lo que supondremos que el tendero siempre tiene una cantidad infinita de acceso. No estaremos saliendo de nuestro camino e implementando algún tipo de cantidad limitada de armamento. Simplemente lo mantendremos como infinito por ahora, sólo por el bien de la simplicidad. Entonces tendremos que asegurarnos de que esto sea un vacío, vamos a guardar eso. Y si no creamos este tipo de if condition if statement, te darás cuenta, puedes probarlo, pero debido a que el estado predeterminado de esta imagen es con 999 en la parte inferior, necesitamos asegurarnos de que la volvemos a poner en una cadena vacía. Entonces ahora Entremos al tendero y sumemos un par de artículos aquí. Por lo que vamos a añadir un hacha de oro, vamos a añadir una armadura dorada. Vamos a sumar dos más. Vamos a sumar una Plata aquí arriba y una armadura de plata aquí abajo, y una de oro actúa al final. Eso lo ahorraremos. Vamos a ejecutar nuestro código. Y veamos si eso funciona. Si subimos al tendero, vamos al bimanual y ahí vas. Se puede ver que hemos actualizado nuestros artículos de compra y si hacemos clic en uno de ellos, no pasa nada. Si tratamos de comprar, no pasa nada y el menú celular aún no funciona. Entonces sigamos adelante y arreglemos este panel celular. Ahora en el panel celular, realidad
podemos usar el alcance del gestor de menús exactamente como es y, porque estamos usando los artículos en el inventario que
tenemos una orden para venderlos al tendero. Pero hay un pequeño problema. Si copiamos este código y lo ponemos en el gerente de tienda en el panel de la bicicleta, va a funcionar perfectamente bien. Incluso puedes probarlo tú mismo. No hay problema con. Pero como programador profesional, y a medida que avanzamos por este curso, es mejor empezar a utilizar técnicas y hábitos más avanzados. Y uno de esos hábitos es nunca tener código duplicado. Por lo que queremos una forma en la que podamos crear algún tipo de método que pueda hacer ambas funciones usando el elemento contenedor parent. Me refiero a los artículos a la venta cada vez que estamos vendiendo en el panel celular y al mismo tiempo trabajan para el panel de la bicicleta. Entonces sigamos adelante y hagamos algo así. El modo en que lo haremos es crear un método que tenga dos argumentos. Y uno de esos argumentos va a ser el inventario que vamos a estar mirando. Entonces vamos a desplazarnos hacia abajo y aquí abajo vamos a crear un vacío privado. Y se va a llamar artículos de actualización y tienda. Y va a tomar dos argumentos. Se va a llevar el elemento slot container parent porque tenemos, como he dicho, o tal vez no lo he hecho, tenemos dos tipos de padres contenedor de artículos, uno ND por panel y uno en los paneles de celda. Por lo que se puede ver aquí mismo el panel de visualización de artículos para el panel celular y el banner de exhibición de artículos para el panel bi. Entonces esta es la primera parte del argumento que queremos enviar. Por lo que es transformar el padre contenedor ranura artículo. Y el segundo es la lista de artículos que vamos a mirar. Por lo que va a ser de tipo list item manager. Y lo vamos a llamar los artículos a mirar a través. Por lo que artículos para mirar a través. Y ahora vamos a cortar este código del abierto por panel. Y lo vamos a pegar aquí. Y en lugar de los artículos a la venta, vamos a mirar a través de los artículos para mirar a través. Y el contenedor de ranura de artículo es el mismo que n aquí. Por lo que ya preprogramé esto. Y cuando abramos el menú de la Biblia, vamos a seguir adelante y llamar a los artículos de actualización y tienda. Y el padre contenedor ranura artículo. Vamos a llamar a esto el contenedor de ranura de artículos, o los artículos pensados por contenedor o contenedor. Pongámoslo aquí arriba. Por lo que los artículos pensados por contenedor y el contenedor de celda ranura de artículo. Entonces vamos a guardar eso. Entonces cuando estamos actualizando la tienda de artículos desde el bi, que van a enviar la ranura Item por contenedor parent. Y la lista que estamos buscando son los artículos a la venta. Eso lo ahorraremos. Pero cuando abramos el panel celular, vamos a actualizar los artículos y comprar. Y en realidad voy a subir esto. Así que mantenga presionada Alt. Mueve esto hacia arriba. Sí, ahí vamos. Salpicando aquí. Y vamos a usar el conjunto de elementos de celda, slot container parent. Y la lista que vamos a revisar es la instancia de punto de inventario,
punto, lista de objetos de obtener. Entonces ahí vamos. Ahora bien, todo esto debería estar funcionando perfectamente bien. Entonces, vayamos a Unidad. Sigamos adelante y sumamos un par de artículos aquí. Entonces vamos a sumar unos actos dorados que podemos recoger una armadura dorada aquí solo para que podamos verlo en nuestros artículos cuando queramos vender. Entonces vamos a correr de nuevo y te olvidaste de algo. Tenemos que entrar en el Lienzo, desplácese hacia abajo. Vamos a cerrar esto. Vamos a añadir el contenedor de ranura de artículo, la compra y la celda. Entonces la celda, ésta. Vamos a cerrarlo. Los artículos mostrados banner desde la celda irán a la celda y el panel de exhibición de artículos en el comprador entrará en el adiós, guarde eso, ejecuten el juego, y probemos esto. Recogamos los artículos. Gracias. Vayamos al tendero. Hola ahí. Por Sí, Ahí vamos. Estos son los artículos que están disponibles para que podamos comprar. Y si hacemos click en celular, ahí tienes. Estos son los tres artículos que hemos recogido. Ahora bien, esto todavía no hace nada, pero al menos está funcionando completamente bien y 100% con precisión. O K, Genial. Entonces con eso completo, en el siguiente video, realidad
vamos a empezar a vender y comprar nuestros artículos. Te veré en el próximo.
71. Compra artículos: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, déjame solo mostrarte lo que pasa. Vamos a recoger un par de artículos. Vamos a acceder al tendero. Al hacer clic en comprar, vemos que cuando seleccionamos uno de los artículos, obtenemos la descripción, el nombre, y el valor de ese artículo. Si hacemos clic en el, por ejemplo, digamos la armadura dorada, su valor es 35. Si vamos a venderlo, podemos ver que tenemos un orbe dorado, pero su valor es 26 porque eso siempre es un poco más barato. Entonces, bueno Eso dicho fue que se mostró? Eso no es perder más tiempo. Y empecemos. Ah, está bien. Ahora es hora de agregar algunas funcionalidades a los botones que estamos instanciando y al panel de compra y venta. Pero hay un ligero problema. No podemos modificar el botón real. ¿ Por qué? Porque estamos usando el mismo prefabricado en la celda y compramos paneles que estamos usando en el panel de artículos. Entonces esto va a ser un poco problemático. Lo que haremos es entrar en el botón de artículos. Y aquí dentro vamos a modificar. Entonces vamos a comprobar si estamos trabajando en el menú, si estamos trabajando en la tienda. Si por trabajar en la tienda van a comprobar por trabajar en la celda o en el BI. Entonces, sigamos adelante y empecemos a implementar eso. En primer lugar, cuando presionamos el botón, vamos a comprobar si el gestor de menús, instancia de
punto, punto, activo y jerarquía. Quiero decir el.menu, necesitamos acceder al menú antes de hacer eso. Entonces el do tenemos acceso al menú si vas al gestor de menús aquí arriba, por lo que el Ganando, por lo que el menú no es accesible. Entonces vamos a cambiar esto a público para que podamos acceder a él. Entonces en aquí.me. Entonces si estamos trabajando en el menú, porque recuerda que tenemos un menú de tienda y un menú regular. Si estamos trabajando en el punto de menú, activo y jerarquía, entonces vamos a abrir los corchetes y vamos a usar el código que estábamos usando. Y antes de que sigamos con estas dos líneas de código y no son tan buenas. Por lo que no quieres estar cambiando nada en el gestor de menús que puedes cambiar aquí, es mejor enviar esta información, los ítems en nombre
del botón y la descripción de los ítems en botón
al Administrador de Menús y cambiar eso de una manera mucho más mejor. Pero me quedaré con esto y voy a añadir un comentario parece que esto es una mala codificación. Es mejor enviar el nombre y esta corrupción al script Menu Manager. Y de esa manera también podemos asegurarnos de que estos dos puedan ser de campo privado o serializado. De acuerdo, con eso hecho, lo
siguiente que vamos a hacer es que vas a comprobar si el menú de la tienda está abierto. Entonces si el encargado de la tienda punto instancia, menú de la tienda de puntos, punto activo y jerarquía, entonces vamos a revisar otra vez si el bimanual está abierto. Entonces si vamos a copiar esto porque es más o menos lo mismo. Lo pegaremos aquí. Y vamos a comprobar si el panel VI está activo. Estaba llamando a get menu. No importa, es más o menos lo mismo. ¿ Sabes a qué me refiero? ¿Y qué vamos a hacer aquí dentro? Vamos a crear en primer lugar la declaración else. Else puede crear un otro
si, si quieres, solo para asegurarte. Entonces si copia eso, pega eso aquí, si el panel celular está activo en la jerarquía, vamos a hacer otra cosa. Pero, ¿qué vamos a hacer realmente? Bueno, cada vez que hacemos clic en el botón, ¿qué queremos que suceda? Queremos en primer lugar, el nombre del artículo a llenar. Queremos que se llene la descripción del artículo. Queremos obtener el valor del artículo. Eso es más o menos. Creo que si vamos a necesitar algo más, lo pensaremos. Lo haremos sobre la marcha. Entonces al igual que los desarrolladores profesionales de juegos, pero no queremos que todo esto se maneje dentro del botón del ítem. En cambio, es mucho mejor andar y el encargado de la tienda. Entonces aquí, estamos actualizando, estamos abriendo, cerrando. Vamos a crear dos métodos más aquí. Uno será un vacío público seleccionado por ítem. Y va a tomar una variable que va a ser el administrador de TI o de tipo item manager y el artículo a comprar. Por lo que siempre que estemos llamando al elemento seleccionado desde el botón Elementos, vamos a proporcionarle el ítem en la parte inferior. Espero que eso quede claro. Ahora, el otro método que queremos usar es copiarlo, pegarlo aquí, y es el seleccionado. Elemento celular que vamos a utilizar y antes de continuar porque estamos usando los textos y la descripción y el valor para establecer todo, en realidad
necesitamos una referencia a ellos. Entonces arriba en el gerente de tienda, Vamos a conseguir un par de referencias. Entonces, en primer lugar, crearemos un campo serializado. Va a ser de tipo item manager y es el ítem seleccionado. Entonces esto es algo que hemos hecho por otro campo serializado el cual contendrá los textos. Entonces texto, Malla, sonda, GUI, va a ser el por ítem, nombre, El por ítem. Porque la corrupción y el por valor de artículo. Y vamos a duplicar esta línea y en vez de y, vamos a vender, vender, y vender. Y estos van a ser diferentes y verás por qué en tan solo un poco. Entonces con ese ahorro ahora que tenemos referencia a todos los diferentes textos y menú D-sharp. Desplazemos hacia abajo y veamos qué podemos hacer aquí dentro. En primer lugar, vamos a acceder al artículo seleccionado y va a ser el artículo a comprar. Entonces vamos a acceder al texto de punto por nombre de elemento. Y es igual al elemento seleccionado a por ese nombre, nombre del elemento punto. Por lo que el nombre y el nombre del artículo son muy diferentes. El nombre es el nombre real que pusimos aquí. Entonces por ejemplo, este es el tendero, pero el nombre del artículo es algo que agregamos aquí y el gerente de artículos, así que nombre del artículo, Golden Axe. Entonces necesitamos rellenar la descripción. Entonces por descripción del artículo, por descripción del artículo punto texto elemento seleccionado, esa descripción del elemento. Eso lo vamos a salvar. Y finalmente el valor. Y ese va a ser el ítem de celda C.
Escribamos y valoremos el valor del ítem. El texto es igual a. Y aquí dentro, déjame comprobar si necesitamos concatenar algo. Entonces déjame apagar la tienda. El valor que c, Esto fue, vale, así que es un solo texto. Por lo que vamos a concatenar valor dos puntos más T caja de artículo seleccionado. Por lo que seleccionar, no es tomar elemento seleccionado, Pensamiento, valor y monedas. Por lo que ya hemos creado esta variable cuando
estábamos creando los ítems aquí en el gestor de ítems. Por lo que el valor y la moneda del artículo. Está bien, genial. Que eso no, Guardemos eso. Ahora vamos a tratar de llamarlo desde el botón Elementos. Entonces si está en el panel BI aquí dentro, vamos a decir que queremos acceder al gerente
de tienda punto instancia punto seleccionado por artículo. Y podemos ver aquí que necesitamos el artículo para comprar. Entonces es el artículo en la parte inferior, ese es el artículo que buscamos comprar. Y aquí dentro vamos a llamar al otro método, que es el ítem, celda, elemento de celda seleccionado. Y ahora es el momento de un pequeño reto. Y tu reto es terminar estos menú celular, llamado el elemento celular seleccionado desde el botón Items. Ya lo he hecho por ti. Completa el método en gerente de tienda. Es lo mismo que en el por casi comprobar para ver si todo está funcionando usando el debug dot loc. ¿ Y por qué digo que es casi lo mismo? Bueno, porque, ya sabes, cada vez que estamos trabajando en un juego o en cualquier juego de RPG, casi cualquier juego. Creo que si quieres vender un artículo, su valor es menor que siempre que quieras comprarlo realmente. Entonces cuando quieras vender algo, por ejemplo, digamos que quieres comprar la armadura de placa dorada. Su valor es de 100. Pero cuando lo vendes, su valor es tal vez 75. Por lo que no es lo mismo cuando quieres vender algo versus cuando quieres comprar vendido necesitarás reducir el valor cuando quieras vender un artículo. Con eso dicho, pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. ¿ Cómo te pusiste con eso? Por lo que es más o menos la misma cosa exacta. Vamos a copiar esto, pegarlo aquí,
y en lugar de artículo a comprar, este va a ser el artículo a vender. Lo pegaremos aquí para que sea el artículo a vender y el valor, en lugar de ser solo devaluando monedas, lo
vamos a multiplicar por, digamos 0.75 eth. ¿ Y funcionará esto? ¿ Esto nos dará un error? Creo que podría. Entonces, solo mantengámoslo tal como está. A lo mejor no lo hará. Entonces vamos a guardar todo eso. Nosotros vamos a entrar a Unidad. Vamos a entrar en el Lienzo y vamos a poner todos estos. Por lo que el nombre de elemento por. Por lo tanto, asegúrese de agregar el valor, el valor de descripción, los valores del artículo. Entonces está aquí, la celda. Entonces cerremos el panel de compradores que se ha abierto aquí. Entonces el nombre del artículo, la descripción del artículo, y el 0 más es el valor aquí abajo. Ahorraremos todo eso. Vamos a ejecutar el código y ojalá no tengamos ningún error o vamos a correr nuestro juego. Y sólo salgamos de la punzada. Vamos a recoger algunos artículos. Vayamos al tendero, vamos a comprar. Si hacemos click en la plata, ahí tienes. Para que veas que tenemos una armadura de plata. Fema, haz esta armadura de plata más grande. Esto defenderá de los monstruos y su valor es de 15. Si vamos a la celda y seleccionamos, o vamos a seleccionar la armadura dorada. Su valor es 35. Si vamos a la para vender esta armadura, hacemos clic en ella y nada parece funcionar. ¿Por qué es eso? Y eso es porque en la tienda y el seleccionado oh, bien. Por lo que no cambiamos la celda, el nombre del elemento de
celda, la descripción del artículo de celda, la venta Valor del artículo. Ahora esto debería estar funcionando. Entonces por eso nunca copias y pegas y solo lo haces. Necesitas asegurarte siempre de que sepas lo que estás copiando y pegando. Por lo que ahora vamos al tendero que quiere comprar la armadura dorada es de 35, vamos a sólido. Su valor es de 26.25. De acuerdo, entonces es por eso que necesitamos convertirlo en un entero. Entonces n aquí, sólo vamos a agregar los paréntesis y vamos a escribir int, cerrar eso, guardar eso, y esto debería convertirlo en un entero. Pero como pueden ver, 35 cuando queremos, para el 2006, cuando queremos establecer. Entonces con eso hecho, espero que lo disfruten. Espero que estés disfrutando del curso, pesar de que cometa un par de errores a veces me gusta mucho mantenerlos aquí. Y porque lo creo de verdad, sobre todo si eres principiante, puedes quedarte muy abrumado, pero por lo que está pasando. Entonces podrías pensar que, oh, ¿cómo le va tan bien a mi instructor, y de dónde saca todo ese conocimiento y por qué no puedo ser así? A mí me gusta mostrarles que siempre cometgo errores. Siempre tengo que volver atrás e incluso a veces cortar mucho, se
tarda mucho porque no estoy seguro de cuál es el problema. Voy a prueba, uso debug. Siempre regreso y veo dónde está el problema. Como puedes ver, a veces incluso olvidamos qué, qué, cuál es la variable que estamos usando. Por eso dicho, espero que estés disfrutando si
lo estás haciendo dejando una opinión en me ayuda mucho y me deja saber lo que piensas del curso para que ninguno en el siguiente video esté accediendo a nuestro inventario y haciendo los botones de compra y venta, trabajando adecuadamente. Entonces te veré en el próximo.
72. Hacer un uso de los botones y vender: Bienvenidos de nuevo a mis compañeros desarrolladores de juegos a un video totalmente nuevo. Y en este, finalmente terminamos de comprar, vender artículos. Entonces si entramos al tendero, recogimos algunos artículos. Por supuesto, todavía tenemos un poco de cosas que arreglar. Al igual que por ejemplo, en este momento cuando abrimos el menú de la tienda, teníamos el bypass y abierto. Tenemos que apagarlo. Pero esos son pequeños detalles que no son tan importantes, sobre todo cuando se trata del código. Entonces abrimos la celda, seleccionamos el Hacha Dorada, lo
vendemos y desaparece y obtenemos 18. Entonces seleccionamos, si tratamos de venderlo de nuevo, como puedes ver, no podemos. Si vamos a la porción, son cinco, deberíamos tener 55 bitcoins. Y si resolvemos esto, que es 26, creo que conseguimos 780 algo, 81, ahí vamos. No soy tan bueno en matemáticas. Si tratamos de comprar, digamos que compro el Ax Ay dorado por la armadura dorada antes de ir a venderlo. Ahí vas. Puedo venderlas de nuevo porque se agregan a mi inventario y no sólo aquí. Si salgo, me voy. Abrí el menú de artículos. Los tengo aquí mismo en mi menú de artículos, listos para trabajar para ir a luchar contra monstruos. Por lo que Jimmy ahora puede ir a una tienda. ¿Qué tan guay es eso? Un demonio finalmente puede ir a comprar, vender cosas en la tienda. Eso no tiene precedentes. Entonces en esa bomba, no perdamos más tiempo y empecemos. Ah, tiempo 40, última etapa de nuestra tienda. Queremos realmente comprar y vender artículos. Entonces vamos a entrar a nuestro gerente de tienda aquí. Y vamos a crear dos métodos. Una para la compra y la otra, bueno, obviamente para la Cumbre. Entonces vamos a entrar aquí y vamos a crear un avance público por artículo. Y vamos a comprobar, en primer lugar, si tenemos la cantidad de Bitcoin requerida. Entonces si gestor de juegos dot instance dot, se
llamaba la cadera
actual, Bitcoins actuales es mayor o igual al valor de punto del artículo seleccionado en monedas, entonces podemos proceder a comprar y ¿cómo compramos? Bueno, en primer lugar, necesitamos eliminar del Bitcoin actual. Tan menos igual al valor de los artículos seleccionados. Entonces, en primer lugar, ya sabes, cuando compras algo, necesitas dar algo a cambio. Y luego necesitamos agregarla a nuestro inventario. Entonces inventario punto instancia, punto, agregar artículos, y vamos a agregar el elemento seleccionado a ella. Ahí tienes, guarde eso. Y esto debería terminar todo en el backend de la programación. Ahora en el front end, queremos asegurarnos de que actualicemos el oro que aún tenemos. Es decir, actualizar los Bitcoins que tenemos. Qué avergonzado llamando Bitcoin oro. De todos modos, aunque sea mucho mejor. Entonces sigamos. Entonces tenemos que actualizar el texto porque aún recuerdo, ¿ fue sólo el valor? Déjame ver la cantidad de Bitcoin, vale, Así BTC dos puntos, vale, entonces BTC dos puntos, vamos a concatenar con una cuerda, que va a ser la instancia de punto del gestor de juegos, dot bitcoin, bitcoins, y ahí tienes. Creo que eso es todo lo que tenemos que hacer. Eso lo salvaremos. Y ahora necesitamos asignar este método por artículo al botón de compra. Entonces en el menú de la tienda, en el panel de la bicicleta y el botón de compra, si nos
desplazamos hacia abajo, sabemos que no queremos abrir el personaje. ¿ Qué es eso? ¿Tenemos que entrar aquí? El encargado de la tienda, por, por, por artículo. Ahí vamos. Guarda eso, ejecuta el juego. Si abres el menú, ve a Items. Se puede ver que no tenemos nada y aún no se cierra cuando tocamos cerca que tan fácil de hacer y aún no lo hemos hecho. Entonces abrimos, vas al menú, compramos los actos, el Hacha Dorada. Y podemos escribir, porque no tenemos fondos suficientes. Un mensaje aquí dentro sería muy bonito, lo que podemos comprar caramelos por el dorado. Entonces vamos a comprar una armadura de plata también, todavía
tenemos siete Bitcoins. Salimos de tienda, vamos a los artículos y ahí vas. Entonces ahora ¿qué tan genial es eso? En realidad podemos comprar artículos y verlos en nuestro inventario. Eso es tan genial. Está bien, genial. Volvamos atrás. Ahora es el momento de crear los métodos de botón celular y va a haber parte de tu reto. Tu reto es crear los métodos de botón celular. Así que actualiza el oro actual. ¿ Por qué lo guardé como oro? Déjame cambiar eso. Bitcoin, bienvenido al backend de nuestro mundo. Por lo que Bitcoin actual con el valor de los ítems, elimine los ítems de la lista, actualice el texto, y establezca el ítem seleccionado en nulo. Y te diré por qué en tan solo un poco. Pero por ahora, ve a hacer el reto. De acuerdo, bienvenido de nuevo. Por lo que el elemento celular del vacío público, realmente
espero que estés haciendo los retos porque son una gran manera de aprender. Si a este punto aún no has hecho al
menos el 50 por ciento de los retos a partir de este punto. Porque esta creo que es la sección final para video final. En este apartado, hay que poner en el esfuerzo y hacer cada reto individual. Por lo que el Bitcoin actual aumentará por el valor. Entonces va a ser un int. Queremos convertirlo a un fin. Y vamos a copiar esto aquí mismo, porque es más o menos lo mismo. Entonces copia, pega aquí. Por lo seleccionado elemento, valor de punto y tiempos de moneda 0.75. Está bien, genial. Y luego lo vamos a retirar del inventario Punto de instancia de puerta quitar el artículo remover, el artículo seleccionado. Y finalmente necesitamos actualizar. Entonces vamos a conseguir el texto, pegarlo aquí. Y como ya he dicho, vamos a fijar el ítem seleccionado para que sea igual a nada. ¿ Y por qué estoy haciendo esto? Ahorra y déjame mostrarte por qué. Entonces voy a comentarlo. Si entra aquí, si ejecutamos nuestro juego, recogemos un artículo, vamos a venderlo. Podemos venderlo. No se está actualizando. ¿ Por qué no se actualiza? Porque no hemos asignado al botón de celda. El elemento celular. ¿ Dónde vende artículos si eso ejecuta el juego de nuevo. Y esto es muy importante. Entonces llegamos al celular, hey celular, esto es para el 2006. Nosotros lo vendemos. Ahí vamos. Obtenemos 58. Y podemos resolverlo mucho, mucho, muchas veces. Entonces, ¿qué tenemos que hacer aquí? Necesitamos establecer el elemento seleccionado en nulo. Y luego vamos a crear una condición if aquí dentro que
asegure que si hay un ítem seleccionado o no hay un ítem seleccionado, podemos hacer esto o, o solo cuando hay un ítem seleccionado. Entonces en el, cuando hay un artículo seleccionado, entonces podemos seguir adelante y comprar. Entonces intentemos esto otra vez. Asegúrate de ejecutar el juego. Esta tienda que queremos vender, vender este artículo. Ahí tienes, para que podamos venderla en las. Pero si volvemos a hacer clic en él, pesar de que podemos hacer click, Vale, así podemos, una vez, ahí vamos. Ya no podemos. Y esta es la final, digamos chink en la armadura. Entonces vamos a no estoy seguro de por qué llamé chink en la armadura. Vamos a actualizar el menú. ¿ Cómo vamos a hacer eso si vamos a uno de ellos? Entonces aquí puedes ver que estamos actualizando los ítems, así que solo abriremos panel celular de nuevo. Por lo que abre el panel celular. Ahora puedes ver que cuando vendemos uno de los artículos, ahí tienes, vendiendo, golpeamos a esta celda. Ya no puedes venderlo. No se puede seleccionar el elemento y no se puede presionar la celda tanto como se desee. Eso es un sólido una vez que consigues tus Bitcoins y te vas para ir a conquistar otros pueblos y así sucesivamente. Entonces espero que estés disfrutando del curso. Espero que hayan disfrutado de la tienda. Sé que no hay mucha mecánica de combate y juego, pero es muy, muy importante. Esto se centra más en la codificación, en cómo evitar ciertas cosas, en cómo crear entornos interesantes si lo desea, y cómo manejar reacciones entre múltiples scripts. Entonces espero que estés disfrutando, espero que tu cerebro esté empezando a doler por
todas las formas que hemos conectado a nuestro gerente de tienda y tendero y botones de artículos y el inventario y el gerente de artículos y el menú manager y todo eso, todo eso está conectado entre sí de una manera hermosa que parece estar siempre funcionando. Entonces espero que estén disfrutando y los veré en el siguiente video.
73. Sección 10: creación de misiones: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, como puedes ver, hemos creado un gestor de misiones con un par de misiones que tenemos en él y marcadores de misión. Entonces cuando ejecutemos nuestro juego, verás que para cada una de nuestras misiones, tenemos un elemento o un o k, tiempo para algunas misiones. ¿ Qué RPG no tiene cuestionarios? ¿ Es incluso un RPG? Si no hay misiones, tal vez haya, no lo sé. Vamos a crear un sistema de misiones y vamos a mostrarte sólo un poco cómo va a funcionar esto. Entonces este es uno de mis dibujos más profesionales como puedes ver. Entonces tenemos una cuerda, un camino de tierra, tenemos una cueva con una entrada y algo de pasto. Y tenemos a Jimmy, donde el ojo se ha vuelto rojo. Y tenemos las misiones aquí dentro. Entonces digamos que tenemos tres misiones. 1, necesitamos matar al dragón, conseguir la espada, salvar el pueblo. De acuerdo, entonces tendremos una especie de sistema de checkbox, así que tendremos que recoger Dragon lo comprobará. Cuando sí matemos al dragón, abrirá
algún tipo de cueva y otra escena y que dio tendrá una espada en ella para que podamos entrar a la cueva, llegar a ordenar, y luego tal vez ir a otra escena. Y por eso creé esta flecha perfectamente formada, que dice, después de matar a un dragón, podemos venir de este lugar. A lo mejor la flecha debería haber sido apuntada hacia el otro lado. Pero de todos modos, venimos de otra escena. Encontramos la cueva donde necesitamos conseguir la espada. Conseguimos la espada. Volvemos y vamos a salvar el pueblo. No lo sé. De todos modos, nos estableceremos. Adelante y antes que nada,
empecemos a crear las marcas de búsqueda y las peticiones, que tendrán. Entonces vamos a Unity y vamos a entrar en los guiones, vamos a crear una nueva carpeta aquí. Y estoy pensando, ¿Dónde debo poner mi controlador de cámara, gestor de
juegos, y gestor de menús? Vamos a crear una carpeta. Ah, eso es, eso es un guión filoso C. Eliminar. Vamos a crear una carpeta, la que llamaremos el mientras que la carpeta. De acuerdo, entonces necesita un poco de tiempo para procesar la carpeta. llamaremos los gerentes. Gerentes. Por lo que el controlador de cámara también es gerente. Y lo pondremos en Manager por ahora si encuentras un mejor nombre para la carpeta o un mejor lugar para los scripts, los
pondremos ahí. Y crearemos una nueva carpeta. Y los guiones para las misiones y y es unidad. búsquedas tan lentas, me pongo rojo. Guardemos eso. Siento que la unidad está a punto de chocar. Por lo que dentro de las misiones, vamos a crear un guión C-sharp al que llamaremos al gerente. Entra, espera a que se compile, y el gestor de costos se agregará en el gestor de juegos porque obviamente ese es el mejor lugar para ahorrar un gestor de costos, ya que estaremos pasando por múltiples escenas y necesitamos hacer un seguimiento de las solicitudes. De acuerdo, genial, con eso hecho, vamos a ahorrar, y ahora abramos el gestor de costos y Visual Studio y veamos qué tenemos que hacer aquí. Entonces, antes que nada, necesitamos los nombres. Entonces vamos a seguir adelante y crear un campo serializado donde vamos a crear una matriz de cadenas. Y porque no es una lista, porque no vamos a estar quitando ni agregando nada. Por lo que no es un problema mantenerlo como una matriz. Y van a ser los nombres de la búsqueda. Vamos a crear una, otra matriz, pero esta vez va a ser de booleanos y van a ser los marcadores de misión completos. Por lo que estos serán los marcadores, como hemos dicho, tendremos marcadores para cada una de las misiones y tendremos una puntería. Entonces sigamos adelante y guardemos esto. Guarda esto, vuelve a Unidad y sumemos un par de misiones. Y vamos a ver. Por lo que tenemos solicitudes completas y solicita nombre. Adelante y empecemos a sumar un par de misiones. Dejará el primero en blanco. Y tendremos tal vez cuatro, tal vez cinco. A ver. Entonces, ¿qué debemos tener aquí? Entonces derrota, arrastrando. Claro, ¿por qué no? Digamos que sólo entramos a una cueva. Simplemente, sólo entrar en una cueva resuelve una de las misiones. A lo mejor esto debería estar bien. La cueva sigue siendo mermelada. Toma monstruo, así toma monstruo vendido. De acuerdo, guarde eso. Ahora lo siguiente que tenemos que hacer es que necesitamos crear este array de marcadores de misión completa. Y la forma en que haremos esto. Y como pueden ver, necesitamos hacer de este un gran C guardar que ahora tendrá marcadores terminados. De acuerdo, entonces ahora necesitamos crear los marcadores de misiones completados. Y por qué digo Crear y no solo agregar un par de marcadores aquí, igual que hicimos por los nombres. Bueno, porque no queremos seguir adelante y crear estos marcadores manualmente. Queremos que eso suceda automáticamente. Entonces queremos una manera cada vez que
empecemos, digamos el gestor de costes dos, crear este marcadores de misión completos y será la misma longitud que el nombre de la misión. Entonces va a ser parte de tu reto crear una matriz de toros. Por lo tanto, establezca la matriz de marcadores de costo completada como una nueva matriz y comience. Esta matriz debería tener el mismo tamaño que la matriz de misiones que hemos creado. Te voy a dar una pista. Si no quieres escuchar la mano,
pausa el video ahora mismo y ve a hacer el reto. Y menos posibilidades, necesitarás crear solo una sintaxis simple de igual nuevo booleano con la longitud del nombre de los marcadores de misión, o bien estos deberían ser los nombres de solicitud, mientras que este era un nombre antiguo. Así que pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Entonces como hemos dicho, y empezar, los marcadores de misión completados son iguales a la nueva negrita. El tamaño debe ser el costo. Nombres de marcadores, longitud de punto. Guarda eso. De vuelta en Unidad, ejecutamos nuestro código y deberíamos tener aquí, sí, allá vamos, cuatro elementos para cada una de las peticiones que tenemos. Entonces este fue un video muy sencillo. Simplemente estamos sentando las bases para
empezar a ir al siguiente nivel cada vez con nuestro sistema de misiones. Entonces espero que lo disfruten y los veré en el próximo video donde estaremos creando código que en realidad comprobará para estas moléculas.
74. Misis de marcado: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, sólo vamos a crear formas en las que podemos comprobar y desmarcar nuestros marcadores de misión. Entonces actualmente si ejecuto nuestro juego, si revisamos el, digamos el segundo y el último, si pulsamos la tecla Q, notarás que el último estaba apagado. El elemento tres, que sigue saltando, se encendió y obtenemos un falso. Pero si hacemos clic en el primero tenía dequeue de nuevo, notarás que nos hacemos realidad porque estamos comprobando si la derrota Dragon Quest ha sido completa. Entonces, no perdamos más tiempo. Solo necesitamos crear un par de métodos y empecemos. Ah, está bien, SOL, hora de revisar nuestras misiones para estar completas e incompletas. ¿ Cómo vamos a hacer esto? Bueno, déjame explicarte con un dibujo muy profesional. Entonces lo primero que vamos a hacer es que vamos a comprobar si hay un número de misiones. Por lo que queremos un camino o un método donde podamos darle una búsqueda por nombre de solicitudes. Encontrará la posición de esa búsqueda en nuestro registro de misiones. Y luego vamos a comprobar si esa solicitud está completa. Cuando terminemos de comprobar si esa solicitud está completa, podemos o bien completar el mercado. Todo lo podemos marcarlo incompleto. Sé que he estado a los 18 aquí, pero eso es todo lo que necesitamos saber con este pequeño dibujo fresco. Entonces empecemos a implementar esto en nuestro juego. Entonces lo primero que vamos a hacer es que vamos a crear un método aquí dentro que va a comprobar,
para realmente obtener un número de solicitud get. Entonces esto tomará una cuerda y va a ser una cuerda para que la búsqueda encuentre. ¿ Y cómo vamos a conseguir el número en el que reside la búsqueda? Esto va a ser parte de tu reto. Tu reto es conseguir el número de búsqueda. Por lo que necesitarás recorrer todos los nombres que tenemos. Tendrás que comprobar si uno de estos o uno de los costos es igual a la búsqueda que queremos encontrar. Tendrás que devolver el puesto. Y si no encontramos el costo que queremos, es necesario imprimir una advertencia. Y la forma en que imprime una advertencia es mediante el uso de la advertencia de debug dot log. Entonces con esa información, pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Entonces aquí vamos a crear un bucle for. Va a ser int I igual a 0. Si bien yo es menor que los nombres de la misión longitud de punto o sí, nombres longitud de punto. Y vamos a aumentar cada vez. Abriremos los corchetes y aquí vamos a comprobar si
los nombres de la misión en la posición I es igual a la búsqueda a encontrar, entonces vamos a regresar I. Y si en ningún momento regresamos en R, y algunos de ustedes podrían haber conseguido esto problema. Y aquí está todo el marcador Quest porque tiene un tipo de retorno de int, necesita
haber un retorno, y no todas las rutas de código devuelven un valor. Entonces, por ejemplo, digamos que recorremos todos los nombres de Quest y no
encontramos ninguno que tenga el mismo nombre que las solicitudes que necesitamos encontrar. No habrá retorno y ese es un gran no-no cuando se trata de devolver tipos usando métodos. Entonces lo que haremos es simplemente devolver 0 y por
eso tenemos la primera búsqueda como EMT y debug dot log warning search para encontrar los que no existen. Guarde eso. De acuerdo, entonces ahora este método debe bucles a través todos los nombres y comprueba si uno de ellos es igual al costo que queremos encontrar. A continuación, vamos a crear un método que verifique si la solicitud está completa. Entonces va a ser un cheque de bool público. En caso de completarse. Y va a tomar un argumento de cuerda. Esa va a ser también la búsqueda a comprobar. ¿ Y qué vamos a hacer aquí dentro? Bueno, primero que nada vamos a crear un entero. Entonces va a ser un fin, el número de costo a comprobar. Y vamos a utilizar el método recién creado, que es get, GET número de solicitud, y vamos a enviarle la búsqueda a comprobar. Por lo que ahora tenemos la posición de nuestra búsqueda que comprobar. Entonces vamos a crear una condición. Y si el número de búsqueda a comprobar es diferente a 0, porque si no tenemos devoluciones se obtendrá algún tipo de advertencia. Entonces aquí tenemos que asegurarnos de que sea diferente a 0. Vamos a devolver los marcadores de misión completos en la posición del número de marcadores de misión a comprobar. Y por último, si no conseguimos nada, volveremos falso. Entonces si sigues confundido sobre cómo funcionará este retorno, bueno, digamos que
empezamos, obtenemos el número usando el método que hemos creado aquí. Entonces ahora tenemos el número de la búsqueda que comprobar. Entonces nos aseguramos de que sea diferente a 0. Si lo es, entonces vamos a devolver algo si no lo es. Entonces qué pasa aquí cuando regresamos esto y aquí los marcadores de misión completan en la posición que queríamos encontrar. Entonces es cierto o falso. Cuando regresemos, eso es todo. El método deja de continuar. Si no lo hacemos, el método continuará y vamos a devolver falso. Entonces, vamos a guardar eso. Y finalmente, los dos métodos finales que son la búsqueda completa o donde
vamos a marcar la búsqueda como completa o podemos marcarla como incompleta. Entonces tal vez queremos dar vuelta atrás a la pregunta. A lo mejor de alguna manera reviertes la búsqueda por alguna razón. No estoy seguro de por qué, pero es bueno tener una de esas disponibles. Entonces, finalmente, vamos a tener dos métodos públicos que van a ser nulas. Y si quieres, puedes seguir adelante y crear estos por tu cuenta. No son demasiado duros. Marcar Completo. Y va a tener también una cuerda que va a ser búsqueda a marcar. Y vamos a terminar aquí, adelante y conseguir el número para comprobar. Y va a ser la búsqueda a marcar. Y vamos a los marcadores de misión completados en la posición
Quest, número de misión a comprobar. Y va a ser igual a verdad. Eso es porque lo estamos revisando como completo. Y vamos a crear un segundo método aquí dentro, que va a ser dos marcador de misión o mark Quest, lo
siento, pregunta incompleta. Mark. Todo aquí dentro es cierto excepto esto, que no debería ser falso. Está bien, genial. Por último, sé que es mucho código sin probar nada más que todos nosotros como vale la pena. No es muy complicado. Puedes volver a mirar a través de él. No hay nada. Entonces estamos encontrando el número. Estamos comprobando si está completo. Si lo es, lo marcaremos como completo o podemos marcarlo como incompleto. Eso es todo. Aquí no hay nada demasiado complicado. Por último, necesitamos crear una forma de comprobar uno de los métodos. Por lo que vamos a crear una condición if aquí dentro tomará un punto de entrada get key down. Y usaremos un código clave. ¿ Qué debemos usar? Creo Q por búsqueda. Y antes de que me olvide, cuando quieras construir tu juego, necesitas quitar todas estas entradas. Entonces vamos a imprimir, en
primer lugar, a comprobar si está completo. Entonces vamos a comprobar si ciertas misiones que quieres esta completa. Entonces, ¿qué costos queremos comprobar? Volvamos a Unity y comprobemos si hay seguimiento de derrotas. Entonces vamos a copiar eso. Lo vamos a pegar aquí, y eso es una referencia de cadena. Necesitas asegurarte de que sea correcto. Vamos a marcar la búsqueda como completa, y vamos a enviarla la otra. Entonces le vamos a mandar la cueva de entrada o aún así el gimnasio. Por lo que vamos a marcar estos todavía la búsqueda de salto como completa y vamos a marcar una de esas como incompleta o completa cuando
iniciemos nuestro juego y luego lo vamos a marcar como incompleta va a ser la última. Bueno, nos llevamos al monstruo vendido. Entonces Mark y completa, abre eso basado en, aquí. Guarde eso. Y sigamos adelante y ejecutemos nuestro juego y veamos cómo funciona, acuerdo, Solo asegurándonos de que correremos nuestra ganancia. Entonces vamos a revisar el último como completo, y vamos a presionar el botón Q. Ahí vamos. Se puede ver que en primer lugar, comprobamos si el dragón de la derrota está completo. Entonces no, no está completo. Aquí puedes ver que detenemos la integridad
o el monstruo vendido o llevamos monstruo soul quest estaba completa, pero cuando golpeamos el frío Q, lo
marcamos como incompleta mientras que el atasco de acero, que está justo encima de él, se marcó como completa. Ahora si tratamos de darle la vuelta al primero, deberíamos conseguir un verdadero aquí dentro, y esto debería estar apagado. Entonces le pegamos a la Q, obtenemos otro falso todavía porque deberíamos haber comprobado este, no el último. Por lo que ahora deberíamos conseguir un verdadero ojalá. Sí, ahí tienes. Tenemos que ser verdad, todo está funcionando. Estamos revisando nuestras misiones. Espero que lo disfrutes y te veré en el siguiente.
75. Objetos de búsqueda: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. Como puedes ver ahora tenemos un mapa y tenemos un salto. Pero mientras que el salto no hay mapa geminal, ¿cómo va a aparecer? Bueno, si ejecutamos nuestro juego, tenemos un botón especial que hará que aparezca el salto. Es la forma G, no está funcionando. ¿ Por qué no funciona? Ah, porque aún no se ha encendido el atasco. Entonces si lo encendemos y ahora le pegamos al G. Sí, ahí vamos. Acabas de ver aparecer la mermelada. Entonces, no perdamos más tiempo. Y vamos a crear algunos objetos de búsqueda. 0 caso. Entonces, ¿cómo vamos a utilizar los objetos y todas las misiones? ¿ Y cómo realmente vamos a implementar todo esto? Primero que nada, ver si tenemos algo que comprometer. Sí, ahí vamos. Necesitamos ¿qué hicimos? Agregamos la capacidad de revisar misiones, eso, y vamos a ver cómo va a funcionar todo. Entonces digamos que Jimmy está viajando por ahí. No tiene idea de dónde está cierto objeto. Pasa por el mismo lugar una, dos, tres veces. Pero finalmente, recoge una especie de mapa. Y cuando sí levanta un mapa, va al mismo lugar, encuentra un salto. Entonces lo que haremos, lo haremos, lo que haremos es crear una forma, crear objetos como el mapa que al recogerlos, por ejemplo, se marcarán ciertas misiones como completas. Y cuando esa búsqueda esté marcada como completa, entonces aparecerá el atasco, por ejemplo. De acuerdo, entonces espero que eso no fuera demasiado confuso. Empecemos. Entonces vamos a ante todo, abrir Unidad. Y en nuestra escena solo agregaremos un salto en algún lugar de aquí. Entonces voy a buscar algún tipo de mermelada. Sí, esta gema roja lo hará. Y los haremos privados como fondo. Entonces sube. Jugador. Ahí vamos. Entonces lo vamos a escalar hasta tres. Y sí, ahí vamos. Incluso podemos hacerlo un poco más grande. Hagámoslo cinco. Es una mermelada importante de encontrar. De acuerdo, entonces esta mermelada, como en las aguas, Digamos, está bien. No estoy seguro de por qué está en el agua, está bajo el agua. Y entonces vamos a seguir adelante y crear un guión aquí dentro, que va a ser el objeto de búsqueda. Entonces en los guiones, en las misiones, vamos a hacer clic con el botón derecho crear un script C-sharp va a ser el objeto de la búsqueda. Espera a que eso se compile y vamos a cambiar esto por el gimnasio rojo. Y le vamos a agregar el objeto de costo. Y vamos a abrirla y el guión. Entonces, ¿qué necesitamos? Y aquí, necesitamos tres variables. En primer lugar, necesitamos comprobar si el objeto se va a activar. Necesitamos una cuerda para la búsqueda que necesitamos revisar y un booleano para asegurarnos si queremos que esto aparezca o desaparezca cuando cogemos algo. Entonces, ¿por qué necesitamos desaparecer? Digamos, por ejemplo, una cueva está cerrada. Cuando nosotros, por ejemplo,
salvamos en la ciudad, queremos que esa cueva se abra o que alguna roca
desaparezca de frente a la cueva y luego podamos entrar a ella. Entonces vamos a crear un campo serializado. Va a ser un objeto de juego y el objeto a activar. Después crearemos otro campo serializado. Y va a ser de tipo string y va a ser la búsqueda a revisar o a completar. No estoy seguro de que puedas llamarlo como quieras, lo que sea que te haga cómodo. Y por último, necesitamos crear un campo serializado que lo encienda y apague. Por lo tanto, activa si completa, guarda eso. De acuerdo, ahora vamos a crear una instancia del gestor de costos. Entonces vamos a crear un gestor de misiones público estático. Y vamos a crear una instancia. Guarde eso, y luego iniciar instancia es igual a esto. Está bien, genial. Ahora de vuelta en nuestro objeto de misión, vamos a crear un método para comprobar la finalización. Nosotros solo eliminamos el inicio y actualizamos por ahora. Entonces vamos a crear un vacío público, comprobar la finalización, y no necesitamos ningún parámetro. Lo que vamos a hacer aquí es que vamos a crear una condición. Y aquí dentro vamos a acceder al gestor de misiones no hagas instancia. Y vamos a comprobar si está completo. Entonces la búsqueda para comprobar, que ya hemos establecido y aquí la cuerda. Y vamos a conseguir el objeto que queremos activar. Y nos pondremos activos. Activo, F completo. Entonces el objeto que queremos poner activo, ya sea una puerta de cueva, el atasco o cualquier otra cosa. Entonces vamos a crear y actualizar una ola para nosotros. Por lo que resulta que sí necesitamos actualización y una actualización para solo crear algún tipo de clave. Y si input dot get keydown, keycode. Y mermelada, mermelada es, caramba, espero que no se use y cualquier otro lugar, compruebe para su finalización. De acuerdo, entonces, ¿qué pasa ahora cuando golpeamos la tecla G? Vamos a ir a comprobar la finalización, comprobaremos si la solicitud está completa, entonces el objeto se establecerá en activo. Entonces volvamos a Unidad. Y aquí dentro, Veamos qué tenemos. El objeto que queremos activar será el régimen. Ahora como puedes ver, este no es el mejor lugar para poner este objeto. Vamos a revisar o activar completo. Lo estableceremos en un activo para que ya no aparezca y se solicite. Tenemos que revisar, vamos a ver In Game Manager qué tenemos. Todavía salta. Seguro, ¿por qué no? Entonces roba el gimnasio. Asegúrese de copiar y pegar correctamente. Ahora correremos nuestro software de juego caminando, estamos caminando, estamos caminando. Y si golpeamos la tecla G, no pasa nada. Eso es porque si miramos al gerente del juego, el acero, el atasco no está funcionando. Entonces si le damos a la Q, se encenderá. Y ahora si le pegamos a la
G, no, todavía no está funcionando. De acuerdo, Entonces el problema es que la gema roja ni siquiera está activa, por lo que realmente no podemos acceder al objeto de solicitud. Ese es todo el punto de ello. Entonces está inactivo. Tenemos que ponerlo para que actúe. Entonces haremos algo diferente. Agregaremos un dónde es irá a
los artículos o no a los artículos que quise decir en el ambiente sprites. A ver, tenemos un mapa aquí, en alguna parte. Ahí tienes, Hay un mapa. Vamos a editar aquí. En el mapa aquí, ¿dónde está? Suavizarlo. Eso le puso la capa de clasificación al jugador. Escalarlo hasta dos. Agregaremos un pequeño colisionador de caja a su alrededor y nos aseguraremos de que sea un gatillo. Y vamos a conseguir la mermelada roja. Vamos a copiar el componente, iremos al mapa. Agregaremos un componente que va a ser el objeto de costo, basaremos el componente ya que podemos pegarlo como num. De acuerdo, así que solo eliminaremos este componente. Ahí vas. Entonces ahora el objeto a activar es la mermelada roja. Todavía se activa el salto, completa. Y vamos a quitar esto de aquí. No lo necesitamos. Guarda eso. Ahora si ejecutamos nuestro juego, trataremos de encender el salto. Podemos probar porque en el gestor de juegos, el elemento no está completo. Si terminamos, ahí tienes, aparece el elemento. Ahora si golpeamos la tecla G, Ahí vamos. Entonces ahora tenemos la mermelada apareciendo. Muy bonito. Ahora hay un par de retoques aquí que puedes hacer. Por ejemplo, puedes encender un objeto cuando realmente recoges el mapa, por ejemplo, lo destruyes. Puedes añadirlo a tu inventario. Cuando lo tengas en tu inventario, puedes hacer cosas con él, pero esto es solo lo básico de cómo van a funcionar
nuestros objetos de búsqueda a medida que avanzamos. Entonces espero que hayas disfrutado de este sistema de objetos de búsqueda muy sencillo, y te veré en el siguiente.
76. Completar los misiones: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, como se puede ver, tenemos una gema oculta nudo. Entonces cuando ejecutamos nuestro juego, si recuerdas, el botón Q termina la búsqueda de gemas de acero. Entonces cuando tocamos el botón Q, como puedes ver, una gema desaparece, la otra aparece. Por lo que en este video, vamos a poder completar nuestras misiones de forma más dinámica utilizando el gestor de misiones. Entonces, no perdamos más tiempo. Y si estás disfrutando del curso, como siempre, asegúrate de dejar una reseña. De verdad me ayuda y sé lo que piensas del curso. Entonces, no perdamos más tiempo y otra vez, y empecemos. Ah, está bien, así que ahora necesitamos una forma de comprobar la finalización automática y dinámicamente. No queremos, cada vez que queremos comprobar si algo está completo para golpear una cierta clave. Para ello, necesitamos acceder al gestor de misiones. Por lo que en el gestor de solicitudes, queremos pasar por todos los objetos que
tenemos y comprobar para su finalización cada vez que marcamos como completos o incompletos. Entonces vamos a crear un nuevo método aquí dentro va a ser un vacío público. Por lo que la actualización del vacío público solicita objetos. Y con esto se asegurará de que todos estén apareciendo o desapareciendo. Entonces porque es así de fácil, te lo
voy a dar como un reto. Por lo tanto, encuentra todos los objetos de tipo búsqueda de objetos. Asegúrate de que haya más de un bucle a través de todos ellos. Comprueba si están completos o no. Llámalos en ambos métodos donde marcamos nuestras misiones. Así que pausa el video ahora mismo, vuelve a
leer el reto. Si no conseguiste lo que debiste hacer e ir a hacer el reto. Oh, bien, bienvenido de nuevo. Entonces aquí vamos a crear una matriz de objetos de solicitud de tipo. Y se le va a llamar los objetos de búsqueda. Y van a ser objetos finos de tipo. Entonces objetos, no objetos, objetos de tipo. Y va a ser de tipo, por
supuesto, objetos de búsqueda. Entonces como hemos dicho, vamos a comprobar si hay más de uno. Si no hay ninguno, entonces no necesitamos hacerlo y evitar cualquier error. Por lo que los objetos de búsqueda de puntos longitud mayor que uno, mayor que 0, quiero decir. Y aquí dentro vamos a recorrer todos ellos. Entonces para cada solicitud, objeto, solicitud objeto, simplemente manteniéndolo simple y objetos de búsqueda. Ahí vamos. Lo que haremos es acceder al objeto de solicitud. Y vamos a revisar la finalización. Eso es todo. Ahí vamos. Y por último, ¿qué tenemos que hacer? Llámalos y ambos métodos donde marcamos nuestros costos. Entonces, ¿dónde marcamos nuestras peticiones aquí? ¿ Cuál fue el método llamado costo de actualización? Por lo tanto actualizar objetos de solicitud y actualizar objetos de costo. De acuerdo, con eso hecho, finalmente, necesitamos la Q2, Vale, Así que a las marcas tan completas que paramos el GMP. Está bien, genial, Así que vamos a abrir. Vamos a duplicar este salto. Nosotros vamos a, whoops. ¿ Dónde está el segundo salto? Pongámoslo aquí arriba. Vamos a encenderlo. Y lo que vamos a hacer es añadir el,
vale, así que quitamos, vamos a añadir el objeto de búsqueda a ellos. Entonces en el guión y las misiones, vamos a elegirlas de nuevo. Objeto Quest. El objeto en cuestión es éste. Y para la segunda, es ésta. El, ¿dónde está? ¿ Dónde está el encargado del juego? ¿ Todavía gema? Pégala aquí. Y éste activará el completo mientras éste debería desactivarse o así debería desactivarse cuando se complete. Entonces vamos a salvar todo eso. Y cuando tocamos el botón Q, si recuerdas, ponemos activo al salto todavía. Entonces cuando corremos, ojalá esto ahora mismo, cuando lleguemos a la Q, ahí vamos. Uno de ellos se encendió y el otro se apagó. Entonces, ¿qué tan genial es eso? Ahora tenemos una forma de acceder a los objetos del juego y siempre asegurarnos de que funcionen automáticamente sin que tengamos que presionar alguna tecla extra después de finalizar solicitud. Entonces espero que lo disfruten y los veré en el siguiente video.
77. Entrar a la activación: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. Como recuerdan en el video anterior, hemos hecho que nuestro sistema de misiones sea un poco más dinámico. Ahora es el momento de llevar al siguiente nivel. Entonces cuando ejecutamos nuestro juego, como se puede ver, una Jam como muy bien, Podemos verlo, la otra está desaparecida en alguna parte. ¿ Dónde podría estar? Bueno, vamos a tratar de recoger este mapa Wo, como pueden ver, encontramos la segunda gema. ¿ Qué tan guay es eso? Entonces, no perdamos más tiempo y vayamos a automatizar nuestro sistema de misiones un poco más. De acuerdo, entonces ahora que podemos activar y desactivar o activar y desactivar objetos de juego basados en misiones dinámicamente, es hora de que activemos una búsqueda cuando entramos a un cierto espacio o zona o así sucesivamente. Entonces lo que haremos es que vamos a crear preguntas. Entonces vamos a seguir adelante en el mapa que acabamos de crear aquí, el colisionador de cajas que teníamos. Y lo vamos a eliminar. Ya vamos a saber qué podemos conservarlo si queremos. Y eliminaremos el objeto de solicitud por ahora, eliminaremos componente. Y ahí vamos. Y vamos a sumar junto a la zona de búsqueda del mapa. Por lo que este mapa es una zona de búsqueda y cuando entramos en él, hay cosas que cono para suceder. Entonces crea el script C-sharp, y lo llamaremos las misiones o esperaremos a que se compile. Y lo vamos a agregar al mapa. Y vamos a abrir la zona quiescente. Entonces, ¿qué estamos haciendo aquí? Estamos buscando dos tipos de activadores de costos. El primero es que si el jugador simplemente camina por el lugar de lucha, inmediatamente
iniciamos la búsqueda. Entonces, por ejemplo, digamos que caminamos por una zona determinada y aparecen los monstruos. El segundo tipo es que queremos hablar con un cierto MPC y conseguir la búsqueda de ellos, y luego iniciaremos la solicitud cuando podamos abastecerse. Por lo que estos son los dos tipos de costos que generalmente se encuentran en las ganancias. Por lo que necesitaremos un par de variables aquí. Por lo que el campo serializado es de tipo string y va a ser el costo de marcar que otro campo serializado, que va a ser de tipo bool y va a ser Mark como completo. Después crearemos otro campo serializado y esto
va a comprobar si su marca en Enter. Entonces va a ser bool, mark on y TR. Entonces digamos que tenemos una búsqueda donde la tenemos marca en Enter. Entonces cuando entramos, una cueva, la solicitud está completa, y luego los compañeros jama, por ejemplo, está fuera de la parte superior de mi cabeza. Y luego tendremos un booleano privado. Y eso significa que podemos marcar porque como dijimos, se
trata de un Trigger Enter. Ups, solo regaló el reto. Es decir, es un gatillo. Entonces de vuelta en nuestro código aquí dentro, ¿qué vamos a estar haciendo? Simplemente eliminemos el inicio y actualicemos. Digo que cada vez y cada vez resulta que sí los necesitamos. Entonces, empecemos. En primer lugar, ¿qué necesitamos? Necesitamos crear un método que marque la búsqueda. Por lo que es una búsqueda pública de marca de avance. Y aquí dentro vamos a comprobar si la marca como completa. Entonces vamos a acceder al gestor de misiones. Vamos a acceder a la instancia. Vamos a acceder a la búsqueda de marca como completa, como completa. Y luego le vamos a dar el signo de interrogación. Y si no está marcado como completo, entonces vamos a hacer lo mismo, pero en lugar de Mark como completo, vamos al mercado como incompleto. Por lo que esto podría surgir como no muy útil. ¿ Por qué estamos marcando ciertas misiones como incompletas? Pero más adelante cuando juegues el juego, notarás que algunas misiones sí necesitan ser revisadas como incompletas. Entonces, por ejemplo, digamos, ¿qué podemos decir? Por ejemplo, por alguna razón queremos salir de la zona, entonces eso la marca como incompleta. Queremos quitar cualquier tipo de saltos que estén ahí. O tal vez queremos si levantamos la espada equivocada o algo así, no
estoy seguro, pero podría ser útil. Es bueno tener esto como algún tipo de depuración y tu juego. El siguiente es crear un emprendedor entrar que chequee todo y te lo voy a mostrar como un reto. Por lo que tu reto es marcar una búsqueda. Entonces crea un emprendedor. Ingresa 2D, comprueba la etiqueta de jugador. Comprueba si estos no son como marca en completa. Por lo que algunas zonas necesitan estar marcadas en completas, como hemos dicho. Otros. O marca en Enter Amin y otros están marcados cuando iniciamos el diálogo. Si es simplemente marca la solicitud debe ser simplemente no simple. Y si no, esto no debería ser, no. Ahora, comprueba el booleano puede marcar, bueno eso es pausar el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Entonces, Trigger, Enter 2D, desplácese hacia abajo y vamos a revisar una vez más, creo que hemos hecho esto siete veces maybe.com tag player. Y aquí vamos a comprobar si su marca en Enter. Si lo es, entonces simplemente vamos a marcar la búsqueda, nuestro método y aquí. Y si no lo es, entonces sólo vamos a decir que puede marcar es igual a cierto. Guarda eso. Y finalmente una actualización que vamos a ver. Te he dicho que tenemos que estar siempre creando actualizaciones. A medida que me desplace hacia arriba y veo que de nuevo Quitar actualización. Entonces aquí solo usaremos la marca de lata. Entonces digamos que es algún tipo de palanca que necesitamos empujar. El amante sólo se puede interactuar con si estamos en cierta posición y cuando lo hacemos activados cuando estamos en la cuasi zona, eso significa que podemos marcar. Y si podemos marcar y presionamos el fuego, entonces el costo está completo y pasa algo a nuestro alrededor. Entonces si podemos marcar y punto de entrada ser abotonados hacia abajo, quiero usar el fuego 151. Entonces vamos a poder marcar igual a falso. Entonces no activamos el costo de nuevo o tenemos algún tipo de cosa rara que sucedió. Y entonces funcionará la marca Quest. Ahí vamos. Y hay una cosa más que debemos considerar y que es si queremos apagar la zona por completo, o en el caso de nuestro mapa, por ejemplo, destruido. Entonces cuando sí tenemos el mapa, dijimos que no necesitamos tenerlo en nuestro inventario. Podrías tener la nueva historia urbana, pero ¿y si quieres destruirla? Entonces vamos a crear una variable aquí dentro la cual va a ser una alberca pública y va a ser desactivada al marcar. Por lo que esto activará la zona al marcar. Y en la búsqueda de la marca, después de comprobar si marcamos la búsqueda completa o comentamos la búsqueda incompleta, el objeto del juego. Los puntos están activos serán lo contrario y y es lo contrario de desactivar al marcar. ¿ Por qué es lo contrario? Porque si sí queremos desactivar al marcar, nos ponemos en verdadero. Y si se establece en verdadero, entonces tenemos que desactivarlo. Eso significa que tenemos que poner activo en falso. Por eso esto se niega con un signo de exclamación. Guarda eso de nuevo en nuestro juego. ¿ Qué cliente queremos? Queremos la mermelada. Entonces todavía el JAM, copia eso, pegarlo en el mapa y marca completa de
Barker en Enter y el activador marcando guarde eso, ejecuta el juego. Echemos un vistazo a nuestras gemas aparecen, ver si desaparecen. Entonces ahora caminamos, caminamos, caminamos, y ahora cuando entramos al mapa, esta oportunidad debería desaparecer y ésta debería aparecer. Entonces ojalá, Sí, Ahí vamos. El mapa desaparece, el atasco desaparece, el GM final no aparece por alguna razón. ¿Por qué es eso? Ah, Kay, ¿por qué no apareció? Porque oh, el problema es que el atasco está inactivo, por lo que no estamos encontrando el objeto. Por lo que para eludir este problema, lo que haremos es en el atasco rojo o el primer revoltijo camión haga clic derecho, crearemos un objeto de juego vacío. Este será el objeto de búsqueda, lo
quitará del niño y luego le agregará el salto rojo. Entonces ahora el objeto de búsqueda está en la misma posición y lo estableceremos, solo lo mantendremos. Entonces ahora lo que pasa es que vamos a copiar este componente, pegar como nuevo, y vamos a quitar este componente remove. Y esto es lo que deberíamos estar haciendo a todos nuestros objetos de búsqueda. Entonces ahora cuando miremos a través de todos nuestros objetos, encontraremos este objeto de búsqueda, y luego encenderemos o haremos que aparezca el atasco rojo. Y por último, tenemos que asegurarnos de que sea la mermelada roja que queremos activar y aquí. Entonces si guardamos todo eso, si ahora corremos nuestra ganancia, debería aparecer
el salto que no ha estado apareciendo. Por lo que ahora caminamos al mapa y ahí vamos. Una desaparece, la otra aparece, y todo funciona perfectamente bien. Por lo que espero que estés disfrutando hasta ahora cómo funcionan las misiones. Estamos construyendo lentamente desde abajo y haciendo todo dinámicamente. La pieza final del rompecabezas está activando misiones cuando terminamos el diálogo con ciertos MPC. Entonces te veré ahí.
78. Activar los misiones después de el diálogo: Bienvenidos de nuevo a mis compañeros desarrolladores de juegos a un video totalmente nuevo. Y este video, cuando ejecutemos nuestro juego, notarás que tenemos un jam apareciendo, uno no está ahí. Entonces vamos al curandero. Hola, curandero. Hablamos un poco. Ahí vas. Entonces cuando terminamos la conversación, el gimnasio desaparece. Esta Gemma aparece y hemos activado un objeto de búsqueda después de que terminamos de hablar con un curandero. ¿ Qué tan guay es eso? Entonces, como pueden ver, hemos creado un sistema de costos dinámico realmente agradable. Entonces, no perdamos más tiempo. Y empecemos. Ah, está bien, Así que ahora es momento de marcar una búsqueda como completa después de que terminemos el diálogo con cierto personaje. Ahora puedes agregar otra opción donde puedes elegir si aceptas o no solicitudes. Te recomiendo que pruebes eso. Pero por ahora, sólo apegémonos a lo básico donde
sólo nos aseguramos de que tenemos una Quest al final. Entonces, ¿qué va a hacer que yo sólo te lleve por el plan realmente rápido. Vamos a agregar
al RequessHandler una forma de comprobar que al final de la conversación activamos algún tipo de búsqueda y luego en el controlador de diálogo activaremos realmente una pregunta determinada. De acuerdo, así que empecemos. En primer lugar, entremos a nuestro código y vayamos al controlador del diálogo. ¿ Dónde está el controlador del diálogo? No hay ningún controlador de diálogo que lo cerremos en alguna parte. Por lo que dialogas Contralor. Y abramos el controlador del diálogo. De acuerdo, ahí vamos. Entonces un par de variables aquí dentro, y todas van a ser privadas porque las estamos consiguiendo todas del manejador de diálogos, que está en uno de los MPC. Entonces digamos búsqueda de cadena privada para marcar que un booleano privado, que va a ser más de la búsqueda completa, Mark Complete y podría ser falsa si queremos marcar la pregunta incompleta, por ejemplo. Y luego otro booleano que es v debería marcar poniente. De acuerdo, entonces ahora necesitamos encontrar donde terminamos el diálogo y en realidad empezar a revisar y marcar las misiones. Por lo que terminamos el diálogo después de que todas las sentencias de diálogo hayan concluido. De acuerdo, entonces apagamos el colisionador de cajas. Desactivamos el cuadro de diálogo está abierto. Eso es para que el jugador empiece a caminar de nuevo. Y aquí dentro vamos a comprobar si deberíamos estar marcando un costo. Entonces si debemos marcar solicitud, entonces las solicitudes de marca corta se deben establecer de nuevo en falso. Al igual que lo hicimos anteriormente. Nos limitamos a detener la marca de lata. No queremos que continúe. Después comprobamos si queremos marcar la búsqueda completa, vamos a acceder a la instancia de punto de gestor de juegos, marca de
punto como completa. Y estamos llegando a, por supuesto, darle el gestor de juegos punto instancia 0. Por lo que necesitamos acudir al gestor de costos. Pensé que tener muchos gerentes realmente puede ser confuso. Por lo que instancia punto, obtener o marcar la búsqueda como completa. Y va a ser el costo para Mark. Y de lo contrario. Obviamente, podríamos haber hecho esto sin los corchetes, pero sin preocupaciones. Sólo vamos a copiar esto. Mark. Incompleto. Guarda eso. Está bien, genial. Entonces ahora lo que hacemos, comprobamos si debemos marcar una búsqueda. Si lo hacemos, lo desmarcamos. No queremos volver a pasar por esto. Si la marca está completa, comprobamos el signo de interrogación. De lo contrario lo comprobamos como incompleta. Está bien, genial. Ahora necesitaremos un método que se active al final. Entonces vamos a crear que importaba, que activa la Búsqueda al final. Y va a ser parte de tu reto. Tu reto es activar la Quest al final, pensé que ya he dicho esta frase tres veces. Crea un método, activa Quest al final que toma dos argumentos, un nombre de búsqueda de cadena y una marca booleana Completa y establece las variables que creamos. Entonces, ¿qué hará este método? Bueno, porque como hemos dicho, estaremos llamando, vamos a, dejaremos las misiones por completar
al PNC real que no queremos tratar en el controlador del diálogo. Nosotros lo queremos hacer en el manejador de diálogos. Por lo que esto nos permitirá hablar con el manejador del diálogo y establecer todas las variables que son privadas. Entonces con eso explicado, con el reto frente a ti, pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Entonces aquí, vamos a sumar. Método justo debajo de la actualización. Y aquí dentro vamos a crear un vacío público. Activar Quest al final. Y va a tomar dos argumentos. Dijimos que se va a llevar Quiz Name y Mark Boolean Completa. Por lo que el nombre de la misión y la Marca Booleana Completa. Y aquí lo que haremos es el signo de interrogación será el nombre de host. Por lo que fue Tamar es igual al nombre de host. El sello estaba completo, es igual a la marca completa. Entonces si éste es falso, más completo será falso. De acuerdo, entonces solo usamos el mismo, marca solicitud como completa. Vamos a copiar esto. Por lo que la nomenclatura variable es muy importante. Y por último, esto debe marcar búsqueda debe ser establecido en verdad. Porque si enviamos algo en el activar Quest at, y entonces por supuesto la debe marcar la búsqueda debe ser cierta. Está bien, genial. Ahora tenemos que ir al manejador del diálogo y hacer casi lo mismo. Entonces mientras que el manejador de diálogos, ahí tienes, Ese es el manejador de perros. Entonces vamos a crear tres campos serializados porque van depender de lo que elijamos para este personaje a Sam durante la conversación. Por lo que Boolean debe activar quest y otro campo serializado porque va a ser una cadena, que va a ser la búsqueda de Mark. Y por último, campo serializado con la marca booleana como completa. Completa. Ahí vamos. Y vamos a ir a actualizar cuando pasemos las sentencias. También vamos a comprobar si realmente queremos activar la búsqueda. Entonces si debemos activar una búsqueda, entonces vamos a acceder al controlador del diálogo. Dónde está Bien, Darla controlador punto instancia, punto, activar. Y toma en dos variables o dos argumentos, parámetros incluso puedes llamarlos por lo que el nombre de host y la marca booleana como completa. Entonces el nombre de host es el signo de interrogación, y también la marca como completa. Guarda eso de nuevo en nuestro juego. tanto que Sarah, te olvidaste de Sarah. Pero de nuevo, ella siempre tiene algún trabajo que hacer. Otra vez. Entonces, ¿dónde está el manejador del diálogo? Podemos cambiar las frases, pero, pero mantengámoslas como están ahora mismo. Entonces hagamos esto un poco más grande. Por lo que debe activar una búsqueda. Sí, deberías. Debe marcar como completo. Sí, ella debería. Nosotros, mientras que el directivo sigue siendo las gemas. Pásalo a Sarah. Sarah, la de Sarah. Está bien. Entonces el signo de interrogación es el acero, el atasco. Eso lo salvaremos, correremos el juego. Esperemos que esto funcione. Subamos con Sarah. Hola Sarah, soy curandera que Ananda taylor. Ahí vamos. Entonces como puedes ver, no me di cuenta, pero sí funcionó porque esta gema desapareció. Esta gema aparece y es sólo porque terminamos la conversación con nuestro sanador. Por lo que hemos terminado todo el sistema de costos. Hemos creado una dinámica muy agradable que se enciende y apaga después de conversaciones y después recogemos objetos. Entonces sólo tu imaginación es el límite aquí. Puedes usar esto para canción, tantas cosas. Por lo que espero que estén disfrutando de este curso. No te lo voy a recordar de nuevo porque lo he hecho hace un par de videos. Entonces ya sabes qué hacer una revisión de literatura. Me encantaría conocer tu opinión y te veré en la siguiente.
79. Sección 11: PlayerPrefs: Bienvenidos de nuevo mis compañeros desarrolladores de juegos a un video completamente nuevo donde hacemos algo muy dramático. En realidad casi destruimos todo el mapa con nuestras nuevas increíbles habilidades. Entonces, ¿cuando nosotros y si tuviéramos la carrera asquerosa por ello? Sí, eso se ha salvado. Sé que es un poco decepcionante, pero no perdamos más tiempo, y empecemos. O K. Así que ahora podemos hacer mucho,
mucho, muchas cosas en nuestro RPG recién creado. Pero como saben, cada RPG tiene una carga y un ahorro. Entonces, ¿cuál es el punto de construir tu personaje si ni siquiera
puedes guardar todo el progreso que has tenido con ese personaje. Por lo que ahorrar y cargar es una parte
muy, muy esencial de un juego de RPG, y lo haremos justamente. Entonces lo primero que tenemos que hacer es entender cómo funciona el ahorro y la carga en unidad, y eso es a través de la preferencia del jugador. Entonces, vamos a explicar qué es la preferencia del jugador. Déjame ponerme mi láser y lo que es Jugador de referencia o jugador prefs. Nos permite almacenar ciertos datos como cadenas, enteros, y flotadores. Por lo que estos son los únicos tres tipos que podemos almacenarlo en prefs de jugadores. Ahora podrías estar preguntando, Bueno, Michael, ¿cómo vamos a poder almacenar, digamos por ejemplo, artículos o marcadores de búsqueda, booleanos. ¿ Cómo vamos a hacer esto si sólo estamos confinados a cadenas, enteros, y flotadores. Bueno, no te preocupes por ese saltamontes más joven, porque vamos a encontrar formas muy creativas de resolver este tipo de problemas. Se puede acceder a estos datos entre sesiones de juego. Los datos se identifican mediante una clave de cadena. Y te daré solo un par de ejemplos solo para envolverte la cabeza alrededor y no te da mucho miedo. Por lo que acabamos de establecer un entero, le
damos una clave, igual que dijimos aquí, se identifica por una clave de tipo string. Y luego ponemos el valor un entero porque tenemos liquidación. ¿ Y entonces cómo cargamos ese jugador prefs? Bueno, usamos el get y el uso la misma clave de cadena que hemos agregado para este NFO aquí mismo. Entonces empecemos a implementar todo esto y parecerá mucho más fácil y mucho menos aterrador. Entonces vamos a abrir Visual Studio y vamos a ir con el gerente. Entonces abramos Visual Studio. Vayamos a las leyendas de la conquista 2D. Y bien, genial. Vamos a ir con el gestor de misiones porque lo primero que queremos es salvar nuestras, nuestras misiones. Entonces, ¿cómo vamos a salvar misiones de jugadores? Bueno, en primer lugar, necesitamos crear una clave, y esa clave será el nombre de los costos que queremos abordar. Y entonces el valor será un entero o un final que representará ya sea un falso. Eso significa que no hemos completado la búsqueda, o una verdadera, que significa que sí completamos la búsqueda, pero ¿cómo vamos a representar esta falsa y verdadera? Ahondemos profundamente y veamos cómo va eso. Entonces antes que nada, vamos a crear un método aquí. Y va a ser un vacío público. Guarda datos de búsqueda o eso, no
estoy seguro de cómo lo quieres llamar. Por lo tanto guardar los datos de solicitud. ¿ Qué vamos a hacer aquí dentro? Vamos a pasar por todas nuestras misiones. Consulta. Entonces vamos a primero de todo crear un bucle yendo de I igual a 0 mientras yo es menos que v. ¿Cómo se llamaba? Los nombres, creo que los nombres de la búsqueda longitud de punto. Estos son todos nuestros costos que tenemos. Y vamos a aumentar en uno por supuesto. Y aquí dentro vamos a comprobar si los marcadores de misiones terminaron en la posición i Entonces lo que haremos es llamar a los prefs del jugador. Y si no estás seguro de cómo usar prefs jugador, recomiendo que vayas a los perros de la unidad. Es un gran recurso. Te he mostrado múltiples veces y no creo volver a ir, son sólo para los prefs de jugador. Sí te recomiendo que siempre hagas tu propia investigación y no solo confíes en mí, tal vez estoy mintiendo. ¿ Quién sabe? Entonces vamos a establecer un entero. Y en el año vamos a crear primero una cadena, una clave, y luego un valor. Entonces, ¿qué hace la llave de cadena aquí? Va a ser el subrayado de marcador de búsqueda. Y luego lo concatenaremos con los nombres de las misiones. En el puesto I. ¿
Y cuál es el valor ahí? Bueno, se va a representar como cierto. Eso significa que lo pondremos como uno. Y luego más adelante cuando estemos cargando datos, usaremos eso para configurarlo en verdadero o falso. Entonces déjame explicarle de nuevo lo que hicimos aquí. Por lo que estamos recorriendo todas nuestras misiones. Estamos comprobando si esa búsqueda está completa. Si lo es, entonces llamamos a los prefs jugador. Nosotros le decimos que queremos establecer un entero. Y entonces tenemos esta llave aquí mismo. Por lo que para representar los marcadores de búsqueda, o puedes decir establecerlo como nombres de misiones. Pero porque estamos estableciendo los marcadores de búsqueda. Entonces el marcador de búsqueda, y queremos poder identificarlo individualmente para cada una de las misiones. Entonces para ello, agregamos un poco de individualidad concatenando el subrayado de marcador de solicitud con el nombre de la búsqueda. Por lo que tendrás una tabla donde tengas el guion de subrayado de marcador de búsqueda. Digamos por ejemplo, matar al demonio, saber que estamos en Lehman, matar al dragón. Por lo que marcador de búsqueda subrayado mató al dragón tiene un valor entero de uno. Y luego lo traduciremos de nuevo y crearemos a los booleanos, ya sea verdadero o falso. De acuerdo, entonces ahora que hemos establecido los verdaderos marcadores de búsqueda, es hora de establecer los falsos, los que no hemos completado. Y eso va a ser parte de tu reto. Tu reto es establecer el marcador de misiones usado prefs jugador para establecer las misiones que están incompletas. Mantenga la clave de cadena igual y solo debe cambiar el valor de la int. Entonces ya hemos, creo que lo cubrimos todo. Mantén la misma clave porque estamos trabajando, Llamémosla en la misma dimensión donde estamos guardando la búsqueda para que no necesites cambiar la clave, sólo cambiando el valor. Entonces pausa el video ahora mismo, y para ponerlo como falso equivale a 0, esto es una pista, no creo que lo haya leído. Pausa el video ahora mismo, y ve a hacer el reto. Bienvenido de nuevo. Entonces aquí vamos a decir eso más, si no está completo, entonces vamos a copiar esta línea. Lo pegaremos aquí. Mantendremos el mismo marcador de búsqueda subrayado nombre de la búsqueda, pero en lugar de uno ,
porque está incompleta, Va a ser 0. Y veremos más adelante y más en profundidad, cómo se traducirá este 10, un verdadero y falso. Y por último, necesitamos una clave para implementar esto. Entonces subiremos y actualizaremos. Y ya estamos usando la cola. Entonces si la entrada baja la tecla, keycode dot y usaremos algún botón que aún no hemos usado. Creo que yo, así que yo, y si hacemos clic en el I voy a depurar registro de puntos. Y aquí diremos que el que se ha salvado. Esto es solo para fines de depuración. Y luego vamos a guardar datos de búsqueda. ¿ Y cuál es el pro? Así que consigue botón, sustantivo, baja la llave. Eso. Está bien contigo. Sí, ahí vamos. Así que ahorra datos de costos, los datos de
depuración se han guardado. Volvamos a Unidad y se debe compilar ahora mismo. Entonces correremos nuestra ganancia. Vamos a golpear la tecla I, y ahí tienes. Se han guardado datos. Ahora bien, esto fue decepcionante y no pasó nada demasiado obvio. Pero en el siguiente video veremos cómo funciona todo eso cuando empecemos a cargar los datos. Entonces espero que hayas disfrutado el video y te veré en el siguiente.
80. Carga de datos: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. En este video, cuando ejecutamos el código, en realidad
tenemos algo dramático. Si miras las marcas de búsqueda aquí mismo, hemos completado un par de ellas. Por lo que queremos cargar nuestros datos. No queremos repasar todas estas misiones y hacerlas de nuevo. Entonces sólo vamos a cargar los datos. Y puedes ver aquí que se han cargado datos y estas misiones han sido completas. Entonces, no perdamos más tiempo y empecemos con la carga de nuestros datos. O K. Así que el tiempo empieza a cargarse. Hay un pequeño problema a la hora de cargar datos. Es decir, el problema es lo que pasa si ya hemos salvado todas nuestras misiones, vale, entonces tenemos ahora el strike de búsqueda, las
salvamos a todas. Pero luego durante la jugabilidad agregamos otra búsqueda. Entonces cuando vamos a cargarlo y buscamos TI, Ops, no hay ninguno y no podemos encontrarlo. Y esto nos dará un error y nos estaremos preguntando, bueno, qué demonios pasó. Por lo que necesitamos evitar esto antes que nada, comprobando si en realidad hay alguna de las preferencias del jugador configuradas usando esta cierta clave. Entonces a pesar de que te dije que no voy a entrar en perros de Unity, al parecer lo soy. Por lo que he abierto las acciones pref jugador y la documentación de Unity. Y aquí dentro puedes leer todo sobre, incluso
puedes ver dónde se guardó eso y puedes ir a revisar eso, ver cómo se almacenan los datos y así sucesivamente. Entonces si nos desplazamos por aquí, podemos ver que tenemos múltiples métodos estáticos. Y uno de ellos, se
puede ver que tenemos el get ND, conseguir, flotar la caja fuerte, la caja fuerte defectuosa, guardar, y, etcétera. Y entonces tenemos algo llamado el Husky. Y esto devuelve verdadero si existe la clave dada y jugador prefs de lo contrario devuelve false. Entonces esto nos permite, antes de ahondar en conseguir algo, esto nos permite comprobar si hay algo ahí de todos modos. Entonces vamos a usar este que estamos cargando como mecanismo de defensa contra errores. Empecemos. Entonces vamos a abrir nuestro gestor de misiones y vamos crear un método que va a ser los datos de solicitud de carga, datos carga de vacío
público. De acuerdo, entonces vamos a crear un bucle igual que lo hicimos arriba en los datos de ahorro de costos. Simplemente copiaré esta línea porque es exactamente la misma. Sí, lo vamos a pegar aquí. Ahí vamos. Y sólo quites uno de esos. ¿ Cuál es el problema? ¿ Hay algún problema? Entonces al parecer, cuando peguemos justo eso, así lo mantendremos ya que eso cerrará los corchetes aquí. Es necesario mantener el recuento de los corchetes. Entonces, ¿qué estamos haciendo aquí? ¿ Después de que pasemos por todos nuestros nombres? Vamos a crear un entero que va a representar el valor 2 SAT. Y va a ser igual a 0 porque necesitamos darle algún tipo de valor cuatro, seguimos uno. Y esta línea verde ardidamente significa una advertencia. Por lo que el valor establecido como asignado pero nunca se utiliza. Y porque las variables ocupan un poco de espacio de memoria en tu computadora. Por lo que Visual Studio siempre te recuerda que tienes una variable sin usar. Se puede eliminar para ahorrar algo de espacio. De todos modos, ese era un sitio. Ahora aquí dentro vamos a usar los prefs del jugador. Vamos a usar el Husky. Y vamos a usar la clave que hemos añadido aquí. Por lo que sólo copiaremos esta línea. Entonces como ya he dicho, primer lugar, tenemos la llave. Entonces hemos quitado esto aquí, y éste también. Ahí vamos. Por lo que esto comprobará por un rey. Y como he dicho, estas son las claves para nuestras misiones, representadas por una palabra marcador de búsqueda subrayado y luego concatenadas con el nombre de la búsqueda real en la posición I. Así que comprobamos, ¿tenemos una clave que tenga el nombre quest marcador de subrayado era el nombre de la búsqueda en la posición I. Si lo hacemos, entonces el valor a establecer será igual a los prefs del jugador, lo siento por ese jugador prefs dot get ENT. ¿ Y cómo obtenemos un entero? Bueno, usamos el marcador en el marcador y el nombre. Entonces ahí vamos. Eso es todo lo que tenemos que hacer. Sólo necesitamos darle este mercado de búsqueda. Está bien, genial. Entonces déjame repasar una vez más. De lo que estamos haciendo aquí, estamos recorriendo todos nuestros nombres. Acabamos de crear una variable aquí para guardar el valor a establecer. Hemos accedido a los prefs del jugador y hemos buscado al Husky y comprobado si tenemos una clave que tenga el nombre de la búsqueda en ella. Entonces establecemos el valor usando player prefs dot get k0, y luego usamos esta cadena justo aquí, que en realidad podemos, déjame mostrarte uno de los muchos usos de las variables. Entonces como puedes ver, estamos usando este marcador más nombre de host en la posición i 2 veces. Entonces una mejor manera de hacer esto como escribir una clave de cadena para usar, y va a ser igual a esto aquí mismo. Entonces tenemos eso, pegarlos aquí. Y la forma en que cortamos es usando Control X. Y aquí solo podemos usar la clave para usar. Y aquí también clave para usar. Ahí vamos. Y esto debería estar funcionando bien porque la clave a usar está en esta posición y asegurarse de que esté dentro del bucle. Por lo que siempre se actualiza. Está bien, genial. Ahora que hemos establecido el valor, así que cuando obtengamos el entero en la clave a usar, que es este de aquí,
comprobamos, obtenemos ya sea uno o un 0 en, en base a eso, vamos a establecer los marcadores como completos o incompleta, o la completa como verdadera o falsa, igual que estamos usando aquí. Muéstrate aquí. Entonces marcadores de misiones, ya sea completos o no completos, y eso va a ser parte de tu reto. Por lo que tu reto es enviar los marcadores de solicitud completos. Entonces en base al valor que obtuvimos, establece el booleano de los marcadores de búsqueda. Y sólo un pequeño recordatorio, 0 es falso, uno es cierto. Pausa el video ahora mismo, ve al reto. Vuelve. Entonces, después de haber establecido el valor aquí dentro, vamos a seguir adelante y crear una condición if. Y si el valor establecido es igual a 0 significa que tenemos un falso y podemos simplemente quitar estos corchetes. No los necesitamos porque sólo tenemos una línea porque estamos accediendo al mercado de búsqueda está completo en la posición yo y le estamos diciendo que es igual a falso. Y si no es así otra cosa. Y puedes, si quieres ser más específico, puedes usar else-if set de valores es igual a uno, acaso tenemos algo diferente a 1 o 0 por error, pero creo que puedes mantenerlo tal como está. Por lo que las moléculas de búsqueda completan en la posición I es igual a verdad. Guardemos eso. ¿ Cuál es el problema de la línea astucia? No, no hay problemas. Guarda eso de nuevo y la actualización usará algún tipo de clave. Entonces vamos a duplicar esta línea. Vamos a usar en lugar de usaré el 0. Por lo que i, o y los datos se han cargado. Y en lugar de datos guardados, vamos a cargar,
cargar datos de solicitud, guardar eso de nuevo en nuestra unidad. Ahora cuando ejecutamos el juego en abre, nos movemos. Veamos qué tipo de en el gestor de juegos, pongamos todo esto en realidad. Vamos a golpear el icky, así que los datos se han guardado. Ahora si los apagamos todos, golpeamos la tecla O. Muy vamos. ¿Qué tan guay es eso? En realidad almacenamos datos y luego los cargamos. ¿ Qué tan guay es eso? Y ni siquiera eso, tenemos algo mucho más fresco si volvemos a ejecutar el juego. Si miramos abajo aquí en el gestor de misiones, si golpeamos la tecla O, cómo no, en serio, tómese un momento para pensar en lo genial que es que realmente hayamos guardado datos. Y se puede ver claramente que no hicimos ninguna manipulación. Es simplemente beta que se ha guardado usando enteros. Y no sólo eso, hemos convertido enteros en booleanos por sólo un par de líneas de código. Entonces con eso hecho, sigamos adelante y escenificemos todo. Vamos a nombrar a esto gráficos de capas usados para cargar datos. Cargar datos para ser específicos, vamos a comprometer eso. Y veamos a los maestros. Whoa, whoa, mira cuánto ya hemos hecho. Hemos terminado de crear la tienda. Establecemos las bases para el sistema de búsqueda. Se agregó habilidad creada objetos de búsqueda afectados objetos de búsqueda. Es decir, mira lo mucho que ya hemos hecho y aún nos queda mucho por hacer. Por lo que espero que estén disfrutando. Espero que te estés divirtiendo y espero que estés emocionado como yo, solo por el bien de cargar alguna probabilidad usa datos. Entonces te veré en el siguiente video.
81. Configura y consigue la flotación: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, cuando ejecutamos el juego, cuando golpeamos la tecla O, sí, ahí vamos. Nos transportan a la posición que hemos guardado en nuestros prefs de jugadores. Entonces, no perdamos más tiempo, y empecemos. De acuerdo, entonces ahora estamos guardando datos de búsqueda. Lo siguiente que necesitamos para poder guardar como posición del jugador, como ya sabes, cuando caminas por tu juego, Posición guardada y así es tu escena buscará en guardar escenas más adelante, o simplemente no puedes hacerlo por tu cuenta. Es muy fácil. Acabas de poner una cuerda. Pero centrémonos en establecer flotadores y cargarlos ahora mismo, y sobre todo cuando se trata de la posición. Entonces si miramos aquí arriba y el, y cualquier objeto podemos elegir al jugador porque nos estamos centrando en el jugador. Se puede ver que tiene una posición sobre la x, y, y z.
Y todos esos necesitan ser guardados para poder cargar correctamente la posición. Entonces hagámoslo. Pero primero, necesitamos encontrar ¿dónde realmente queremos guardar estos datos? Y creo, y en realidad es el mejor lugar para guardar datos, como la posición está en el gestor de juegos. Entonces hagamos doble clic en el Game Manager, ábrelo y veamos qué podemos hacer aquí. Entonces vamos a crear un método llamado guardar datos. Entonces aquí abajo bajo la estadística de jugador, vamos a crear un vacío público, Guardar. Y vamos a guardar los datos para cada puesto. Por lo que vamos a llamar al jugador prefs dot set float. ¿ Y por qué estamos usando set float no end? Bueno, obviamente porque si miramos atrás en Unity y aquí se puede ver que la posición del jugador fue de 1.91.3. Por lo que necesitamos establecer el flotador. Y vamos a establecer el flotador y vamos a darle una clave única. Por lo que va a ser el guión bajo jugador, pausa para la posición y actos. Entonces estamos ahorrando en primer lugar, la x. ¿
Y cómo se debe llamar? O sea, ¿cuál es el valor que queremos enviarlo? Bueno, te daré este mini reto para intentarlo y pensarlo. Necesitaremos acceso al jugador. Necesitarás acceso a la instancia, necesitarás acceso a la transformación en ese jugador. Entonces la transformada en esa capa. Ahora, por fin, necesitamos el hacha en esa posición. Por lo que estamos accediendo al guión del jugador, a
la instancia, a la transformación del objeto del juego, la posición en la transformación y a la x en la posición. De acuerdo, genial, Así que ahora hemos establecido el flotador para la posición x del jugador, y ahora necesitamos emitirte un reto. Entonces a ver que viene esa. Entonces vamos a terminar de establecer la posición y y z.
Y recuerda que cada eje debe tener una clave única para ello. Vamos a crear un método para cargar los datos. ¿ Por qué estoy diciendo cuando vas a crear un método para cargar los datos,
obtendrás el flotador, lo
conseguirás de la posición del jugador, y los cargarás en el vector 3. Y solo te daré un indicio de cómo cargas en el vector 3. Si no quieres verlo, hazlo
tú mismo. Pausa el video ahora mismo, ve al reto. De no decir la transformación del jugador igual a nuevo vector 3, x, y, y z, o eso. Pausa el video ahora mismo y ve a hacer el Shalon O K de vuelta. Por lo que duplicamos esta línea usando Control D. Ya lo he explicado. No se preocupe. Las teclas rápidas pueden tomar tiempo para entender por qué. Y ahí tienes. Entonces ahora estamos guardando la posición del jugador en x, y, y z cada uno tiene una clave única, tal como les dije aquí, cada eje tiene una clave única, x, y, y z Ahora vamos a crear los datos de carga. Por lo que un vacío público carga datos. Y aquí dentro vamos a acceder al jugador. El jugador punto instancia punto posición, punto instancia punto transformación. Perdón. Entonces, en primer lugar, accedemos a la posición de punto transformado y va a ser igual a un nuevo vector 3. Y abriremos los corchetes. Por lo que aquí necesitamos acceder a los prefs del jugador y conseguir el flotador. Y debido a que estas van a ser líneas muy largas, vamos a golpear un Enter aquí, golpear de nuevo el Enter, y vamos a empezar a sumar todo aquí. Entonces lo primero, primero, las estadísticas de los jugadores, me refiero a los prefs del jugador, punto, get, float. Tenemos que proporcionarle la clave correcta. ¿ Qué es eso? Lo que pasó, lo siento por eso. Entonces necesitamos agregar una coma, y aquí dentro tendremos que agregar la clave. ¿ Y cuál es la clave? Es la posición del jugador x. Lo
pegaremos aquí. Entonces duplicaremos de nuevo esta línea, la duplicaremos de nuevo, y nos aseguraremos de invalidar término. Tenemos que quitar la última coma. Entonces y, z, y eso es todo entre eso. A hacer. Entonces vamos a salvar todo eso. Vamos a entrar en actualización y crear una clave para guardar y cargar, o dos claves para guardar toda esa descarga. Entonces y la actualización. Y aquí vamos a seguir adelante y comprobar
si la entrada y esa entrada otra vez. Baja la llave. Estoy tan emocionado que puedo presionar los botones correctos. Entonces keycode usará el yo porque ya estábamos haciendo eso. Y el encargado de la búsqueda y sabes qué? Porque ya lo estamos haciendo y el gestor de costos, déjame solo ir a copiar ambas líneas. Bájalos aquí. Y no recomiendo el verdadero promedio copiar y pegar código. Y vamos a cargar los datos. Entonces carga los datos de seguridad de datos usando R, usando todo guardar todo eso de nuevo en Unity que C no necesita compilar. De nuevo, vamos a caminar hasta las aguas aquí dentro. Entonces ahí vamos. Vamos a golpear la tecla I. Se han guardado datos, retrocede, date, die right, date. De acuerdo, Entonces de todos modos ahora queremos cargar los datos. Golpeamos la tecla O. Sí, ahí vamos. ¿ Qué tan guay es eso? Nuestro jugador se está transformando automáticamente al otro lado de la página del, de la sala de mapa de azulejos, como quieras llamarlo, solo usando teclas. Entonces espero que estés disfrutando, espero que estés cometiendo todos tus cambios. Algunos de ustedes habrían mirado esto. Oh, Dios mío, se me olvidó. No he estado cometiendo por como siete videos seguidos, pero este es un buen lugar para empezar. Entonces los veré en el próximo video donde estaremos guardando nuestras estadísticas de jugadores.
82. Guardar y cargar las estadísticas de jugadores: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, cuando ejecutamos nuestro juego, notamos dos cosas. Las estadísticas aquí para todo y el curandero aquí arriba, o puedes hacer un seguimiento de ello en la jerarquía. Cuando tuvimos el oaky, no sólo
somos los transportados a un lugar diferente, sino que también tenemos las estadísticas de que tenemos este acto de plata inició la defensa, el HP actual, el XP actual ha cambiado y el sanador ha desaparecido. Ella ya no está activa. Entonces, no perdamos más tiempo. Y empecemos con el ahorro y la carga de estadísticas de los jugadores. Jugador final quizás. Ah, vendió tiempo para ahorrar algunos prefs de jugador. ¿ Cómo vamos a hacer? El primer dato que queremos guardar? Por supuesto va a estar ahorrando todo se guarda. Método de datos es el, si el jugador o cualquier personaje con las estadísticas del jugador está realmente activo y la jerarquía. Entonces vamos a crear un bucle for. Y yo igual a 0, voy a través de las estadísticas del jugador longitud de punto. Y también lo vamos a aumentar en uno cada vez y las estadísticas de los jugadores están aquí. Entonces ahí lo tienes. Tenemos una serie de estadísticas de jugadores ya disponibles, por lo que no necesitamos acceder realmente a ella. En cualquier caso, vamos a comprobar si estadísticas
del jugador en la posición i dot GameObject punto activo en la jerarquía. Si lo es, entonces vamos a acceder a los prefs del jugador. Vamos a establecer el entero. ¿ Y qué tipo de llave necesitamos darle? Si bien debido a que tienen estadísticas de jugador, eso significa que son un subrayado de jugador, lo
vamos a concatenar con el nombre del jugador. Entonces eso va a ser, perdón por agregar eso. Eso van a ser las estadísticas de los jugadores en la posición I. Que el nombre del jugador. Ahí vamos. Entonces con el nombre del jugador. Y vamos a sumar por fin, subrayado activo. Por lo que esto diferenciará al jugador por, en primer lugar, usando get the player al final o en el medio el nombre del jugador. Y por último, lo ponemos como si está activo o no. Entonces aquí si está activo en la jerarquía, entonces es uno. Guarda eso. Y ya sabes qué hacer y aquí. Entonces si quieres, puedes seguir sin mí. Ahí vamos. 0. Guarda eso. Está bien, genial. Ahora las próximas cosas que queremos hacer aquí se guardan varias prefs de jugador que tenemos. Entonces, por ejemplo, queremos ahorrar, digamos el nivel. Por lo que el jugador prefs dot set nth porque los de Lovell son enteros. Y vamos a seguir adelante y usar el jugador y el nombre. Pégala aquí. Y luego concatenaremos con ella algo diferente que queremos representar los niveles. Entonces es nivel y van a ser las estadísticas de jugador en
la posición yo punteé a la izquierda. Entonces nivel de jugador. Genial. Ahora otra vez, vamos a duplicar esto. Es el jugador por nombre, y en lugar de nivel tenemos la XP actual. Entonces vamos a salvar el haz x actual. Y déjame, déjame hacer que esta XP actual capitalizada. Y ya sabes cuáles son las estadísticas de los jugadores. Vamos a salvarlos a todos. Entonces voy a usar la magia de la edición para llevarnos al lugar donde he terminado todo este trabajo. Entonces te veré en solo un rato. De acuerdo, bienvenido de nuevo. Por lo que espero que hayas hecho este mini reto. Como puedes ver, he establecido todos los enteros y también las cuerdas que puedas haber llegado a este punto y enfrentarte a este reto tú mismo. Entonces como puedes ver, tenemos todo en Max,
HP actual, HP maxima actual manera, defensa de
destreza, nombre de arma, nombre armadura y poder de arma, defensa de armaduras. Y he guardado el poder del arma y la defensa de la armadura. Incluso bajo. Eso debería ser obvio por el arma que hemos equipado. Pero porque quizá en algún momento quieras agregar, digamos power-ups a tu arma o tal vez, no sé,
ve a forjarla en alguna parte, ve a forjarla en alguna parte, aumenta el poder de las armas, la defensa del armisticio. Entonces también puedes ahorrar aquí. Está bien, genial. Ahora es el momento de cargar todos esos datos. Y de nuevo, vamos a tener una larga lista. Entonces lo que voy a hacer es que sólo voy a hacer el primer par de líneas y luego te daré la oportunidad de terminar por ti mismo. Entonces, en primer lugar, necesitamos crear un bucle. Entonces vamos a tomar esto aquí mismo, robarlo de la caja fuerte, pegarlo en los datos de carga. Y empecemos. A ver qué tenemos que hacer aquí. De acuerdo, Así que estamos revisando si el jugador prefs Get Int
y estamos usando, y usemos, vamos a copiar la clave aquí. Y lo pegaremos aquí. Entonces estamos obteniendo el entero. Si es igual a 0, eso significa que el jugador no está activo. Por lo que las estadísticas del jugador en la posición I, pensamiento juego objeto punto establecido activo a falso. De lo contrario. Lo estamos poniendo en verdad. De acuerdo, entonces ahora podemos encender y apagar al jugador si estaba encendido y apagado cuando salvamos el juego. Por lo que ahora es el momento de cargar las estadísticas de los jugadores. Entonces la forma en que vamos a hacer esto es que vamos a ir a las estadísticas del jugador, accederemos a la posición en i dot player. Digamos, Ahí vamos. Por lo que en primer lugar podemos quizá bajar el nombre. Por lo que nombre igual a prefs jugador. Por lo que jugador refs. Y vamos a conseguir una cuerda que salvemos al jugador. Además no guardamos el nombre, así que nivel de capa punto, consigue. Perdón por eso. Y yo estaba pensando en eso por lo que me tomó. Estaba pensando, ¿qué,
qué es lo que realmente lo necesitábamos? Nosotros guardamos el nombre. ¿ Por qué guardamos el nombre? Entonces tal vez podríamos guardar el nombre. ¿Por qué no? ¿ No? Una muy mala idea. Aquí vamos a pegar la llave, y eso es todo lo que tenemos que hacer. Entonces voy a volver a usar el poder de editar, pero antes de hacerlo, te
enseñaré este ingenioso truco. Entonces copiaremos todo eso, péguelo aquí. Y básicamente, todo lo que tenemos que hacer es conseguir esto, moverlo a la derecha en un signo igual o firmar y quitar estos y luego conseguir un int. No estoy seguro si eso es más rápido. Creo que es más rápido. Te veré en tan solo un poco o k Así que espero que no te lleve mucho tiempo. Me tomó, no lo sé. A lo mejor 30 segundos, un minuto, dos minutos, y madurar de todos modos, vamos a guardar todo eso y vamos a probar todo esto en Unity. Entonces volveremos a nuestro juego, y ahora sigamos adelante y ejecutemos nuestro juego. Vamos a mover a nuestro jugador a algún lugar. Nosotros le vamos a dar un poco de experiencia. Entonces 68, XP actual, mes actual, 33, estoy en HP actual 33, actual 10, 22, destreza, digamos que es 45, defensa 88. Yo quiero recordar estos números, pero espero que lo hagan. Y vamos a equipar par de armas. Entonces ve a Artículos, usa para Jimmy, usa para Sarah ese hacha de oro. Y si el arma está funcionando, estoy seguro de que el granjero está trabajando. Y vamos a ver. Entonces como se puede ver el arma equipada en el jugador para el sanador, vamos a ver qué vamos a hacer. Y para la curandera, la voy a apagar. Entonces voy a quitar al sanador en la jerarquía. Entonces probaremos si estamos ahorrando o no. Y por último, vamos a golpear el icky. Así que asegúrate de recordar estos números para que no lo hagamos barato. Creo que tenemos todo configurado para el jugador. Por lo que estos números son los que queremos. Número golpeará de nuevo I para guardar los datos. Volveremos atrás. Corriremos el juego. Por lo que ahora cuando
cargamos, podemos ver que no tenemos ningún arma equipada ni nombre de arma, ni en el jugador ni en los curanderos. Entonces cuando golpeamos la tecla O, ahí vamos, Nos transportan el arma equipada ya que la plata actúa con un poder de arma con 68 XP actual con todo configurado y la sanadora ha desaparecido, pero aún tiene el hacha de colon. Entonces como pueden ver, estamos salvando a los prefs del jugador. No obstante, hay un pequeño problema. Si te has dado cuenta de que el arma equipada, ¿dónde está? No podemos encontrarlo. Entonces, ¿cómo vamos a almacenar artículos mientras los artículos son de tipo, gestor de
artículos, son listas. ¿ Cómo vamos a salvarlos? Bueno, en el siguiente video, vamos a encontrar una forma muy inteligente de hacerlo. Entonces comete tus cambios, y te veré en el siguiente video.
83. Guardar las listas de elementos utilizando recursos de elementos: Whoa, whoa, whoa, whoa. Sé que este es un video largo, pero siempre que tengas recursos limitados, necesitas crear algo muy inteligente para cantar, eludir. Por lo que actualmente, cuando ejecutemos nuestro juego, verás que cuando golpeemos la tecla M, vamos a los artículos. No tenemos nada. Si cierro el menú, tenía el oaky. Esto significa que cargo los datos. Se puede ver que no hemos recogido ninguno de nuestros artículos. Pero cuando vamos al menú de artículos, se
puede ver que tenemos muchos artículos que podemos usar en Jimmy, en Sarah, y así sucesivamente. Entonces, no perdamos más tiempo y empecemos. De acuerdo, entonces ahora es el momento de guardar nuestro inventario. Por inventario, nos referimos a que necesitamos guardar nuestros artículos. ¿ Y cómo vamos a guardar nuestros artículos? Bueno, sólo tenemos el jugador prefs para el entero, la cuerda, y el flotador. ¿ Cómo vamos a ir a guardar artículos, que son objetos complejos que tienen muchas características y digamos diferentes tipos de variables dentro de ellos que necesitamos guardar. Lo que vamos a hacer. Vamos a ser muy inteligentes al respecto. Crearemos el script de activos de un ítem. Y estos artículos como guión se colocarán en el Game Manager y contendrá todos los elementos posibles que pudiéramos tener una hora de juego. Después crearemos un método que usando una cadena pase por estos activos de artículo, obtenga el artículo, y luego lo agregue al inventario cada vez que cargemos. No entendamos nada, tampoco I. Empecemos y veamos qué podemos hacer al respecto. Entonces lo primero, primero, crear el activo de un artículo. Por lo que vamos a entrar en los guiones, vamos a entrar en donde debemos ponerlo en el gestor de ítems de gestión de nivel. Eso lo puso aquí. Seguro, ¿por qué no? Haga clic derecho en crear script C-sharp. Artículos. Activos, pega Enter, espere a que se compile, y ahora se agregaron al gestor del juego. Y sigamos adelante. Aplicar sólo el ítem patrimonial para que podamos aplicar los cambios al prefabricado, solo los que queramos. No queremos aplicar el gestor de búsqueda también, ya
sabes, podemos aplicar todo eso,
pero en el otro, los gerentes, en los otros gerentes de juego tendrán los mismos costos. Puede que no queramos eso. Pero de todos modos, centrémonos en los intentos de tarea. Abrimos el gestor de activos. En primer lugar, vamos a hacer de este un patrón
singleton porque no queremos que se replique en ninguna parte. Entonces los elementos estáticos públicos, activo, instancia, y luego comienzan si la instancia es diferente a nula, y la instancia es diferente a ésta, entonces vamos a destruir este objeto. Y luego de lo contrario, solo estableceremos la instancia igual a ésta. De acuerdo, Entonces esto se asegurará de que solo tengamos un ítem, ácido, no tenemos muchos de ellos. Segundo, necesitamos los artículos. Por lo que vamos a crear un campo serializado de gestor de artículos de tipo. Va a ser una matriz porque tenemos múltiples artículos y se
va a llamar los artículos disponibles. Lábil. Guarda eso. Y vamos a crear el método va a quitar la actualización, estoy seguro que no la usaré, como decimos cada vez y luego la usamos. Vamos a crear un método que devuelva el gestor de ítems o el script Python. Y se va a llamar get item asset. Y va a tomar en una cuerda, que va a ser el ítem a obtener nombre. Entonces va a ser el artículo que queremos conseguir usando su nombre. Y vamos a usar para cada uno. Por lo que estaremos buceando a través de todos los artículos disponibles. Por lo que artículo y artículos disponibles. Y si atrapamos un
artículo, el nombre del artículo es igual al artículo a obtener, entonces vamos a devolver el artículo. Y si terminamos todo este bucle y no encontramos el artículo, como saben, necesitamos tener un retorno. Se va a devolver nulo. Guarda eso. Entonces sé que pasé por esto muy rápido, pero estas son cosas muy básicas. Entonces vamos a guardar eso. Volveremos a Unidad. Vamos a abrir los artículos disponibles y vamos a entrar en los artículos de Prefabs. Acude a gerente. Bloqueemos esto, seleccionemos todos estos, arrástrelos a los elementos y no a la lista de los elementos disponibles. Y ahí tienes. Ahorramos todo eso. Podemos incluso aplicar los cambios y ahora tenemos todos los rubros, activos disponibles. El siguiente es guardar realmente nuestros artículos y el gestor de juegos dot guardar datos. Entonces va a ser parte de tu reto. Y vamos a guardar nuestros artículos y les voy a dar el proceso paso a paso. Por lo que necesitarás establecer el recuento de nuestra lista de artículos usando el set end. Tendrás que recorrer todos los elementos y establecer el nombre de los artículos y el orden correcto. Por orden correcto, quiero decir, vamos a pasar por cuatro bucles. Vamos a establecer la cadena y la clave tiene que ser representada por la posición I. Así que en cada ítem. Y déjame explicarlo de una mejor manera. Vamos a tener cada ítem porque
ya tenemos el ítem y nombre para hacerlo único, necesitarás configurarlo o representarlo usando la posición ya que estamos pasando por el bucle for. Y por último, también necesitas ahorrar la cantidad del artículo que tenemos. No es necesario comprobar si es apilable, asegúrese de que la cantidad sea mayor que uno y establezca el entero. Entonces te he dado todo, pausa el video ahora mismo y ve a hacer el reto. Ah, está bien. Entonces, ¿cómo te pusiste con ese reto tan,
muy duro aquí dentro, vamos a seguir adelante y llamar a los prefs jugador. Y porque ya tenemos mucha codificación aquí, vamos a elegir todas las regañadas. Sí, todo, todo, todo. Vamos a terminar excepto por la posición en la que vamos a hacer clic derecho. Vamos a dar click en las acciones rápidas y refactorización, y vamos a extraer este método. Entonces ahí vamos. Ahora, esto se va a llamar su tener estadísticas de jugador guardar eso. Entonces como puedes ver ahora solo tenemos una línea para representar salvando todas las estadísticas de los jugadores. Podemos minimizar esto. Incluso podemos hacer esto por la posición. Así que haga clic con el botón derecho en acciones rápidas y refactorización, método de extracción ,
Guardar, posición del jugador, Entrar. Y luego como puedes ver, tenemos un método muy limpio y vamos a hacer muchas de estas rápidas acciones y refactorización de métodos más adelante, como verás, puedes hacerlo fácilmente en el gestor de menús. Por lo que te recomiendo que vayas sobre todo al jugador. Entonces como puedes ver, el jugador y la actualización hacen muchas cosas. Por lo que este es el lugar perfecto para empezar a refactorizarte en métodos. Por lo que tenemos una clara actualización. Nunca me gusta mantenerme actualizado así. Siempre me gusta refactorizar. Y siempre que tengas mucho código, Al igual que los datos guardados, ¿qué hace? Tienes que mirar a través de todo el código. Ahora podemos ver claramente los datos guardados, guarda la posición del jugador, guarda las estadísticas del jugador. Excelente. Volver a la tarea que nos ocupa. Vamos a entrar a los prefs del jugador. Vamos a poner el fin. Vamos a guardar el conteo de la lista. Por lo que va a ser el guión bajo número, subrayado ítems. Esta es la clave y el valor va a ser el inventario. Instancia de punto, punto get item, dot get items, list, dot count. Guarda eso. A continuación vamos a crear el bucle for. Y va a estar en el inventario Door instance dot cutlass, dot count. Y vamos a sumar uno cada vez. Y aquí en primer lugar vamos a conseguir el artículo y a una variable. Por lo que el artículo es de tipo item manager, el artículo en inventario. Y va a ser igual a la instancia de punto de inventario, dot get list en posición. Entonces ahora que tenemos una referencia al mismo,
lo siguiente que hay que hacer es establecer los prefs del jugador de la cadena usando, digamos que lo vamos a llamar ítems o guión bajo ítem. Y vamos a concatenar con la posición. Entonces ahora es único. Y por último, agregaremos un guión bajo y nos aseguraremos de que sabemos que es el ítem 1, 200, cualquiera que sea el nombre. Y el valor va a ser el artículo en inventario. Nombre del artículo. Ahí vamos. Entonces ahora tenemos el nombre del artículo. Y luego vamos a revisar porque necesitamos obtener la cantidad. Vamos a comprobar si el artículo en el inventario que es apilable. Si lo es, whoops, perdón, si lo es, entonces lo vamos a guardar usando el jugador prefs dot set y underscore concatenado con un I. Y espero no me estoy moviendo demasiado rápido. ¿ Me estoy moviendo demasiado rápido? Si lo estoy, por favor deténganme. Obviamente, no se puede. Pero si quieres, siempre puedes,
siempre referirte a la sección de preguntas y respuestas debajo de los videos. Entonces, ¿qué estamos ahorrando? Olvidé todos los conteos. Entonces el artículo el artículo en inventario, la cantidad que digo contar, FMI, cantidad, grilla. Entonces ahora estamos ahorrando, primero
estamos revisando el conteo. Estamos ahorrando el número de artículos que tenemos. Estamos recorriendo todos los artículos del inventario. Estamos guardando el ítem en cada posición y al elemento variable en inventario, estamos guardando este nombre de ese ítem usando set string con una clave única y aquí que se representa por nombre del ítem y yo, nuevo, por qué estamos guardando el nombre ? Debido a que los elementos activos, hemos creado un método que obtiene un activo de artículo usando el nombre. Por lo que esto se utilizará más adelante cuando carguemos. Y finalmente, ¿dónde estamos? De acuerdo, entonces, y finalmente estamos revisando si es apilable y estamos ahorrando la cantidad que tenemos para poder cargarla también. Ahora, el siguiente paso obvio es cargar también esos datos. Entonces hagamos esto un poco más limpio. Entonces vamos a refactorizar este método de extracción y se va a llamar carga posición del jugador. Todos estos están cargando las estadísticas de los jugadores. Así Extraer Método. Y ahora vamos a empezar, déjame solo minima, ¿de acuerdo? Y ahora puedes ver claramente ¿qué hacemos en datos de carga? Estamos cargando posición de jugador, cargando estadísticas de jugador. Está muy limpio. Es muy bonito. Carguemos nuestros artículos. ¿ Cómo vamos a hacer eso? Vamos a primero que nada, crear un bucle. Un bucle. Si lo deseas, puedes pausar el video ahora mismo e intentar cargar los artículos tú mismo. Sí lo recomiendo. Es muy importante que pruebes esto tú mismo. Así que pausa el video ahora mismo, ve al reto jugador prefs dot getInt. Y en realidad puedes empezar a hacer esto en cualquier momento que quieras. Entonces déjame solo obtener el número de artículos. Esto es muy crucial que no lo estropees. El clave. Pégala aquí, conteo de puntos. Y ni siquiera lo hice, Perdón por eso. Tenemos que asegurarnos de que yo sea menos que esto y lo estamos incrementando. Yo plus, plus. Está bien, genial. Ahora vamos a crear una variable que va a ser el nombre del elemento, y va a ser igual al jugador prefs, la cadena get. Y vamos a usar subrayado de ítem, copiar esto, pegarlo aquí, y allá vamos. Guarda eso. Entonces ahora que tenemos el nombre del ítem, vamos a crear el ítem. Por lo que el gestor de artículos va a ser el artículo a agregar. Va a ser igual a los ítems Assets instancia punto, dot get item asset usando el nombre del ítem. Guarda eso. Y también crearemos una variable para el importe del artículo y lo estableceremos en 0. 0. Genial, Entonces, ¿qué estamos haciendo aquí? Estamos cargando el jugador prefs, get int, el número de artículos. Lo estamos usando para recorrer el foreach. Y en cada posición estamos, primer lugar, obteniendo el nombre. Después de obtener el nombre, estamos consiguiendo el activo y luego estamos obteniendo la cantidad, y luego estamos revisando el jugador prefs dot tiene una clave que es cantidad V y esto debería haber sido cantidad no nombre. Perdón por eso. Vamos a copiar aquí el esquí, pegarlo aquí. Entonces si lo hace, entonces la cantidad del artículo es igual a la del jugador prefs. Esto es exactamente lo mismo excepto husky. Obtenemos el int. Y nos cerramos yo mismo, salvo eso. De acuerdo, entonces ahora también estamos recibiendo la cantidad a mí, separe estos y dijo esto. Y por último, por último, necesitamos sumar estos artículos al inventario. Por lo que el inventario, por ejemplo, pensó en los artículos. Y agregamos el artículo a agregar. Y no sólo eso, tenemos que comprobar también si el artículo a agregar como apilable y dónde está y el monto del artículo es mayor que uno, entonces vamos a conseguir que el artículo agregue monto en
dólares y va a ser igual al monto del artículo. Guarda eso. Entonces, ¿cuáles son los pasos finales después de haber creado el monto del artículo, comprobamos si realmente tiene una cantidad comprobando la clave. Si lo tiene, entonces vamos a establecer el monto del artículo al monto del artículo y vamos a entrar en el inventario, vamos a agregar el artículo a agregar. Vamos a comprobar si es apilable. Si lo es, entonces comprobaremos si tiene una cantidad mayor a uno. Si lo hace, entonces la cantidad de punto del artículo es igual a la cantidad del artículo. Entonces vamos a guardar eso y vamos a ver si algo de esto funciona y nuestra ganancia, algo anda mal. Y me está diciendo que me he perdido. ¿ Qué me perdí? De lo que esto es el jugador de ahorro. Oops, ¿Qué es esto? ¿ Debería idealmente, it, no debería borrarlo? Vamos a borrarlo y a ver qué pasa. No estoy seguro de qué fue esto. Esperemos. No, yo no lo creo. Déjame volver a comprobar. Entonces no tenemos pastel. Piensa No, no hay nada malo. Ojalá, si lo hay, entonces lo sabremos, guarde eso. Vuelve a Unidad. no pasa nada. Ejecutar nuestro juego, golpear el, ¿dónde está? Veamos qué artículos tenemos. Por lo que los artículos actualmente no tenemos nada. Entonces cuando recogemos estos artículos, Ahí vamos. Hemos recogido estos artículos. Artículos. Aquí vamos. Estos son nuestros artículos que vamos a pegarle yo, así se ha guardado. Excelente. Dejaremos de ejecutar el juego. Vamos a volver a ejecutar el juego. Verificamos los artículos. No tenemos nada. Salimos, golpeamos la tecla O. Ahí vamos. Por lo que ahora podemos ver que los datos se han cargado. No recogimos ningún artículo, ¿verdad? Todos los artículos están aquí. Yo soy artículos. ¿ Qué tan guay es eso? Entonces, a pesar de que no podemos guardar objetos usando prefs de jugadores, hemos creado una forma
muy, muy inteligente, eludiendo eso y realmente guardando nuestros artículos usando los artículos solicitados. ¿ Qué tan guay es eso? Estoy tan contenta de que eso funcionó. Es una forma increíble de guardar diferentes tipos de datos con mínimo. Y aunque se podría pensar que el jugador prefs es muy sencillo y limitado, pero como viste, podemos usarlo para muchas cosas. Entonces espero que hayan disfrutado de este video. Espero que estén disfrutando del curso. Espero que te guste un instructor. Si conoces el simulacro, por favor ve a revisar el curso. Podría significar mucho para mí. Me ayudaría mucho con Procreate, metiendo con el curso. La gente verá que es un buen rumbo. Entrará ahí. Se beneficiará de lo que estoy enseñando y eso me ayudará mucho. Muchísimas gracias. Te veré en el siguiente video. No olvides cometer tus cambios.
84. Sección 12: audio en la unidad: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. En este video, estamos ahondando en el audio. ¿ Qué, cómo agregar una fuente de audio? ¿ Qué es un oyente de audio? Los muchos, muchos música de fondo y efectos de sonido que hemos agregado. Entonces ahora cuando ejecutamos nuestro juego, sé que no se oye nada, pero si presionamos la tecla F, ahí vamos para poder escuchar el sonido de los botones descartados. Y a medida que avanzas hasta el final, asegúrate de ignorar todo bajo la música porque es demasiada información a la que realmente no necesitamos comprometer los cambios. Entonces, entonces quiero decir, podemos ignorarlo, pero hasta que llegues, no perdamos más tiempo y empecemos. Oh, bien, bienvenido de nuevo. Por lo que ahora queremos agregar un poco de sabor a nuestro juego, y lo hacemos agregando audio. Por lo que el audio es una parte muy central cuando se trata de juegos y sobre todo de RPGs. Entonces, ¿cómo vamos a agregar música? En primer lugar, necesitamos entender cuáles son todas sus necesidades para poder estar disponibles. Necesita una fuente. Por lo que necesitas algún tipo de ave, por ejemplo, una fuente. Y luego necesitarás un oyente, que a veces eres tú. Entonces donde todos los oyentes y las fuentes. En primer lugar, hablemos del oyente. Por lo que el oyente está en la cámara principal. Es posible que hayas notado que mientras cavas a través de los componentes de la cámara y
demás, notarás que tenemos un oyente de audio. Y si salimos de 2D, he recogido al botón aquí dentro, ya verás que tenemos al oyente de audio justo aquí en la cámara. Alejar zoom. Podemos hacer la cámara pero más grande. Desafortunadamente, podemos ver la extensión del oyente, pero el oyente está en la cámara y es donde escuchamos cualquier tipo de sonido o música que aparezca, por cierto, tal vez no te hayas dado cuenta, pero es muy guay para mirar nuestro juego 2D desde esta perspectiva y la forma en que los fondos terminan. Ahora es el momento de pensar en cómo vamos a sumar 0, 2. Por lo que te he proporcionado un par de canciones aquí. Ya verás que te he proporcionado un archivo para la música y un archivo para los efectos de sonido. Por lo que vamos a crear una nueva carpeta en los activos. Y se va a llamar el audio. Hagamos doble clic aquí y arrastremos la música y los efectos de sonido y aquí. Para que como sabes, puedes agregar tus propios efectos de sonido y música desde el arte del juego abierto. Todo lo que estoy usando aquí es de ahí. Por lo que te recomiendo que te tomes el tiempo, ve a buscar algo de música, algunos efectos de sonido, agrega tu propio lo que quieres que se sienta tu juego, que suene como también. qué tipo de objetos quieres interactuar que hacen un sonido. A lo mejor quieres hacer un sonido de bombeo. Cada vez que tu jugador choca con algo, es tu elección, ve a ello. Entonces podemos ver aquí que tenemos varias músicas para el camino, lo oscuro. Algunos de ellos serán por las peleas de jefe por el tema del pueblo. Y también tenemos efectos de sonido aquí. Entonces, por ejemplo, tenemos el objeto de descarte, el monstruo del hecho del fuego, y tal vez añadamos algunos más adelante a medida que avanzamos por el curso. Pero por ahora, agreguemos una fuente de audio. ¿ Cómo agregamos eso? Bueno, simplemente podemos arrastrar, por ejemplo, el tema del talento a la jerarquía. Y puedes notar aquí el conteo ahora como componente o tiene un componente que es la fuente de audio donde podemos cambiar el volumen, el tono, los ajustes de sonido 3D, aunque estamos en un juego 2D, no lo usaremos. Y también tenemos opciones aquí para silenciar efecto por paso, eludir los efectos del oyente, así sucesivamente y así sucesivamente. Y uno de ellos está encendido. Y los dos más importantes son el bucle donde cuando termina la canción, volvemos a bucear y vuelve a empezar. O podemos tocar en despierto, que reproducirá el sonido en cuanto se cargue la escena. Entonces si ahora ejecutamos nuestro juego, espero que se pueda escuchar a través del micrófono, pero hay sonido saliendo del juego y podemos ajustar el volumen y apagarlo. Ahora si encendemos la jugada despierto, ejecutamos el juego. Ahí vas. No hay sonido que escuchar. Ahora. Todo está funcionando. Se podría decir, de acuerdo, bueno, genial, en el pueblo, vamos a añadir el tema de la ciudad. Muy bien, pero hay un ligero problema. ¿ Cómo lo detenemos? Bueno, ¿vamos cada vez a la escena? Está bien. ¿Cómo funciona un jugador que está jugando nuestro juego, que no tiene acceso a los objetos en la jerarquía? Bueno, en ese caso necesitaremos un viejo tu manager. Entonces, eliminemos aquí el tema de la ciudad. Quitarlo. Y vamos a entrar en nuestros guiones. Vamos a crear, o podemos crear en realidad, y los gerentes crearán un nuevo script C-sharp, que va a ser el Audio Manager. Hit Enter también creará un objeto de juego vacío y la jerarquía, que va a ser el Audio Manager. Y podemos separarlo por espacio. Podemos restablecer la posición para estar a las 00. No tienes que hacer eso. A mí me gusta hacer eso. Y vamos a arrastrar el gestor de audio y al gestor de audio. Aquí también crearán dos objetos de juego vacíos, que van a ser la música y los efectos de sonido, o los efectos para abreviar. Y luego vamos a entrar a la carpeta Audio. Arrastraremos todos estos excepto los enlaces. De la forma en que los elegí a todos. Hice clic en el primero, mantuve el turno hacia abajo, hice clic en el último, y para quitar el enlace, mantenga presionada la tecla Control, haga clic en este. Eso es todo lo que necesitas hacer. Arrástralos a la jerarquía. Esto creará una fuente de audio para cada una de las músicas, las músicas, como quieras llamarlas y asegúrate de apagar
la obra de teatro despierto a menos que quieras que exploten los tambores auditivos. Entonces los arrastraremos a la música y haremos lo mismo por los efectos de sonido. No estoy seguro de qué es este escritorio. Bueno, arrástralos y aquí apagaremos el juego al despierto y los arrastraremos como niños del efecto de sonido. Por lo que ahora vamos a guardar esto cuando ejecutemos nuestro juego. Ahí vamos. No escuchamos nada a menos que enciendamos a uno de ellos, pero no queremos que suceda por su cuenta. Queremos que suceda a través de nuestro guión. Entonces sigamos adelante y abramos el guión y empecemos a codificar cómo k Entonces, ¿qué necesitamos? Y aquí, en primer lugar, necesitaremos una referencia a todos ellos. Por lo que crearemos dos campos serializados, crearemos una matriz de fuentes de audio para contener toda nuestra música o los artefactos y toda nuestra música. Por lo que todas estas serán fuentes de audio y lo llamaré para referencia extra, la música de fondo. Entonces de esta manera sabremos que no es solo música, es la música de fondo. A continuación, crearemos una instancia de este objeto. Entonces entraremos en público, estático, o tu manager, o tu instancia de manager. Y esta instancia va a ser igual a ésta. Guarda eso. Y no queremos destruir este objeto a carga. Posteriormente, quizá necesitemos asegurarnos de que se
trata de un patrón singleton porque no queremos duplicados, no tenemos muchos sonidos al mismo tiempo. Vamos por ahora, solo concéntrate en Crear. Y ahora vamos a crear un método que va a reproducir cierto efecto de sonido basado en un parámetro que lo enviemos, que va a ser un entero. Antes de que hagamos eso, entremos aquí. En el Audio Manager, deberíamos tener dos listas. Por lo que arrastraremos primero que nada, bloqueo. El Audio Manager arrastrará la música y la música de fondo. Y arrastraremos los efectos de sonido y a los efectos de sonido. Eso lo salvaremos. Y te voy a emitir un reto. estaba tan ansioso que coleccionan todos ahora, crear un método que tome un argumento entero en cuanto a qué canción debería tocar. Usa ese argumento para reproducir el efecto de sonido. Por supuesto, acceder a la matriz utilizando el parámetro al que hemos accedido. Y asegúrese de que la entrada nunca esté fuera de los límites de la matriz de efectos de sonido. Entonces digamos que actualmente tenemos nueve. Entonces ahí vamos. Tenemos nueve opciones. Entonces no queremos una entrada de, digamos 100 y no está disponible y efectos de sonido. Entonces esta será una solución o un problema al que necesitará encontrar una solución. Así que pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. ¿ Cómo conseguiste todo eso? Sé que no te he enseñado a tocar canciones, pero a estas alturas del curso, creo que ya tienes la capacidad de ir y convertirte en un solucionador de problemas por tu cuenta. Entonces espero que no te sientas engañado. Acabo de dejarte. Entonces vamos a crear un vacío público, jugar como efectos. Y va a tomar un parámetro entero para que el sonido se reproduzca. Y como no queremos que esté fuera de los límites, vamos a comprobar si el sonido a reproducir es menor que la longitud de punto de los hechos ASA. Entonces aquí vamos a acceder a la matriz de sufijos en el sonido de posición para reproducir esa reproducción. Entonces es bastante fácil. No creo que muchos de ustedes se tropezaran si estuviesen y no estuvieran seguros de cómo tocar un sonido, podrían
haber entrado en la documentación de Unity, cosa que espero que lo hicieran. Espero que no te limites a mirar la pantalla, pensamos que para mí hacer todo. Entonces con eso hecho, vamos a ahorrar eso. También necesitamos una actualización para probar esto. Entonces vamos a comprobar si conseguimos un punto de entrada, bajamos la clave, que bajamos la llave. Keycode, ¿qué debemos usar? Creo que la f no ha sido usada para nada. O tal vez la P de todos modos, vamos a mantenerla en F. Y vamos a tocar el efecto de sonido en posición. Veamos en qué posición queremos jugar. Entonces a partir de 0, si queremos tres desechar artículo, claro, vamos a desechar un artículo, guarde eso, volver a Unidad. Corre nuestro juego, dale la tecla F. Permítanme aumentar el sonido. A lo mejor se puede escuchar eso. Entonces como puedes ver, esta es la maleza descartan el sonido, pero al menos tenemos indicación de lo que está pasando. Entonces espero que hayan disfrutado de este video. Te recomiendo que antes de ir al siguiente,
Esa es nuestra prueba fuera todo. Trata de reproducir música en despierto, tratando de apagar la música y despierte. En el siguiente video, estaremos profundizando en cómo podemos tocar la música y detenerla y usar diferentes en diferentes escenas. Entonces te veré entonces.
85. Jugar: Oh, hey, bienvenidos de nuevo, mis compañeros desarrolladores de juegos en este video, cuando ejecutamos nuestro juego, si le damos la tecla F, Ahí tienes. Se puede escuchar la música tocando de fondo. Entonces en este video, aprenderemos a tocar música y lo más importante, cómo podemos evitar que varias canciones interfieran entre sí. Entonces, no perdamos más tiempo, y empecemos. De acuerdo, entonces ahora podemos tocar efectos de sonido. Es hora de tocar algo de música de fondo. Entonces abriremos nuestro guión aquí. Nos desplazaremos hacia abajo y vamos a crear un método para reproducir la música de fondo. Tan vacío, toca música de fondo. Y también va a tomar un parámetro que va a ser la música a tocar. ¿ Qué es esto? De acuerdo, ¿qué vamos a hacer aquí? Bueno, como lo hicimos en el efecto de sonido, vamos a comprobar si la música a reproducir es menor que la longitud de punto de la música de fondo. Y simplemente vamos a acceder a la música de fondo en la posición música para reproducir, adoptar el juego. De acuerdo, así que podrías estar pensando, bueno, genial, Vamos a seguir adelante y probar esto en nuestro juego. Pero necesitas darte cuenta de algo. ¿ Y si queremos tocar un sonido diferente? Bueno, ¿qué pasa? ¿ Entonces? Tendrás que sonar uno encima del otro. Uno tocando efectos de sonido. Esto no es un problema porque los efectos de sonido son muy cortos. Rara vez tienes un efecto de sonido muy largo. Entonces viste cómo cuando jugamos el botón de descarte, es de 1 segundo tiempo. Y si tenemos, por ejemplo, descartamos dos artículos al mismo tiempo. O digamos por ejemplo, no lo sabemos, recoge un artículo y desechado al mismo tiempo, no
será tan malo. Pero si empezamos a tocar una canción mientras que la primera no se ha detenido, Eso va a ser un gran problema. Entonces antes de que realmente
toquemos cualquier música, primero necesitamos detener la música. Y este es un método que el zapato va a crear. Entonces por favor, detén la música si sabes cuál fue la referencia. Si no creas un método que detenga toda la música, necesitarás investigar cómo puedes hacerlo en perros de Unity, he agregado esto porque no valoré en el último video y uso el o un loop foreach para recorrer toda la música y detenerlos a todos porque no estamos seguros cuál está jugando actualmente. Así que pausa el video ahora mismo y ve a crear ese método. Oh, bien, bienvenido de nuevo. Entonces aquí vamos a crear el, parar la música. Si hacemos click aquí, podemos generar el método de inmediato. Ahí vamos. ¿Qué tan guay es eso? Hemos ahorrado unos 23 segundos. Eso es genial. El tiempo es dinero. Entonces para cada fuente de audio, porque estamos pasando por una canción de fondo en la música. Y es de tipo fuente de audio. Y aquí dentro vamos a conseguir la canción y vamos a detenerla. Entonces eso es muy obvio. No queremos que juegue. Y ahora cada vez que queremos tocar una canción, cualquier canción, paramos la que ya está ahí, y luego seguimos adelante. Entonces vamos a probar esto. Oh, me refería aquí, si conseguimos una entrada y bajamos la llave de get o sabes qué? Sólo vamos a probarlo. Y aquí. Reproducir música de fondo. ¿ Cuál deberíamos jugar? El último a las cinco porque es el conteo y estamos en el pueblo, ¿no? Entonces cinco, guarden eso de nuevo en Unidad. Espere a que se compile, ejecute nuestro juego. ¿ Cuál era el botón? Fue yo dije el espero que salve el juego. ¿ Qué fue? F Está bien. Perdón. Entonces ahí vamos. Y cada vez que presione Enter, notarás que se detiene y vuelve a jugar. Probemos algo. Vamos a comentar esto y a ver qué pasa. Entonces ahora si ejecutamos nuestro juego, teníamos la llave F. Intentemos golpearlo de nuevo. Déjame bajar un poco el sonido. Vuelve a golpearlo. Bueno, porque es la misma canción, obviamente se está deteniendo. Entonces digamos que queremos tocar el, reproducir música de fondo en posición. Digamos que para guardar eso de nuevo en nuestro juego, ejecutar el juego, golpear el F. Así se puede escuchar que tenemos dos canciones encima de la otra. Por lo que una parada libre la música. Deberíamos escuchar sólo una sola música tocando, una sola canción tocando. No estoy seguro de si lo puedes oír. Ahí vamos. Sólo tenemos el avión Battle Music porque detenemos todos los demás sonidos. Por lo que ahora nos hemos protegido contra múltiples antecedentes a que la música esté tocando juntos. Por lo que espero que lo disfruten. Espero que estés cometiendo todos tus cambios y te veré en el siguiente video.
86. Reproducción de audio desde el código: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, vamos a estar agregando efectos de sonido. Vamos a añadir música transicional. Entonces ahora cuando recojamos artículos, va a ser muy débil. Espero que estés escuchando. Ahí vamos, para que podamos escuchar un sonido cuando cogemos un artículo. Si le damos la tecla M, vaya a los artículos. Si usamos uno de los artículos en Jimmy, Ahí vamos. Se puede escuchar. Si descartamos uno de los artículos. Ahí vamos, también lo puedes escuchar. Cerremos el menú y hemos tocado el botón de cerrar funciona a pesar de que es una línea de código. Cuando vayamos a la siguiente escena. Ahí vamos, se puede escuchar el cambio de música y a una melodía muy agradable que me recuerda cuáles son tres, si alguna vez has jugado ese juego, Es increíble. Entonces con eso dicho, no perdamos más tiempo y empecemos. De acuerdo, así que ahora es el momento de llevar nuestra reproducción de audio al siguiente nivel. No queremos tener que pulsar un botón para iniciar la reproducción de música. Queremos que suceda automáticamente en cada nivel. Pero la pregunta es, ¿dónde deberíamos decir elegir qué música tocar en el Lovell? Bueno, he pensado en que hay muchas formas de hacer esto, pero creo que una de las mejores maneras está en el menú principal del teatro controlador de cámara que es. Por lo que en el controlador de la cámara, cada nivel tiene su propio controlador de cámara, tal vez no en la tienda. Podemos cambiar eso. Ya veremos qué podemos hacer. Pero creo que este es un lugar perfecto para agregar. Entonces aquí vamos a crear un campo serializado, que va a ser un entero. Y va a ser la música para tocar. Entonces sabremos qué música necesitamos tocar, elegirá aquí dentro. Y también vamos a crear un booleano privado, que iba a comprobar si ya se está reproduciendo una música. Y esto es sólo por un paso extra de precaución. Entonces una actualización, vamos a comprobar si ya hay música en juego. Entonces vamos a poner en primer lugar, la música ya tocando a la verdad. ¿ Por qué estamos haciendo esto? Bueno, porque es una actualización. Estamos mirando a través de esto todos y cada uno de los marcos. Entonces lo que vamos a hacer es ponerlo en verdad, así que sólo lo ingresamos una vez. Y luego vamos a conseguir el gestor de audio. Por lo que ya tenemos una instancia de la misma. Entonces vamos a ir gestor de audio, instancia de punto, punto, reproducir música de fondo y va a ser la música a tocar. Ahí vamos. Entonces vamos a ahorrar eso. Vamos a prefabricar a nuestro gestor de audio. Entonces un prefabs, eso es Prefab el AudioManager. De acuerdo, genial, Así que vamos a guardar eso en la cámara virtual. Y aquí vamos a ver música. ¿ Deberíamos jugar? Si vamos al audio manager de música, ¿qué tenemos en el Audio Manager y abajo tema? Entonces es el 5, termina aquí. Cinco, guarde eso. Vayamos al siguiente nivel. ¿ Dónde está? Entonces escenas, montañas. Montañas. Montañas a sí, ahí vamos. Montañas para agregar aquí vamos a sumar vamos a ver, ¿tenemos la cámara virtual? Sí, tenemos. Y el lienzo ha sido actualizado. Por supuesto que tenemos el menú corto aquí que no se enciende. A lo mejor necesitamos agregar otras cosas como, por ejemplo, el gestor de juegos. Entonces, entremos a los Prefabs. Gestor de Juego. ¿ Dónde está? De acuerdo, gerente de audio. Ahí vamos. Por lo que ahora podemos tocar sonidos aquí. ¿ Y cuál debemos elegir? Tenemos, creo que he elegido uno, heroico camino de fallecimiento del lago. Incluso puedes escucharlo para que podamos hacer doble clic para abrirlo y escucharlo. Creo que es una canción realmente buena, me
recuerda a The Witcher 3. Es muy bonito. Incluso vibra a ella. Si quieres unas vibra a la música. No lo sé. Entonces, de todos modos, ¿ahí es donde está? Me distraje. Elemento tres. Desplácese hacia abajo elemento 3, guarde eso. Y no quieres sobrescribir esto, no
queremos anular las cámaras. Eso es todo. Eso es todo lo que tenemos que hacer. Porque si lo anulamos, entonces si aplicamos los cambios y aquí y la cámara lo anula, aplicamos la cámara. Todos los demás niveles tendrán la misma música para tocar. Y acabo de notar que el juego está mal, pero no queremos eso. Por lo tanto, ten eso en cuenta. No queremos tener la misma música tocando en cada nivel. Entonces volvamos al pueblo. Entonces, ¿dónde están las escenas? Abajo para guardar eso? Vamos a ejecutar el juego. El juego. Ahí vas. Se puede ver que se está tocando la música. Si caminamos a la siguiente. De acuerdo, entonces obviamente hay algo mal. Ya se está tocando algo de música en segundo plano. Entonces tendremos que arreglar eso. Y el problema aquí dentro es que cuando ejecutamos nuestro juego, No es que tengamos algo malo con el código. Es solo que cuando vayamos al siguiente nivel, no destruyas al viejo tu manager. Y sin embargo tenemos un viejo tu manager aquí. Entonces si recuerdas en el primer video de esta sección, dije que necesitamos hacer de esto un patrón de singleton. Entonces para hacer eso, vamos a abrir la capa. Por lo que el jugador era un patrón de singleton sólo va a copiar esto. Lo vamos a poner en el Audio Manager. Y esto debería arreglarlo todo porque nuestro código es correcto. Entonces volvemos atrás, ejecutamos nuestro juego. Caminamos hacia el borde. Sí, ahí vamos. Para que podamos ver que cambiamos nuestra música. Pero desafortunadamente aún no hemos solucionado el problema que nuestras cámaras, y aquí en la cámara virtual, se
puede ver que no sigue a nadie. ¿ Dónde está en la cámara virtual? Por lo que falta el seguimiento. No estamos siguiendo al jugador. Sé que es un poco frustrante. No hemos llegado a los bucles while, pero no te preocupes por ello. Arreglaremos esto en tiempo judío. Por lo que espero que hayas disfrutado. Antes de irnos, tenemos que hacer una cosa más, y eso es un reto. Así que reproduce efectos de sonido cuando descartamos el elemento, cuando recogemos un elemento, y si tienes otros sonidos que quieras agregar. Aplica también esos. Yo sólo voy a aplicar los dos primeros por ahora. Así que pausa el video ahora mismo y ve a hacer el reto. O K. Bienvenido de nuevo. Por lo que en AudioManager aquí puedes ver que tenemos el efecto de
sonido de reproducción y elegimos qué efecto de sonido queremos reproducir. Entonces si vamos a la,
el gestor de menús en algún lugar de aquí. Entonces Gestor de menús no, Como aquí, No. Al parecer tenemos que abrirla desde el Lienzo. Entonces Administrador de menús, hagamos doble clic en el script. No estoy seguro de si 12. Entonces cuando queremos usar algún tipo de botón o desechado. Entonces ahí vamos, descartamos artículo aquí cuando lo presionamos,
por lo que actualizamos el inventario y luego accedemos al Administrador de Audio. Por ejemplo, reproducir efecto de sonido. ¿ Y cuál deberíamos estar jugando? Si abrimos la unidad, vamos al gestor de audio. Es EU o el artículo anotado. Ahí vamos. Elemento tres. Ábrelo y aquí a las 3, guarde eso. Y ahora cuando usamos el artículo aquí dentro, o porque ya estamos descartando el artículo, no
estoy seguro de que esta sea la mejor idea para hacerlo aquí. Entonces la forma en que lo hemos configurado, estamos descartando el artículo. Entonces estamos tocando el efecto de sonido aquí. No es una muy buena idea, pero en todo caso, solo
tocaremos el efecto de sonido. Entonces vamos a copiar esto, pegarlo aquí. ¿ Qué hace el efecto de sonido para usar el elemento, su propio elemento 8. Y ahí vamos,
toca el elemento de efecto de sonido 8. Como pueden ver, hemos puesto aquí que esto se debe mover. Entonces por la forma en que estamos configurando nuestro viejo ahora tendrás que copiar esta línea aquí. Y lo vamos a pegar aquí. Por lo que no queremos escuchar el efecto de sonido del elemento de descarte. Eso lo ahorraremos. Si realmente quieres ahorrar algún código, realidad
podemos seguir adelante y rápida acción y refactorización y crear un método solo para estas dos líneas y luego llamar a estos métodos aquí. No creo que eso sea muy necesario, pero es, por supuesto una mejor práctica. Es muy feo y no muy profesional cuando realmente ves estas dos líneas aquí dentro. Pero no se preocupe por eso. Vamos a ahorrar, sólo
vamos a probar esto para nuestro juego. Vamos a ejecutar el código. Y podríamos haber agregado también tal vez por el artículo pick-up put han sido una buena idea. Recogamos un par de artículos. Para los artículos, haga clic en descartar. Ahí vamos. No estoy seguro si lo escucharon. Es un poco débil. Entonces ahora vamos a usar esto en Jimmy. Ahí vamos. Es un sonido muy pequeño, pero eso es todo lo que necesitas cuando se trata de efectos de sonido, sobre todo con la música y el fondo. Tan genial con eso hecho, me he detenido de nuevo. Añadamos también cuando recogemos un artículo. Entonces, ¿dónde manejamos la recogida del artículo? ¿ Está en el dónde está? ¿ Dónde está el gerente de TI? ¿Está aquí dentro? Sí. Ahí vamos. Entonces cuando agreguemos el elemento, vamos a reproducir el efecto de sonido. Entonces AudioManager, instancia de punto, punto, jugar como efectos. Y cuál recoge el artículo. Elemento cinco. Ahí vamos, Guarda eso. Y lo único que me preocupa es que cuando
recogemos un artículo se destruya y ojalá el hecho sonoro, tendremos tiempo para tocar. Entonces o podría no importar. Nosotros vamos a ejecutar nuestro juego. Para que puedas escuchar el sonido. Ahí vamos. Excelente. Entonces espero que estés disfrutando. Ojalá te divirtieras agregando música a nuestro juego. Se puede ver que agrega mucho más, digamos, campo dinámico al juego. Entonces si estás disfrutando del curso, si eres como yo como instructor, pesar de que a veces pueda un par de errores, no te preocupes. A mí me gusta guardarlos sólo para que entiendas el proceso de creación porque nadie es perfecto. Y aunque ya he preparado las anotaciones, así que ya he preparado este juego. Gran shocker. A veces cometo errores y quiero
que entiendas esto porque el proceso no es fácil. No sólo vas a hacerlo, no importa cuántas horas tengas, no importa cuántos años de experiencia, siempre
llegarás a algo y estarás como, ¿por qué esto no funciona? ¿ Cómo lo arreglo? Necesitarás usar mucho las depuraciones. Por lo que sólo quería ser lo más auténtico posible. Con eso dicho, si tienes el tiempo, déjame una reseña y te veré en el siguiente video.
87. Sección 13: UI del menú principal: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, estamos creando o colocando nuestro menú principal. Entonces, ¿te gusta? Creo que se ve un poco bien. Por lo que leyendas de conquista y gran fuente medieval roja, audaz. Y tenemos tres botones para seguir iniciando un nuevo juego y salir de nuestro juego. Por lo que obviamente no hacen nada, nada hace nada actualmente. Creo que se ve bien. A mí me gusta. Espero que te guste. Espero que encuentres recursos propios. Entonces, no perdamos más tiempo. Y empecemos. Ah, entonces es hora de un menú principal. Sigamos adelante en el archivo, creemos una nueva escena. Y vamos a asegurarnos de que sea 2D. Y aquí dentro lo vamos a guardar a las escenas. Y luego lo llamaremos el menú principal. Ahí vamos. Guarda eso. Ah, está bien. Ahora lo siguiente es que vamos a hacer clic derecho y añadir un lienzo. O podemos inmediatamente simplemente seguir adelante y agregar una imagen. Y esto agregará un lienzo automáticamente. Y vamos a ir al Canvas y asegurarnos de que el escalador de lona. Y aquí está el constante Nope físico, escala con tamaño de pantalla. Y vamos a asegurarnos de que sea 1920 por 1080. Hit enter. De acuerdo, ahí vamos. Ahora la imagen, ¿qué vamos a hacer con la imagen que va a entrar en los sprites? Vamos a hacer clic derecho y crear una nueva carpeta, llámalo las imágenes de fondo en Enter. Y te he proporcionado un par de imágenes ahora sí recomiendo ese zapato. Ve a buscar los tuyos porque los míos están en ese bien. Como he dicho Siempre, sigo diciéndote que no hagas lo mismo que yo. Ve a buscar la tuya propia. Y voy a dar click en la imagen. Y vamos a ver, Vamos a arrastrar este. Y vamos a establecer el tamaño nativo. Y movamos la imagen justo hacia abajo al centro. Entonces ahí tienes. Creo que esta es una buena imagen. A lo mejor, a lo mejor no, a lo mejor lo odias. Eso está bien. Todos obtuvieron su opinión. Entonces vamos a seguir adelante y sumar un par de cosas aquí. Ahora bien, ¿qué tiene un menú principal? Bueno, principalmente tiene tres cosas. En primer lugar, tiene el continue, el nuevo juego, El quit, y las opciones. Entonces sigamos adelante y hagamos todo eso. Entonces lo primero es que vamos a ver qué agregar aquí ahora, opciones, no estoy seguro de que sea importante tener opciones. Simplemente añadiremos unas opciones virtuales solo para ver cómo
podemos pasar de una pantalla a la siguiente y así sucesivamente. Así que sigamos adelante y agreguemos un par de botones aquí. Entonces iremos a ti, voy a añadir un botón. Entonces este botón, claro, vamos a ir a nuestros sprites. Y estamos bien, entonces materiales, elementos de
interfaz de usuario, vamos a agregar esto a nuestro botón Sprite. Y vamos a quitar el texto, añadir un texto Mesh Pro. Y claro que va a ser el medieval y va a ser Continuar. Ahí vamos, continuamos. Y hagamos ese botón un poco más grande. Entonces vamos a hacer que este botón sea un poco más grande. Vamos a saber cuál es ese trasfondo realmente no se ve bien. Me acabo de dar cuenta. Bueno, lo cambiaremos más adelante. Por lo que este va a ser el botón Continuar y en el texto Mesh Pro lo van a hacer completamente negro. Ahí vamos. Vamos a hacerlo audaz. Vamos a ponerlo en la posición correcta sólo un poquito. Y pongámoslo en el medio. Aumenta nuevamente el tamaño. Continuar. Ahí vamos. Entonces continúa. Y no creo que agreguemos nada más. Sólo necesitaremos un segundo botón. Y creo que este botón es en realidad demasiado grande tal vez. Otra vez. Entonces ésta será la salida. Este será el, por lo que el botón Salir. Salida. Nuevo juego. Y continuamos. De acuerdo, entonces supongo que eso es más o menos todo lo que necesitamos crear. Podemos crear opciones si quieres agregar. Y voy a cambiar este trasfondo porque realmente no me gustó. Entonces fondo, vamos a añadir el frío. Ah, eso se ve mucho mejor. Está bien, genial. Por lo que la salida, el continuar Ultra para establecer que podemos usar un diseño de fondo o un diseño de cuadrícula para asegurarnos de que todos ellos estén perfectamente alineados. No creo que lo necesitemos por ahora. Y vamos a seguir adelante y añadir un texto Protón Mesh aquí, uno grande. Y este va a ser el título de ganancia. Título y lo vamos a llamar las leyendas de la conquista. Conquista lo hará audaz, hará en el medio, en el medio. Y completamente negro era el color. De acuerdo, ahí vamos, el color. Adelante y sumamos un poco de color y asegurémonos de que su fiesta medieval. No estoy seguro de cómo se llama así. Pero de todos modos, mientras que esto está bien, así que allá vamos. Va a ser por esto grande. A lo mejor deberíamos cambiar el color. Ya veremos en solo un poco. Aumentemos el tamaño. Entonces leyendas de conquista, y veamos qué podemos hacer con esto. Ah, sí, Así que creo que el rojo es un buen color. Ese es el blanco. De lo que también no se trata de color, pero creo que leí completamente tanta mantequilla. Y no, creo que vamos a ampliarlo aún más y hacerlo aún más grande. Sí, hasta podemos llamarlo leyendas de conquista, esa es la segunda que hemos creado. Pero de todos modos, leyendas de conquista, Eso es suficiente. Creo que este fondo se adapta a la sensación del juego. Depende de la sensación del juego. Entonces como tu juego un poco oscuro, creo que el mío será porque tenemos un demonio vagando por ahí. Si quieres que tu juego se sienta más. Digamos pacífica. Puedes usar la pieza. Si es más una aventura, puedes usar la pieza. Y también puedes encontrar tus propios fondos, arte de juego
abierto o cualquier tipo de fondo al asunto. Está bien, vamos a ver. Podemos agregar un montón de cosas aquí, tal vez el calco base, podemos cambiarlo. A ver si lo hacemos blanco. Afecta algo nuestro En realidad se ve peor. Vamos a mantenerlo en eso. Eso lo ahorraremos. Genial. Entonces ahora tenemos tres botones y ahora es el momento de un pequeño reto. Y ese reto es establecer tu propio menú principal. Configura tu propio menú principal usando tu fuente y fondo, etcétera. Y diviértete con él. Tómate tu tiempo. Por lo que el menú principal es lo primero es que un jugador ve que necesitas hacer un impacto en esta posición. Por lo que te recomiendo que recuerdes un par de juegos que has tenido, miré a través de ellos, veas cómo operan y qué puedes hacer. Así que pausa el video ahora mismo y ve a hacer el reto, comete tus cambios, y te veré en el siguiente video.
88. Gerente de menú principal: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, en realidad hemos agregado funcionalidades a nuestro botón, pero como puedes ver, eliminamos el botón Continuar. Ya no necesitamos más. Entonces cuando ejecutamos nuestro juego, Ahí tienes. Bueno, oh Dios mío, ha aparecido
un botón Continuar. Bueno, eso es porque en realidad tenemos algún tipo de llaves de hecho prefs de jugadores que podemos cargar nuestro juego. Entonces cuando golpeamos el continuar, no hace nada. ganancia líquida nos dice que acabamos de hacerlo. Si tuviéramos el nuevo juego, comenzamos un nuevo juego. ¿ Qué tan conveniente? Entonces, no perdamos más tiempo y empecemos. De acuerdo, así que ahora es el momento de dar funcionalidades a nuestros botones e insensibilidad al alquitrán hoy. Entonces solo te voy a dar el reto. Crear un manuscrito principal. Por lo tanto, crea el script del menú principal y adjúntalo al lienzo del menú principal. Crea una variable que haga un seguimiento del botón Continuar. Te diré por qué en solo un poco. Y uno para la nueva escena de juego. Porque ya sabes, cuando iniciamos un nuevo juego, necesitamos ir a alguna nueva escena de juego. Y luego tendremos que crear dos métodos para el nuevo botón de juego y el botón Salir. Por último, nuevo juego debería llevarnos a la nueva
GameEscene y las salidas simplemente deberían imprimir algo. Así que pausa el video ahora mismo y ve a hacer el reto. Oh, bien, vuelve. ¿ Cómo conseguiste todo eso? Entonces en nuestros guiones entraremos en scripts entraremos en donde debemos guardar TI? Gerentes. Sí, claro por qué no En los gerentes se hará clic derecho, crear un script C-sharp y se le va a llamar el menú principal. Hit Enter. Espere a que compile esto como el nuevo botón de juego. Entonces nuevo botón de juego, o mudarnos aquí, vamos al Canvas. Llamemos a esto el lienzo de menú principal. Y agregaremos el menú principal al menú principal Lienzo. Y vamos a, de acuerdo, Así que hemos agregado el mal, hemos agregado el gestor de menús, Remove Component, menú principal. Está bien, genial. Cerremos todo esto y abramos a nuestros hombres, hombres. Entonces aquí, ¿qué vamos a hacer? Bueno, dijimos que necesitamos referencias. El primero es un campo serializado de tipo string, y va a ser la nueva escena del juego a la que vamos a ir. Y luego crearemos un campo nother, serializado el cual va a ser de tipo objeto de juego y se va a hacer referencia al botón Continuar. ¿ Por qué estamos haciendo esto? Bueno, obviamente, porque si nunca hemos creado o si nunca hemos jugado este juego y no podemos continuar, entonces obviamente no deberíamos ver el botón Continuar. Sólo deberíamos ver el nuevo juego y la salida. Por lo que el siguiente paso es seguir adelante y crear un método para el nuevo botón de juego. Por lo que público vacío nuevo botón de juego. Y aquí vamos a acceder al encargado de escena. Pero antes de hacer eso, tendremos que acceder a la gestión de escena. O antes de que incluso hagamos eso, necesitamos acceder a motor Unity luego a la gestión de escena, muy buena. Encargado de escena punto una escena de carga y simplemente pasaremos ahí la nueva escena de juego que queremos. Ahí vamos. Y luego tendremos que crear un método para el botón de salida. Tan público vacío Botón de salida. Y entonces aquí simplemente imprimirá en el registro de depuración saber, solo log error. Acabamos de dejar el juego. Por lo que acabamos
de dejar el juego con un par de signos de exclamación solo para asegurarnos de que esto sea algo raro. De acuerdo, entonces lo siguiente que tenemos que hacer es asegurarnos de que
apagamos el botón Continuar siempre que no sea necesario. Entonces y empezar en cuanto abramos el menú principal, vamos a comprobar si tenemos alguna llave en los prefs del jugador. Entonces si lo hacemos, por ejemplo, tenemos la posición del jugador en x, eso significa que previamente hemos guardado nuestro juego. Por lo que eso significa que se puede activar el botón Continuar. Entonces en inicio, en cuanto empecemos, qué acceso el jugador prefs comprobará si tenemos o tiene alguna llave, y entraremos al gestor de juegos. Ahí vamos. Cuando guardamos las estadísticas de los jugadores, cuáles debemos elegir? Creo que la mejor opción para elegir es aquí, el puesto. Entonces es la copia más fácil que la peguemos aquí. Entonces si tiene bueno, esto vuelve verdadero. Eso significa que el botón Continuar que dijo activo como verdadero. De lo contrario, si no tenemos nada, entonces el botón Continuar, activo falso. Ahora no hay forma de probar esto porque ya hemos guardado varias veces. ¿ Cómo podemos asegurarnos de que realmente podemos apagar el botón Continuar? Entonces lo vamos a apagar y luego veremos si realmente funciona. Entonces en el lienzo del menú principal tenemos el botón Continuar, que es éste, y la nueva escena del juego, que va a ser el pueblo, Digamos que el pueblo para copiar eso. Pega aquí, guarda eso, vale, y antes de que hagamos eso también, tenemos que ir al botón. Por lo que el botón Continuar por ahora no hace nada que vamos a agregar. Entonces recuerda cuántas veces me olvidé de hacer eso previamente. Ahora nos estamos moviendo. Para que veas, siempre podemos aprender de nuestros errores y nuevo juego. Por la salida. Vamos a añadir un evento onclick en el menú principal. Vaya al botón de salida del menú principal, guarde eso, ejecute el juego. Ahí vamos. Tenemos el botón Continuar, pesar de que lo apagamos, si hacemos clic en la salida, se
puede ver aquí mismo la consola imprime con solo con el juego continuar, no hace nada. Pero si hacemos click en el nuevo juego y ahí tienes, ¿Qué genial es eso? Entonces todo está funcionando perfectamente bien. Sólo hay una cosa que es la carga. En el siguiente video, en realidad comenzaremos a cargar nuestro juego creando una escena separada para la carga, que va a ser muy emocionante. Entonces te veré en el siguiente video.
89. Continuar el juego: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, cuando ejecutamos nuestro juego, cuando golpeamos el continue, aparecemos en nuestro juego. Y si golpeamos la tecla M, vamos a los artículos. Podemos ver que tenemos los artículos a pesar de que no hemos recogido nada, los
hemos cargado. Y si no puedes escuchar música, es porque he silenciado el audio para que me oigas con claridad y no tenemos que gritar sobre el sonido. Entonces, no perdamos más tiempo y empecemos con cargar nuestro juego. Ah, está bien, entonces es hora de usar realmente nuestro botón Continuar. ¿ Cómo vamos a hacer eso? Bueno, el botón Continuar es esencialmente un mecanismo de carga. Por lo que hay múltiples formas en que podemos cargar un juego, pero una de las mejores es crear en realidad una escena separada para la carga de nuestra ganancia como la de sumar todo en nuestro menú principal. Entonces, y vamos a ir y a nuevo o crear una nueva escena. Crearemos esto. Vamos a guardar esto en las escenas y lo llamaremos la escena de carga. Ahí vamos, guarde eso. Antes de que nos olvidemos, vamos a la Configuración de compilación y vamos a añadir el ¿dónde está? El escenario de carga y el menú principal. Ahí vamos. Entonces dentro de la configuración de compilación, bien, genial, guarda eso. Ahora, ¿qué vamos a hacer aquí? Bueno, hay un par de cosas que necesitamos agregar. Por lo que antes que nada, tendremos que agregar, el reproductor necesitará agregar el Audio Manager. En realidad no vamos a ver todo esto. Esto será transición sin problemas a través de la escena de carga. Agregaremos un gestor de juegos. Por último, también necesitamos el lienzo de UI. En tanto que el lienzo de la interfaz de usuario, no
puedo ver el lienzo de la interfaz De acuerdo, Así que ahí tienes. Vía Lienzo. Por alguna razón, no pude verlo. No se preocupe por eso. Ahora tenemos todo listo. Lo siguiente que hay que hacer es que vamos a crear un objeto de juego aquí. Ahí se va a llamar el o no, simplemente el cargador. Es antera. Vamos a restablecer su posición. Haga doble clic sobre él. Y vamos a seguir adelante y crear un guión separado. Dónde deberíamos crear tal vez gestión de nivel o gerentes, Vamos a crear dentro de mantras. Siento que los directivos, me gusta la basura, todo lo que no necesitamos o no estamos seguros de dónde ponerlo dentro de los directivos. Por lo que cargar la escena o escenas debió llamarse Escenas. No se preocupe por esa escena de carga. Lo vamos a agregar al cargador y lo vamos a abrir. Entonces lo primero que queremos es realmente tener un peso para el tiempo de carga. No quiero que la carga sea instantánea. Sólo queremos un par de segundos antes de cargar. Entonces, y aquí vamos a crear un campo serializado donde podemos determinar cuánto tiempo queremos esperar. Entonces flotar, manera de cargar, bien. Está bien, genial. Ahora lo siguiente que hay que hacer es querer cargar la escena correcta en la que estamos. Pero si puedo recordar, si vamos al gerente del juego, datos guardados. Sí, en las posiciones de jugador seguro, estadísticas de jugador seguro. Pero no salvamos la escena en la que estamos en ninguna parte. Y va a ser parte de tu reto. Por lo que tu reto es acudir al gestor de juegos y establecer la escena actual y el método de guardar datos en nuestro rendimiento de co-rutina. ¿ No dije que queríamos crear una corutina? Ah sí, lo hice. Ya he dicho que vamos a esperar para cargar en nuestra corutina, ceder el tiempo usando la variable que hemos creado. Accede al gestor de juegos y carga los datos, accede a las misiones, y carga las misiones 2. Así que pausa el video ahora mismo y ve a hacer este tipo de gran reto. De acuerdo, bienvenido de nuevo. Entonces en nuestro gestor de juegos y aquí, y sólo lo mantendré en los datos guardados y palabras al respecto. Entonces jugador prefs, dot set, ¿
y en qué estamos trabajando? De acuerdo, así que establece cadena, estamos creando la escena de subrayado actual. Eso es todo. Creo que ya es suficiente de clave. Y luego estamos accediendo al encargado de escena. Y esta es la parte complicado. Entonces si accedemos a la escena, está bien, entonces no podemos usar al gerente aquí. Por lo que Unity motor de gestión de escena de punto, guarde ese caso. Por lo que de vuelta aquí, el gerente de escena punto. Y cómo vamos a, bien sin embargo, hay esto, vamos a conseguir la escena activa actual. Y vamos a conseguir el nombre porque estamos poniendo una cadena. Eso lo salvaremos ahora de vuelta en nuestra escena de carga. Y aquí dentro vamos a seguir adelante y acceder al enumerador de ojos públicos y escena de carga, vamos a llamarlo. Y aquí dentro vamos a ceder de inmediato retorno. Y nueva forma. Por segundos. Espere cuatro segundos. ¿ Dónde está el tiempo para esperar, el tiempo o el tiempo para cargar? Esperar a tiempo de carga. ¿ Y qué vamos a hacer aquí dentro? Bueno, antes que nada, vamos a cargar la escena. Entonces Encargado de Escena, no lo tenemos, necesitará agregar TI. Encargado escena de carga de puntos. Y vamos a acceder al jugador prefs dot getString. Y vamos a conseguir el donde está el GameManager visto copiar eso, pegarlo aquí. Cierra esto, guarda eso. Ahora vamos a acceder a los datos de carga de punto de instancia de punto del gestor de juegos. Y el gestor de misiones punto instancia punto carga datos de búsqueda. Ahí vamos. Eso es todo lo que tenemos que hacer. Pero para finalmente, vamos a comprobar si realmente tenemos alguna espera para el tiempo de carga y luego llamar al recubrimiento. Entonces si el tiempo de espera para cargar es mayor que uno o mayor que 0, entonces vamos a iniciar una co-rutina que va a ser la escena de carga, y eso es todo. Guarda todo eso. Y por último, tendremos que entrar al menú principal, el botón de voto popular Continuar. Y aquí dentro vamos a llamar a esta escena manager dot lot scene. Y podemos o en realidad nombrar esto y aquí la carga vista copiarlo de nuestro juego o podemos, como lo hicimos anteriormente, crear una cadena aquí dentro. Pero por ahora sólo vamos a copiar las escenas de carga o escenas, la escena de carga, copiar eso, pegarla aquí. Guarda esa carga guardada porque se lo he copiado de él. No se preocupe por eso. Vamos a salvar a éste. También ve a Configuración de compilación de archivos y vamos a agregar también, ya
hemos agregado la escena de carga y el menú principal. De acuerdo, guarde eso. Y ahora vamos mientras que el menú principal, ahí vamos, MainMenu. Abramos los botones. El continuar. Voy a dar clic jaggedy Main Menu canvas, ir al menú principal, botón
Continuar, guardar eso, ejecutar el juego. Una cosa más, creo que esto nos dará un error porque en realidad no
hemos guardado un juego donde tengamos la moneda. Entonces si hacemos clic en Continuar, abriremos la carga. Y no pasa nada. Porque en nuestra carga, si vamos al cargador, el tiempo de espera para cargar como 0, nunca lo
estamos llamando. Entonces otra vez, intentemos esto una vez más a pesar de que estoy seguro de que va a haber algún tipo de error. Continuar. De acuerdo, entonces ahí vamos. Tenemos un error porque no tenemos una escena actual. Entonces tendremos que ir al parar esto, bajar a correr nuestro juego. No se han guardado los datos. Salir Menú Principal. Ejecuta nuestro juego. Continuar. Sí, ahí vamos. Pero por alguna razón no tenemos un jugador donde z. mientras que nuestro jugador está bien. Según su aparición, ¿podemos movernos? Sí, podemos. Pero como aún no hemos implementado eso, acabamos de hacer esto abajo. Voy a silenciar el audio porque aún
no implementamos la cámara de seguimiento encontrando a nuestro reproductor. Por eso podemos encontrarlos. Pero como pueden ver, tenemos todos nuestros artículos. Si golpeamos los artículos M, sí, ahí vamos. Ah, esto porque lo recogimos. ¿ Guardamos algún artículo? No estoy seguro. Está bien. Pero estamos cargando datos. Sabemos que los datos del gestor de juegos funcionan. Entonces no, en realidad si volvemos a la ciudad y ejecutamos nuestro juego, hay un ligero problema. Entonces si recogemos un par de artículos, teníamos la clave para guardar datos, salimos, corremos. Deberíamos ver ahora mismo si nosotros, oh, soy artículos. Ahí vamos. Tenemos los artículos, tenemos múltiples artículos. Pero si vamos ahora mismo al menú principal, ejecuta nuestro juego, y da click en Continuar. Tenemos que solucionar este problema donde realmente vemos al jugador. No queremos que esto suceda, queremos mantenerlo. De acuerdo, así que ahora si le damos la tecla M, ve a artículos o no. De acuerdo, Entonces los artículos se están cargando correctamente. Eso es bueno. Entonces eso fue sólo un poco de depurador en mi mente. Lo final que necesitamos arreglar y la carga que necesitamos para realmente asegurarnos de que no veamos al jugador ni nada de esto. En realidad podemos ir a la cámara principal y cambiar esto a completamente negro y quitar al jugador. Esta es una manera. Entonces ahí vamos. Los ponemos afuera, guardamos eso, vamos al menú principal, correr el juego, continuar. Las esposas son jugadoras en el medio, no se preocupe por eso. Por alguna razón el jugador va al medio. Vamos a mover nuestra cámara aquí arriba, guarde eso. De vuelta en el menú principal. Ejecuta el juego. Continuar. No vemos al jugador. Genial. Y luego pagamos en nuestro juego. ¿ Podemos movernos? Podemos hacer tenemos unos artículos? Sí. Ahí vamos. Tenemos todo y eso es todo. Ese es nuestro mecanismo de carga. Por lo que espero que lo disfruten. Y si te emocionaste demasiado por lo que pasaba en el último par de secciones, sé que no es lo más emocionante de hacer, pero es muy crucial tener una buena interfaz de usuario, sobre todo cuando se trata de juegos de RPG, porque nos vamos a quedar a lo largo del tiempo en UI y tener menús y así sucesivamente y así sucesivamente. Y la siguiente sección en realidad vamos a empezar con nuestro sistema de batalla, que es el núcleo de nuestra jugabilidad. Entonces te veré entonces.
90. Sección 14: crear un Arena de batalla: Bienvenidos de nuevo mis compañeros desarrolladores de juegos a un video completamente nuevo y una sección completamente nueva, y una sección muy, muy emocionante. Entonces como pueden ver, he creado un mundo y aquí con algunas lava usando sprites que me han dejado en los recursos, también se puede entrar en juego abierto off. Ahí es en realidad donde obtuve mis recursos. Se puede ver en el mientras el archivo, los azulejos, el calabozo, por lo que está bajo el nombre cueva acaba de dar. Puedes encontrar lo que quieras. Entonces cuando ejecutamos nuestro juego, ahora qué me deja maximizar todo y subir el volumen para que puedas escuchar la música espeluznante de fondo. Así que corre el juego. Sí, ahí vamos. Por lo que caminamos alrededor de esta cueva húmeda con esos agujeros en ella. Entonces aquí vamos a tener nuestras batallas con algunos monstruos. Tenemos algo de lava en inhumana necesidad de arreglar esto aquí mismo porque podemos
pasar y tenemos estos acantilados aquí ahora nuestras alas recortadas, Eso es un pequeño problema, pero no se preocupe por eso. También podemos caminar aquí. Aquí es donde se librará la batalla del jefe. Aquí dentro, Gollum quiere tirar el anillo o no, no. Columna quiere mantener la lluvia, pero Frodo quiere tirar el anillo, pero también no. Entonces veremos qué pasa ahí. Y aquí dentro podemos andar por ahí. También podemos librar algunas batallas aquí dentro. Entonces tal vez batallas fáciles aquí. Esta es la entrada de la cueva, por lo que siempre necesitamos unos intereses. Entonces, ¿cómo llegó tu monstruo, o tu personaje? ¿ Cómo llegaste por la puerta? Es muy importante no romper la inmersión. Y veamos y oigamos pelearán quizá batallas medias aquí dentro, unas duras batallas, y aquí dentro encontraremos los bots finales. Entonces déjame pausar el video. O sea, detén el juego. Voy a hablar del inicio del combate por turnos. Entonces no estoy seguro si alguna vez has jugado combate por turnos, pero es más o menos así. Entonces tenemos, digamos, tres personajes que hemos recogido a lo largo de nuestro viaje. Y tenemos un par de enemigos que ponemos en el mundo. Tenemos no va a tener tiempo. Tendremos los nombres de nuestro personaje, tendremos el HB de nuestro personaje, el AMP o el mono. Esta es la magia y estaremos peleando, actualizando, y cada personaje tendrá historia, y de ahí la palabra combate por turnos. Y en realidad es una forma
muy, muy moderna de jugar juegos. No pienses que es un poco viejo y no bueno. Sé que algunos de ustedes podrían estar pensando que ¿por qué no estamos usando tenedores y lanzamientos? Bueno, en realidad esta es una forma muy moderna de jugar juegos. Muchos juegos modernos como, no
estoy seguro cuál es el nombre de esto. Creo que esto es ExComm algo que olvidé. Perdón. Y esto también lo olvidé, pero es un juego muy estimado. Tiene unas vistas muy altas. Ya puedes ver puedes usar objetos durante la batalla, lo cual es muy bonito. Y esto también es un maduro que tengo, me olvidé de la parte superior de mi cabeza. A lo mejor esta es Persona 5. Ah, sí, esto es Persona 5. Entonces como puedes ver, es una forma muy moderna de jugar juegos y una forma muy táctica. Además, da juego en profundidad. Traté de hacerlo usando tenedores, pero honestamente, cuando estás jugando un RPG, un top down al RPG, no
es tan divertido, sobre todo cuando se trata de batallas de jefes. No hay mucho espacio para saltar y jugar. Por lo que el combate por turnos es el sistema de combate perfecto para tal otra vez, que estamos creando. Por lo que te dejaré con un reto para crear tu propio diseño. Usa los mosaicos que tengas o descargado para crear la arena. Asegúrate de que el jugador no salga de los límites y la cámara nunca salga de los límites. Y por último, déjame mostrarte lo que tienes que hacer aquí, como hemos dicho, le agregas la grilla, te lo prefabricado. Agregas las cámaras, el gestor de juegos, el jugador, el gestor de nivel, y el gestor de audio en la música aquí dentro a la cámara virtual, al gestor de nivel en segundo plano. No creo que necesitemos esto, pero asegúrate de que cada vez que estés poniendo tus fichas que tengas una frontera donde el jugador no pueda cruzar, así que no solo camina, amante y así sucesivamente. Entonces te dejaré con tu creatividad, con todo tu pensamiento. Asegúrate de comprometer todos tus cambios al final. Y no debería tener en el escenario o voy a ignorar todas las fichas que hemos creado. Y eso es todo. Entonces te dejaré a ello y te veré en el siguiente video.
91. UI de la escena de batalla: Bienvenidos de nuevo a mis compañeros desarrolladores de juegos a un video totalmente nuevo. Y como puedes ver, he creado el layout. Conozco, de nuevo, un video muy largo y aburrido de echar el ojo. Pero como siempre, es muy importante si quieres, puedes seguir adelante e implementar tu propio diseño de escena de batalla. De verdad, de verdad te recomiendo que hagas eso. Este es tu juego. Necesitas agregarle tu propio sabor. Pero hasta entonces, no perdamos más tiempo y empecemos. De acuerdo, entonces ahora que hemos configurado nuestra tangente, es hora de armar nuestra escena de batalla. ¿ Y cómo va a quedar esta escena de batalla? Entonces digamos que estamos caminando por ahí. Llegamos a cierta zona de batalla que creará más adelante. Y vamos a iniciar una batalla. Vamos a cambiar el fondo. En primer lugar, vamos a poner alrededor a nuestros personajes. Y luego tendremos un par de opciones. En primer lugar, podemos atacar, usar magia, usar nuestros objetos, o huir de la batalla. Y luego necesitaremos un panel separado que muestre todas las estadísticas de los jugadores. Entonces, ¿cuánto vendemos a cada uno de los jugadores con los que estamos jugando? Y te mostraré lo que quiero decir con los otros jugadores. Pero antes que nada, empecemos creando el panel o toda la capa de batalla. Entonces vamos a crear aquí un objeto de juego vacío. Vamos a restablecer su posición y vamos a llamar a este objeto de juego la escena de batalla. Vamos a crear dos capas. Entonces vamos a entrar en la capa Editar. Vamos a crear dos capas. El primero será el fondo de batalla, y el segundo serán los personajes de batalla. Entonces ahora que tenemos esto hecho, lo
siguiente que hay que hacer, ahora que hemos terminado con esto, sigamos adelante e importemos el fondo. Y encontré esta lava fresca y aquí, así que la voy a usar. Puedes seguir adelante y usar el fondo que quieras. Entonces ahí vamos. Esta es la lava. Voy a arrastrarlo aquí y voy a establecer la capa de clasificación como fondo de batalla. Ahí vamos. Si no te gusta, sin preocupaciones puedes usar cualquier otro. Entonces voy a establecer la escala para que sea dos por dos para que podamos cubrir toda la cámara. Esto es muy importante o podemos hacerlo tal vez 1.8 por 1.8. Ahí vamos. Por lo que necesitamos una imagen lo suficientemente grande para cubrir toda la cámara por todos lados. Y vamos a subir esta lava a la escena de batalla y aquí, y lo llamaremos el fondo de batalla. Ahí vamos. Ahora lo siguiente que haremos es que vamos a hacer clic derecho en el objeto del juego de escena de batalla irá a mí, y vamos a crear un lienzo solo para la escena de batalla. Entonces este será el Lienzo de batalla, supongo. Ahí vamos. Hagamos doble clic y veamos cómo se ve. Aquí vamos a crear un panel. Entonces vamos a hacer clic derecho, ve a ti, hago click en el panel. Este será nuestro menú, menú donde elegimos qué hacer con cada personaje. Y va a ser un poco pequeño. Lo pondremos aquí abajo. Entraremos en nuestros sprites, sprites, elementos de interfaz de usuario. Este será nuestro panel por defecto. Nosotros lo vamos a subir de camino. Y lo puedo ver aquí abajo apropiadamente. ¿ Por qué? Ah, ahí está. De acuerdo, Entonces este será el panel que retenga todos los ataques que queremos hacer. Entonces vamos a añadir un par de botones en el menú, así vamos a hacer clic derecho en el menú, ir a, yo, ir a un botón y vamos a ir al texto primero de todo, borrado en un texto Mesh Pro. Y se va a llamar, digamos ataque. Va a ser audaz, audaz, completamente negro. Y la fuente obviamente va a ser la fiesta medieval. Y el fondo del botón será el que estamos usando todo el tiempo. Y ahí vamos. Entonces este será nuestro botón. Vamos a hacerlo un poco más grande. Por lo que necesitaremos cuatro botones para caber aquí. Por lo que necesitamos asegurarnos de que ajustemos todo. Y como ya he dicho, esta siempre es la parte más tediosa de crear nuestro diseño de interfaz de usuario de juegos, pero es muy importante tener una buena. Entonces déjame solo hacer esto un poco más pequeño y voy a estar ajustando el texto para que quepa correctamente. Ahí vamos. Por lo que este será nuestro primer botón. Ahora tenemos que duplicarlo porque necesitaremos botones. Y iremos al menú. Agregaremos un componente aquí, que será el gran grupo de diseño de cuadrícula. Y vamos a ajustar todo desde aquí. Entonces aumentemos el tamaño celular. Ahí vamos. Agregaremos un poco de relleno a la izquierda, un poco de relleno desde la parte superior. Tal vez aumentar el tamaño de celda por la altura tanto como podamos. Tal vez disminuir el tamaño de celda a un poco de espacio entre ellos. Y ahí tienes. Eso ya es bastante bueno. Yo creo. Como ya he dicho, todo
esto es subjetivo. Puedes crear tus propios diseños de la manera que quieras. Entonces estos son nuestros cuatro botones. A lo mejor aumentemos el tamaño de celda en la y Creo que eso es lo más que podemos hacer. Y vamos a cambiar esto por el botón de ataque. Este será el botón mágico. Entonces tendremos magia para cada uno de nuestros personajes. Estos van a ser los artículos. Y este será el botón Ejecutar. O llamemos a esto los artículos de Estados Unidos. Usar el botón de elementos. Y cambiemos el texto en cada uno de esos. Entonces esto es ataque. Esta es la magia. Este serán los artículos. Y por último, tendremos la carrera con un par de signos de exclamación. Ahí vamos. Por lo que ahora tenemos configurado nuestro botón. Ahora es el momento de crear el panel de visualización. Entonces voy a duplicar el menú. Voy a mover el menú y aquí hacerlo más grande a todos los lados. Y vamos a eliminar todos los botones porque por ahora no los necesitamos. Vamos a llamar a esto las estadísticas de los jugadores. Y entonces aquí vamos a crear tres nombres de textos para cada uno de nuestros jugadores. Entonces jugador uno, jugador dos, jugador tres. Y debajo de cada uno de estos jugadores tendrá deslizadores para, en primer lugar, cuidar la mannose o cuánto maná todavía tenemos y luego cuánta salud cada uno de nuestros jugadores todavía sombrero. Entonces sigamos adelante y agregamos un texto Mesh Pro. En primer lugar, estos serán los nombres. Entonces solo voy a detener la vista de cuadrícula por ahora. Apágalo, tal vez incluso restablecerlo y luego apáguelo. A lo mejor incluso quitarlo por completo. Pero lo mantendremos por ahora. Por lo que este será el nombre de texto. Por ejemplo, digamos que es nombre de jugador uno. Y va a ser por supuesto, lo
mismo, poniendo todo completamente negro. Ahí vamos, el jugador nombre uno. Y bajo año vamos a sumar los dos deslizadores. Entonces haremos clic con el botón derecho. Y en primer lugar, déjame crear un objeto de juego vacío para el jugador. Uno en el texto aquí abajo. O el jugador uno debería ser realmente mover aquí abajo y el texto debe ser restablecido. Por lo que restablecemos la posición del texto relativa
al objeto del juego del jugador para que podamos ponerlo aquí y solo lo haremos un poco más grande. Entonces es sobre el tamaño donde queremos poner al jugador. Por supuesto, vamos a estar cambiando este. Dijimos la vista de cuadrícula, por lo que el jugador nombre uno por ejemplo. Y ahora vamos a hacer clic derecho y aquí en un deslizador de interfaz de usuario. Por lo que este será el Slider de salud. Y obviamente hay un par de cosas que necesitamos cambiar
para el mango se pueda quitar por completo. El fondo será el fondo deslizante que hemos agregado. Y el área de relleno, o el relleno, relleno real será el tobogán rojo. Entonces ahí vamos. Entonces ahora si vamos al deslizador de salud, lo incrementamos. Ahí vamos, Está funcionando, pero hay un par de cosas que necesitamos cambiar. Por lo que el fondo mantenga presionada Alt, haga clic en este botón en la parte inferior derecha. Después ve al área de relleno. Haga clic aquí. Aguanta. Todos. Abre esto. No, eso no es suficiente. Permítanme que me asegure de que todo esté funcionando bien. Entonces ahí tienes. Como me viste hacer, solo tienes que dar click en el agujero de relleno, click en los anclajes de aquí, mantener presionada Alt para que todos vayan a los bordes. Y ahora necesitamos hacer un par de ajustes para
encajar correctamente todo el interior del deslizador. Sé que esto es un poco tedioso, pero esto no es necesario. Desafortunadamente. No todo lo que haces, algo que amas, pero a veces es necesario. Entonces ahí vamos. Ahora tenemos nuestro deslizador de salud. Vamos a dar click aquí. Arrástrelo y lo hagamos un poco más grande. Entonces ahí vamos. Se ve bonito. Vamos a duplicar el deslizador de celdas y lo pondremos aquí abajo. Este será el deslizador de maná. Y vamos a cambiar la película. Entonces el relleno aquí va a ser el azul. Ahí vamos. Ya que está configurado correctamente. Sí, creo que ya es suficiente. Entonces ahora si vamos al slider menor y sólo
voy a hacerlo tal vez un poco más grueso. Entonces agrega un poco de grosor, para que sea más obvio. Ahí vamos. Y en el Health Bar, también un poco de grosor. Ahí vamos. De acuerdo, así que esto se ve un poco bonito. A lo mejor sí necesitamos hacerlo un poco más pequeño más adelante. Ya veremos cómo vamos a hacer eso. Pero por ahora, digamos, ahí vamos, jugador 1. Vamos a duplicar el jugador uno. Este será el jugador dos. Y si lo movemos a la derecha, ahí vamos jugador a duplicar esto de nuevo. Y está bien, así que no encaja. Ya sabíamos que si agregamos el diseño de cuadrícula aquí dentro, esto será muy engorroso. Entonces si tratamos de aumentar el tamaño celular y tal vez aumentar el tamaño así. Entonces de nuevo, estoy ajustando todo de acuerdo a lo que hay que hacer. Entonces como pueden ver, puedo elegir el deslizador de salud y salud y exigir un deslizador y hacerlos sólo un poco más pequeños. Incluso podemos elegir el ancho que metemos aquí y copiarlo
y pegarlo en el deslizador Salud en el segundo. Y en el tercero 1 cuarto el maná para el mono, y para el resto de todo. Y sólo vamos a moverlo. De acuerdo, Entonces supongo que esto es lo suficientemente bueno. Permítanme simplemente cambiar un par de valores en el deslizador de salud para que sepamos que en realidad están funcionando. Y sobre el maná, déjame cambiarlos para que sepamos que son distintos. Entonces ahora que tenemos al jugador uno, tenemos al jugador dos. Y tenemos la Capa 3 con sus nombres, con sus barras de salud, con sus barras de maná. En el siguiente video, podemos empezar a colocar a nuestros personajes. Y puedes ver aquí abajo en el modo de juego o en la vista de juego cómo se va a ver esto. Entonces vamos a tener a los enemigos. Y aquí por ejemplo, 1, 2, 3, 4, 6 enemigos pueden ser. Y aquí dentro tres jugadores, más si quieres, si quieres sumar, por ejemplo, para jugadores, cinco jugadores, necesitarás asegurarte de añadir un segundo panel o apretar todo aquí. Y tendremos varias opciones. Podemos atacar normalmente con una espada o algo así. Podemos usar la magia. Si tenemos magia o mono, podemos usar objetos o podemos huir y los artículos pueden ser, por ejemplo, equipos que equipan cierta arma. A lo mejor eso podría ayudarnos a derrotar a cierto tipo de enemigo, o tal vez simplemente tomar una poción, aumentar nuestro mono, aumentar nuestra salud, y salir a pelear un par de segundos más. Por lo que espero que lo disfruten. Sé que estos videos de presentación de UI son muy largos y aburridos. Eso se debe a que todo está basado en la subjetividad. Así es como me dispuse. A lo mejor quieres exponer tu mundo un poco diferente. Entonces gracias por llevarte conmigo y te veré en el siguiente video.
92. Personajes de batalla: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. Entonces como puedes ver, hemos creado muchos personajes
aterradores y también endurecidos en batalla y listos para luchar contra jugadores. Entonces tenemos a jimmy, Draco y el gramo, y tenemos un maestro mayor, brujos de fase
azul y un mmh regular. Entonces vamos a aprender a crear todos estos. Entonces, no perdamos más tiempo y empecemos. Ah, está bien, entonces es hora de agregar algunos personajes de batalla. En primer lugar, necesitamos a estos primates. Entonces vamos a entrar aquí, hacer clic derecho y crear una carpeta para los jugadores, los jugadores potenciales solo pondrán todos estos en la carpeta del jugador. Y vayamos a los recursos y sumamos a los enemigos. Por lo que estos serán los enemigos sólo arrastrarán estas hojas de cálculo y aquí. Y voy a renombrar esto a los enemigos. Entonces ahí vamos, ahí se puede ver que tenemos un par de enemigos. Vamos a seguir adelante y rebanarlos. Entonces voy a aplicar eso, ve al modo sprite y voy a rebanar, Probémoslo 64 por 64. No, eso no funcionó. Entonces intentemos 120 ya saber cuál es la forma en que hacemos esto normalmente es que vamos a hacer esto un poco más grande. Ya veremos que el tamaño es de 342 por 220. Por lo que conseguiremos nuestra calculadora. Y aquí dentro vamos a tomar 348 y dividirlo por cuatro. Ahí vas. Entonces es 987. Y luego vamos a tomar 202, el 0 dividido por 2, eso es 110. Vamos a rebanar esto y ahí vamos. Tenemos rebanadas perfectas, rebanadas que arriba, aplicar. Ahí vamos. Por lo que ahora tenemos a este enemigo sprites rebanados. Muy bien. Ahora queremos establecer las posiciones por defecto para el jugador y los enemigos. Entonces voy a volver aquí abajo. Vamos a hacer esto un poco más pequeño. Y voy a apagar por
ahora el Lienzo de batalla para que podamos ver todo con más claridad aquí. Entonces en primer lugar, vamos a seguir adelante y hacer clic con el botón derecho crear un objeto de juego vacío que va a ser el jugador, Digamos jugador 1 o algo así. ¿ Y dónde está? Ahí está. Entonces lo vamos a mover aquí arriba. Y luego vamos a crear un, otro objeto de juego. Y te voy a mostrar por qué es un niño va a ser la posición uno y vamos a desmarcar eso y luego niño al jugador a ello. ¿ Y por qué hicimos eso? Bueno, porque queríamos que la posición uno estuviera exactamente en el jugador. Entonces lo que hicimos fue crear un niño en el jugador que
nos dio la posición exacta y luego quitamos eso de. Entonces esto es solo un consejo rápido si quieres una forma más rápida de hacer las cosas. Entonces vamos a ir con el jugador en un renderizador sprite. Renderizador Sprite. Ahí vamos. Vamos a ir a los personajes. Los jugadores se desplazan hacia abajo y vamos a sumar al jugador parado a éste. Y vamos a asegurarnos de que sea un personaje de batalla. Entonces ahí vamos o podemos, si quieres, hacer que se enfrente a los enemigos en esa dirección. Creo que este es mucho mejor y asegúrate mover la posición a donde quieras poner a tu jugador. Vamos a duplicarlo. Duplicarlos otra vez. Entonces ahí vamos. Ahora tenemos tres posiciones para que los jugadores empiecen a atacar frente. Pero eso a dos. Este también a dos horas, quiero decir tres, lo
siento, lo siento, ahí vamos. Por lo que ahora tenemos posición uno, posición dos, posición tres con un jugador en cada uno de ellos. Por supuesto, estaremos cambiando el sprite más adelante. Pero ahora sigamos adelante y creemos aquí un objeto de juego vacío, que se va a llamar las posiciones del jugador. Y vamos a establecer estas posiciones de jugador bajo el objeto de juego de posición de jugador. Vamos a seguir adelante y duplicar este. Vamos a moverlo al otro lado. Y estas serán las posiciones enemigas. Por lo que los enemigos posicionan. Y aquí dentro vamos a por supuesto estar cambiando estos nombres aquí mismo por los enemigos. Veamos si esto funciona o entra el enemigo. Sí, ahí vamos. Funcionó perfectamente honestamente. Y por supuesto vamos a estar cambiando en los sprites. Entonces sólo voy a estar sumando en sólo uno que tenemos por ahora. Entonces, ¿cuál es este tipo de no estar seguro de lo que es? Este monstruo de aspecto extraño lo pondrá aquí. Y es un poco pequeño porque necesitamos asegurarnos de que sea, intentemos 30 para ver qué tan grande es aplicar eso. Está un poco oscuro. Sí, Está un poco oscuro. Demasiado oscuro para nuestro gusto. Podríamos querer cambiar eso. ¿ No lo hace por completo? Asegurémonos de que sea un no filtro. Aplica eso. Creo que éste es uno como mantequilla y quizá intentemos hacerle 16 con eso. Está bien. No, no, no, no 1632. Aplicar. Está bien. No se preocupe. A lo mejor moveremos la posición de este ejemplar, pero en realidad vamos a tener seis enemigos o cuatro. Tomemos cuatro. Y ahí vamos. Entonces éste es el cuarto. Y va a estar aquí. El tercero estará aquí. Puedes agregar seis si quieres. Eso no es problema. Entonces éste, éste. Vamos a subirlo un poco. Y éste estará aquí arriba. Vamos a mover el cuarto para que no esté completamente en la oscuridad. Y el tercero, ahí vamos. Entonces ahora tenemos a los enemigos, a los jugadores. Ahora necesitamos crear un guión que dé, digamos, carácter a nuestros personajes pétalos. Entonces, vamos a entrar en nuestros guiones y vamos a crear una nueva carpeta aquí. Y va a ser la carpeta del sistema de batalla. Entonces sistemas de batalla Entra, abre esto. Sigamos adelante y creemos un guión C-sharp. Y va a ser la batalla. Personajes. Hit Enter, espere a que se compile. De acuerdo, así que haga doble clic aquí. Abrir Visual Studio. Ahí vamos. Por lo que ahora estamos listos para la batalla y aún no lo ha hecho. De todos modos, primero lo primero, necesitamos establecer si se trata de un jugador o este es un enemigo, porque dijimos que se trata de un personaje de batalla. Los enemigos también son personajes. Entonces es un, va a ser un campo serializado, un booleano y es jugador. Entonces esto va a ser, bueno, si es jugador, esto será cierto. Si no, va a ser falso. Entonces vamos a crear otro campo serializado, que va a ser una matriz de cadenas. Y van a ser los ataques disponibles para ese personaje. Entonces no vamos a tener demasiados ataques. Creo que fuego, hielo, tal vez algún tipo de ataque de planta. No lo sé. Ya veremos. Y luego los ataques regulares de corte. Entonces vamos a tener un par de características para nuestros jugadores o personajes. Entonces va a ser una cadena pública, el nombre del personaje. Por supuesto que necesitamos el nombre. Entonces va a ser un Integer público. Actual HB. Entonces es el HP actual del personaje, el HP máximo de ese personaje, vk, actual Mano del personaje, y el hombre máximo del personaje. Pero no sólo eso, también
necesitamos la destreza que tiene ese personaje. Y vamos a estar usando esto. Vamos a estar usando la destreza para determinar cuánta fuerza podemos aplicar. Nosotros vamos a sacar la diferencia. Nosotros vamos a conseguir el poder de las armas. Y vamos a conseguir, por
supuesto, la diferencia de armaduras. Y todas estas serán características que potenciarán o cambiarán. ¿ O cómo puedo decirlo? Influir en el camino o la cantidad de daño que inflige cada personaje o en la cantidad que puede soportar. Y por último, vamos a crear un booleano público, que va a ser así y cuando los personajes que muera. De acuerdo, entonces vamos a guardar eso. Y ahora volvamos a Unity o k Así que ahora lo que vamos a hacer es llevarnos a uno de estos jugadores, o tomemos el, o cualquier jugador, no importa. Vamos a arrastrar el personaje de batalla a este jugador. Y vamos a poner un par de cosas aquí. Entonces por ejemplo, esto es, un jugador agregará el nombre. Entonces digamos que esto será, este es Jimmy. Por lo que este será V Jimmy. Y el resto se agregará automáticamente a medida que obtengamos la información de cada personaje con el que estamos jugando de las estadísticas de los jugadores. Pero ahí vienen los enemigos. Los enemigos no tienen estadísticas de jugador sobre ellos. Por lo que vamos a tener que hacer esto manualmente para cada uno de ellos. Entonces arrastramos, lo hemos puesto en el enemigo, y ahora vamos a empezar a aplicar todos los cambios en el enemigo. Por lo que voy a emitir con ustedes como un reto para crear unas estadísticas enemigas. Por lo tanto, agrega guión a los enemigos y a
los prefabricados y establece un par de estadísticas para esos enemigos. Y obviamente te he mostrado un par de sprites. Adelante, usa tus propios sprites si tienes enemigos que
quieres agregar a tu juego en características para ellos. Y los prefabricados porque los vamos a estar usando más adelante. Así que pausa el video ahora mismo y ve a crear tus enemigos. De acuerdo, bienvenido de nuevo. Entonces como puedes ver, he creado para, llamémoslos monstruos. Tenemos a los Brujos, al mago, al maestro, y a la cara azul. Y esta es la fase azul, ésta como el maestro Brujos y el mayor. Y también he creado tres jugadores. Entonces tenemos a Jimmy, tenemos a Draco, y tenemos el sombrío. Y sombrío es una referencia a la beca Billy y Maddie en Cartoon Network. Si no lo has visto. No sé qué hiciste en tu infancia. Pero de todos modos, hemos creado tres personajes. Y si los jugadores no tienen ningún estatus especial, estarán actualizando automáticamente. Y son jugadores, pero los enemigos cada uno tiene su propio estatus. Entonces se puede ver, por ejemplo, el mago maestro tiene los 66 seises porque es, no
sé, algún tipo de demonio. Entonces tenemos a los Brujos. Tiene más maná que HP y digamos menos destreza y defensa, pero mucho más un poder de arma, por ejemplo. Y tenemos la mayor que tiene defensas normales y así sucesivamente. Defensa no, no tiene muchas diferencias porque
siento que tiene un cuerpo débil por alguna razón, pero tiene mucho poder de arma porque tiene esas bolas, no lo sé. Y la fase azul, que es un muy, debería ser un personaje muy fácil de tratar. Entonces esto es justo de lo alto de mi cabeza, cómo estoy pensando, cómo lo estoy haciendo. Espero que creas tus propios personajes en tus propias estadísticas a cada uno de los enemigos. Y espero que te estés divirtiendo porque en el próximo video realmente estaremos iniciando una batalla. Entonces te veré entonces.
93. Cómo iniciar una batalla: Bienvenidos de nuevo a mis compañeros desarrolladores de juegos a un video completamente nuevo donde realmente estaremos empezando nuestra batalla. Entonces, vamos a ejecutar el juego. Digamos que estamos caminando por ahí para que lleguemos a esta posición y oh no, comienza una batalla. Bueno, lo he hecho manualmente. Yo he presionado el BP, pero como pueden ver, iniciamos la batalla y no sólo eso, ya no
podemos mover a Jimmy hasta que termine la batalla. Entonces, no perdamos más tiempo y empecemos. Oh, bien, Así que ahora es el momento de iniciar un par de batallas. El primero que hay que hacer, obviamente, es seguir adelante y crear un gestor de batalla. Pero antes de hacer eso, vamos a crear un objeto de juego vacío aquí dentro, y va a ser el mal manager. Vamos a restablecer su posición. Y vamos a trazar la escena de batalla al gerente de batalla. Y vamos a entrar en el fondo de batalla y asegurarnos de que su posición sea 00. No te preocupes por eso. Vamos a moverlo todo más adelante o simplemente saltarlo por ahora y aquí y ya veremos vamos a lidiar con todo y solo quedarnos pero 0 caso. Por lo que ahora de vuelta en nuestros guiones y en el sistema de batalla, vamos a crear un gestor de batalla. Entonces patho manager, pulsa Enter, espera a que se compile. No, no necesitamos abrir esto. De acuerdo, y lo vamos a arrastrar, por
supuesto, y al objeto de juego de manager de batalla. Y vamos a abrir este grupo. Entonces vamos a necesitar un par de cosas. Entonces voy a pasar por ellos y te lo contaré todo. En primer lugar, necesitaremos una instancia. Tan público, estático, pero Manager Instance, guarde eso. Entonces necesitamos una variable que haga un seguimiento si una batalla está activa o no. Entonces lo vamos a hacer privado porque se va a cambiar dinámicamente. Y va a ser, ¿es la batalla activa verdadera? Está activo, falso, no está activo. Entonces necesitamos una referencia a la escena de batalla. Por lo que vamos a crear una escena de batalla objeto de juego serializado. Entonces necesitamos una referencia a la posición del jugador. Posiciones. Entonces va a ser de tipo transformado. Y por supuesto va a ser una matriz porque tenemos varios de esos y van a ser las posiciones de jugador o las posiciones del jugador. Es un nombre mejor. Por supuesto que necesitamos también las posiciones enemigas. Posiciones de enemigos, y necesitarán una referencia a todos los personajes de batalla disponibles, los enemigos y los jugadores. Entonces voy a crear aquí un campo serializado, que va a ser de personajes de tipo batalla. Va a ser un array, y va a ser el jugador prefabs porque vamos a estar instanciándolos. No queremos tener siempre los mismos jugadores, siempre aquí jugando. Queremos instanciarlos dinámicamente en base a donde vayamos. Y vamos a crear prefabs de jugador y los enemigos. Los prefabs necesitan un punto y coma aquí. Y podríamos haber puesto todo esto en la misma línea. Entonces voy a eliminar y añadir una coma. Por lo que ahorramos un poco de espacio porque este va a ser nuestro guión más grande hasta ahora. Y por último, necesitamos y empezamos a establecer la instancia a esta instancia es igual a esto, salvo eso. Y entonces no vamos a destruir la carga. A lo mejor ni siquiera necesitamos esto porque vamos a ver en sólo un poco, pero vamos a quedármelo. Siguiente. Queremos un método para iniciar la batalla. Entonces voy a crear un vacío público. Empezar batalla y ¿qué necesitamos e iniciar bate? Bueno, en primer lugar, necesitamos parámetros para saber qué enemigos iban a localizarse, localizarse. No estoy seguro de cómo se llama. qué enemigos vamos a instanciar? Por lo que los jugadores ya están todos disponibles. Entonces digamos que estamos caminando por un calabozo. No queremos gastar jugadores aleatorios. Ya sabemos a quién hemos tomado en el viaje con nosotros, pero no sabemos qué enemigos van a salir y tangentes. Entonces vamos a crear una cuerda. Y va a ser una matriz de cuerdas y los enemigos a detectar. De acuerdo, así que vamos a facturar aquí. Si no hay batalla. Entonces si no hay batalla, entonces vamos a poner la batalla activa en verdadera. Y también queremos evitar que nuestro personaje se mueva o haga algo. Entonces estamos trabajando con Jimmy. Empezamos una batalla. Abrimos la escena de batalla, pero no queremos poder movernos con Jimmy. Entonces de nuevo, vamos a entrar al gestor de juegos y vamos a sumar otro booleano aquí dentro, que va a ser la batalla, está activo. Guarda eso. Y si está activo. Entonces aquí vamos a añadir una condición de que la batalla esté activa. Eso lo salvaremos ahora de vuelta. Y nuestro manager de batalla, cuando dijimos la batalla activa a verdadero, vamos a acceder a la instancia de punto del gestor de juegos. El combate está activo para ser igual a verdadero, o puede ser igual a como batalla activa. O podemos acceder al gestor de batalla desde aquí. Pero sólo le daremos al gestor de juegos lo más sencillo posible. Entonces vamos a ahorrar eso. Y por último, necesitamos realmente encender la escena de batalla. Por lo que la escena de batalla que se puso activa a la verdad. Guarda eso. Y ahora por fin, necesitamos comenzar realmente la batalla después de presionar alguna tecla. Entonces te lo voy a emitir como un reto. Y tu reto es iniciar la batalla. Así que toma una entrada clave y actualiza y llama al método de inicio de batalla. Y para crear una nueva matriz de cadenas, porque estará agregando una matriz de cadenas, necesitará escribir dentro del parámetro nueva cadena, agregar los corchetes y los nombres de cadena. Así que pausa el video ahora mismo y ve a hacer el reto. Oh, hey, bienvenido de nuevo. ¿ Cómo conseguiste todo eso? Entonces aquí vamos a crear una condición if y vamos
a comprobar si hay un punto de entrada, obtener clave. Y por supuesto conseguir keydown y luego keycode dot, creo que B es una letra apropiada para presionar o tecla para presionar. Y luego llamaremos al inicio de la batalla. Por lo que las batallas comienzan o botón Inicio. Seguro, ¿por qué no? Podemos iniciar la batalla. Y aquí dentro necesitaremos una cuerda. Necesitamos enviar una matriz de cadenas. Entonces vamos a crear una nueva cadena. Y vamos a abrir los corchetes igual que te mostré en la sintaxis, mientras que los corchetes rizados. Y aquí dentro vamos a escribir los nombres de los enemigos que queremos añadir. Pero una pequeña cosa a tener en cuenta que necesitamos nombres 100% correctos. Entonces vamos a entrar aquí y a la unidad en cuanto nos permita caso. Gracias. Entonces, ¿dónde están nuestras prefabs? Pero dos personajes, enemigos, mago, el maestro mayor, copiamos esto, lo pegamos aquí, y luego otra vez copiamos el, Añadir un brujo, copiar esto, anunciarlo aquí, guardar eso. Y ahora vayamos a Unidad y probemos esto. Entonces vamos a apagar en primer lugar la escena de batalla. Ah, necesitamos asignar todas las variables para que el jugador se posicione. Abramos esto hacia arriba y bloqueemos esta ventana hacia abajo, seleccionemos las posiciones del jugador, arrástrelas hasta las posiciones del jugador. Selecciona todas las posiciones enemigas, arrástralas a las posiciones enemigas. Vamos a seleccionar a todos los prefabricados enemigos, arrastrarlos a las prefabs enemigas, e ir a los jugadores. Y haremos exactamente lo mismo. Entonces como pueden ver ahora tenemos todo instalado aquí. Y por último, necesitamos la escena de batalla. Ahí vas. Esa es la escena de batalla. Vamos a seguir adelante y dar vuelta todas
las posiciones de o en realidad todos los enemigos dentro de aquí, apagados. Ahí vamos. ¿Por qué todo llegó a una O? Porque está bien. Entonces como viste, porque he registrado aquí al gerente de batalla, cuando hice clic, pensé que había apagado sólo a los enemigos. Entonces todo se apagó. Este es uno de los, podrías pensar que esto fue estúpido y fue pero confía en mí, vas a caer en eso una vez de vez en cuando. De todos modos, todo se ha apagado el fondo de la batalla. Está bien. Entonces Gerente escena de batalla, voy a apagar la escena de batalla. Voy a ejecutar el juego y hay un error, que es un punto y coma. De acuerdo, Perdón por eso de vuelta en nuestro juego. ¿ Cuál es el problema aquí? No creo que haya ningún problema. Vamos a ejecutar nuestro juego. Esta es una flecha que acaba de aparecer. Ahí vamos. Caminamos por ahí cuando golpeamos la tecla B. De acuerdo, así como pueden ver, ya no
puedo moverme. Nuestra escena de batalla se ha activado, pero no está en la posición correcta. Entonces vamos a seguir adelante y moverlo. Entonces en inicio de batalla, encendemos la escena de batalla o nos secamos antes de activar la escena de batalla aquí dentro, vamos a seguir adelante y conseguir la transformación. La posición de punto será igual al nuevo vector tres. ¿ Cuál es la posición a la que estamos buscando ir? Bueno, es la cámara porque tenemos un conteo de seguidores. Entonces, dondequiera que esté nuestro jugador, queremos poner el objeto de juego de battle manager justo encima de él. Entonces vamos a acceder al dominio de punto de la cámara. Entonces cámara dot main, esta es la cámara principal y es la que realmente estamos en necesidad de
acceder a la posición transformada x coma duplicado, duplicado. Y ya conoces el simulacro. Por qué z y con, no
creo que ni siquiera necesitemos esto. Podemos mantenerlo como la posición transformada, z posición transformada. Y en realidad no sólo eso, no, necesitamos, tenemos que asegurarnos de que no pongamos el zed de la cámara. Porque si volvemos aquí, miramos a la cámara, miramos a dónde está eso. Por lo que está en 12.4 y la cámara principal está en menos 1.33. Así que asegúrate de que estoy en el zed está a menos diez. Por lo que necesitamos asegurarnos de que no accedamos a ese componente z o a este componente de aplicación, vamos a guardar eso. Bueno tenía un Enter guardar eso de nuevo en nuestro juego. Corremos el juego. Nos movemos, Pasemos a otro lado. Entonces estamos aquí cuando golpeamos la tecla B. De acuerdo, no vemos nada por alguna razón, mientras que la cámara principal. Entonces intentemos esto de nuevo una vez más. ¿ Por qué pasamos a una muy mala posición? Entonces B, C, es alrededor de las cámaras principales, 1013, llave NDB. De acuerdo, entonces algo no es correcto. La posición transformada de la cámara. Ah, bien, entonces el problema fue que si hacemos click en el fondo de batalla, verás aquí mismo que el fondo de batalla está a las 11.06. Entonces lo que tendremos que hacer es ponerlo en 0. Entonces ahora cuando ejecutamos nuestro juego, movemos a nuestro personaje. Digamos que pasamos aquí mismo, golpeamos el pico. Ahí vas. Está justo frente a nosotros. Claro, todavía no tenemos jugadores ni enemigos, pero lo estaremos haciendo en el próximo video. Entonces si estás disfrutando del curso, si te gusto como instructor, si te estás divirtiendo, por favor déjame una reseña. Me ayudó mucho y te veré en el siguiente video.
94. Agrega jugadores: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos y este video y ejecutamos nuestro juego. Se puede ver que tenemos a Draco y aquí tenemos el gradiente aquí incluso podemos moverlo. Tenemos que arreglar eso. Tenemos que flexionar también los colisionadores sobre ambos. Entonces cuando golpeemos la tecla B, inicia la batalla. Ahí vas. Se puede ver que todos los personajes activos de nuestra escena ya están listos para la batalla. Entonces, no perdamos más tiempo y empecemos. Oh, bien, Así que ahora es el momento de empezar a sumar jugadores y enemigos. Entonces, empecemos agregando a los jugadores. ¿ Quiénes son los jugadores? Bueno, lo son. Déjame simplemente llevarte donde como nuestros prefabs, personajes de
batalla jugadores, estos son nuestros jugadores. Entonces lo que haremos es que vamos a crear estos jugadores en nuestro juego. Y luego los vamos a encontrar usando el gestor de juegos y añadirlos a las estadísticas de los jugadores, que está aquí. Entonces los vamos a encontrar,
agregarlos a las estadísticas de los jugadores, luego llamar al gerente del juego, obtener las estadísticas de los jugadores de él, y añadirlas en nuestro gestor de batalla. Por lo que en primer lugar, tendremos que entrar a las Prefabs en el jugador. Y aquí lo vamos a poner justo aquí. Vamos a sumar al monstruo oscuro. No estoy seguro de cuál es su nombre. Ah, Draco. Draco. Tiene algunas estadísticas de jugador su nombre como Draco. Y aquí entra Draco y tiene, vamos a ver, XP actual, no sé, tal vez 72, Max HP, quizá 250 con un HP actual de 250, maxmin es 10, 10. Veamos destreza. Creo que tiene más destreza, vendió 40 defensa. Tiene una armadura grande, así que supongo que son diez. Y eso es todo. Y más adelante veremos qué pasa él puede empuñar, así que ahorraremos eso. Y ahora lo vamos a sumar y al prefabricado. Entonces vamos a crear una carpeta para los jugadores. Bueno, ese es el jugador y a los jugadores. Y luego cogeremos a Draco y lo agregaremos aquí y crearemos un prefabricado original. Así que golpea Enter. Ahora tenemos Draco eso es sumar un segundo el cual va a ser el 0. Y antes de que nos olvidemos de Draco, tenemos el renderizador sprite. No queremos tener el guión del jugador encima, así que vamos a quitar el guión del jugador, quitar el animate dos, y eso es todo. Creo que ya es suficiente. Y vamos a mover a Draco aquí arriba. Entonces la puerta de al lado es un poco demasiado grande, tal vez nuestras incógnitas, pero sin preocupaciones por eso lo pondrán aquí. Y luego el segundo jugador, ¿dónde está? Jugador? Ahí vamos. Él está aquí. Va a ser el esqueleto. Entonces vamos a buscar el esqueleto. Ah, y antes de que nos olvidemos, el, la imagen del personaje también se debe cambiar. Entonces vamos a asegurarnos de que esta sea la imagen del personaje y vamos a aplicar ese cambio. De acuerdo, creo que eso es todo lo que tenemos que hacer por Draco. Hagamos lo mismo por los esqueletos. Entonces, ¿dónde estábamos? Ganó el jugador. El sombrío. Copiar eso. Pégala aquí. Entrar. A ver, necesitamos elegir una de las imágenes. ¿ A quién deberíamos simplemente elegir éste? Y lo agregaremos también aquí, moverá el gramo que aparece junto a Draco. ¿ Y qué debemos agregar aquí? Entonces, ¿cuál es el máximo de HP? Creo que debe ser infinito ya que es un esqueleto. O hagamos algún tipo de esqueleto mágico. Por lo que el HP va a estar bajo. Entonces vamos a hacer 7070, digamos 120. 120 destreza. Digamos 30 o no, no. Hagámosle 50. Y la diferencia es la garantía. Y ahí vamos, ahorramos eso. Y también retiraremos el animador y retiraremos el componente reproductor. Y vamos a crear un prefabricado fuera de él. Entonces entraremos en las capas y vamos a sumar lo sombrío ya que un viejo prefabricado original lo ahorrará. De acuerdo, genial, así que ahora estamos listos. Entrémonos en nuestros guiones, en el gestor de batalla. Y vamos a extraer este método aquí solo para mantener todo limpio. Porque como ya he dicho, será uno de los guiones más largos que vamos a crear. Entonces esta será la batalla de configuración, pega Enter, e incluso podemos cerrarla para salvarla pero espacio, mantener todo muy limpio. Entonces aquí vamos a, en primer lugar,
como ya he dicho, ir a través de todas las estadísticas de los jugadores en el gestor del juego. Entonces vamos a crear un bucle for que va a ir y yo igual a 0, yo es menos que v0. Game Manager instancia de
punto, estadísticas de jugador de punto, longitud de punto. Este es un método de longitud de punto y aumentará en uno cada vez. Aquí vamos a comprobar si la stat del jugador a la que estamos tratando acceder o el objeto de juego de esos jugadores que realmente está activo en la jerarquía. Entonces vamos a comprobar si una instancia de punto manager, estadísticas de jugador de punto. En la posición yo punto es acto o punto, objeto de
juego, punto, activo y jerarquía. Entonces vamos a recorrer nuestras prefabs y ver si tenemos ese personaje disponible. Entonces vamos a volver a crear un bucle dentro porque no queremos realmente instanciar el prefab. Tenemos el prefabricado y aquí déjame mostrarte de nuevo. El prefabricado aquí es diferente al personaje de batalla que fuimos a instanciar. Por lo que queremos conseguir el nombre. Y en base a ese nombre, queremos ir a los Prefabs que están en el gestor de batalla. Entonces somos z los prefabs jugador. Ahí vamos. Y luego queremos comprobar si tenemos ese prefab disponible. Y luego lo vamos a poner con un personaje de batalla sobre él. Entonces esa es la diferencia entre el jugador regular y un personaje de batalla. Entonces estamos, estamos dando vueltas a través. Entonces porque ya estamos usando AI, vamos a usar j. Y puedes usar cualquier tipo de variable que quieras. Incluso puedes nombrarlo algo que sea más sofisticado y más indicativo de lo que estamos recorriendo, pero no creo que sea necesario por ahora. Entonces para j es igual a 0 y j es menor que el jugador prefabs. Jugador prefabs longitud de punto. Eso se debe a que estamos dando un bucle a través de los prefabs del jugador y éste debe ser j Vamos a comprobar si el jugador prefabs en la posición j que estamos mirando, el nombre del personaje del punto es igual al gestor del juego, por ejemplar, estadísticas de jugador de puntos. Y creo que en realidad podríamos haber dicho este jugador estadísticas en algún lugar de aquí y realmente hizo esto mucho más simple. No te preocupes por eso por ahora, Busquemos a través de una determinada posición que va a estar a la vista. Porque recuerden, el yo está haciendo un bucle a través de estadísticas
del jugador en el nombre del jugador del punto del gestor del juego. Y si hay uno de esos, entonces vamos a crear un nuevo personaje de batalla, nuevo jugador. Y va a ser igual a un fin aquí vamos a instanciar. Pero no sólo vamos a instanciar con
instancias previamente sin agregar ninguna rotación o posición. Pero esta vez realmente necesitamos una cierta posición para colocar a nuestro nuevo jugador. Y así vamos a instanciar. Y instanciate abrirá los corchetes. Hit Enter. Vamos a primero que nada, anote el jugador prefab en la posición j Así que si no recuerdas el formato del Instantiate, puedes verlo aquí dentro. Se puede ver que tenemos muchas variaciones. Por lo que podemos agregar un padre con una posición y la rotación y también un padre. Por lo que buscamos establecer el original. Y aquí ese es el objeto que queremos
instanciar la posición que vamos a poner como la posición que hemos creado para los jugadores en el video anterior, la rotación, que va a ser muy simple y luego el padre . Entonces, ¿cuál es la posición? Va a ser la posición de jugador. En la posición I, la posición. Entonces vamos a acceder a la posición de jugador en la posición I en la matriz. Y lo vamos a poner como la rotación, lo que nos dará la rotación por defecto de la transformación. No quiero cambiarlo. Y por último, queremos establecer al padre como la posición de punto jugador. Ahí vamos. lo guardamos. Entonces ojalá sepas lo que estamos haciendo aquí dentro. Estamos consiguiendo el objeto, el prefabricado que queremos instanciar. Lo estamos poniendo a la posición que hemos puesto en nuestro juego con el ajuste para el, déjame mostrarte lo que quiero decir. Así que recuerda cuando creamos las posiciones aquí dentro, posición de
jugador 1, 2 ,
3, las hemos añadido aquí mismo. Ahí están en la posición del jugador, así que los estamos configurando para que sean los mismos que aquí, como ponerlos con la misma rotación y el mismo padre y asegurarnos, quiero decir, siento que el padre sea la posición en. Entonces por ejemplo, esto se convertirá en el padre del jugador que estamos instanciando. Está bien, genial. Por lo que estos están apagados. Incluso podemos eliminarlos. No los necesitamos, pero los mantenemos sólo para asegurarnos de que estamos en la posición correcta. Bueno, eso explicado a fondo. Ahora queremos rastrear a nuestros personajes y para eso vamos a crear una lista. Por lo que queremos hacer un seguimiento de los personajes activos. Y eso va a ser, por
supuesto, un reto para ti. Y tu reto va a ser crear una lista. Por lo tanto, crea una variable que sea una lista de personajes de batalla tipo. Esta será la lista que haga un seguimiento de los caracteres activos y necesitarás inicializarla. Por último, añade capas a la lista en el método que hemos creado. Así que crea la lista e instanciala usando nueva lista. Seguro que ya lo sabes. Y por último, después de que terminamos de crear el jugador o de configurar el jugador o de añadir el jugador como quieras llamarlo, asegúrate de añadirlos a la lista de actos de personajes. Así que pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Espero que eso no fuera tan duro. Se moverá hacia arriba. Y aquí vamos a, vamos a crear un INR, tan campo serializado. Se trata de una lista de personajes de tipo batalla. Y se van a llamar los personajes
activos o solteros activos o como quieras llamarlos. Y va a ser una lista de personajes de batalla. Entonces aquí es donde instanciamos. Ahora es el momento de agregar a esa lista. Y después de que terminemos de crear e instanciar y configurar todo, entonces vamos a sumar a la lista este nuevo jugador que hemos creado. Y lo haremos llamando a los personajes activos dot add. Y esto, como puedes ver, anuncios, cualquier elemento o cualquier elemento de tipo, personaje de batalla. Así que punto agregar. Ahí vamos. Ya lo puedes ver. Entra abre los corchetes y añade el nuevo jugador. Entonces vamos a ahorrar eso. Volvamos aquí. Corremos nuestra ganancia y veamos si instancian. Entonces como pueden ver, tenemos a los personajes aquí dentro. Podemos moverlo porque,
porque estos son todavía tiene un cuerpo rígido, quítelos. Eso es gracioso. Entonces y necesitamos por supuesto cambiar el color que hay, pero por ahora no nos vamos a preocupar por eso. Entonces si vamos a este punto, golpeamos el BP y tenemos los personajes siendo actualizados aquí arriba. ¿ Por qué es eso? Porque vayamos al encargado de batalla y a la escena de batalla. Posición de jugador V. Por lo que la posición del jugador por alguna razón está ahí arriba. A pesar de que debió haber estado aquí. Eso se apaga. Detengan esto. Por lo que la posición de jugador está en 000. Veamos qué está pasando. Entonces la posición del jugador está en la posición 0, pero la posición uno está aquí arriba. Entonces tendremos que cambiar un poco. Entonces vamos a asegurarnos de que la posición del jugador. A ver, a ver. Entonces estamos poniendo la transformada esa posición en la posición de la cámara, y es el encargado de batalla. Por lo que es todo este gestor de batalla el que actualmente está en 0. El escenario de batalla está en 0, la posición de batalla está en 0. Por lo que ahora todas estas tres posiciones necesitan ser movidas aquí abajo a 0. Esto los cambiará a todos, así que sólo los moveremos como un solo objeto. Y ahora allá vamos, Estos están aquí. Guardemos eso. Intentemos eso otra vez. A lo mejor deberíamos modificarlo más adelante. Por lo que sólo voy a golpear la tecla B. Ahí vamos. Como viste, necesitamos modificar solo un poquito más. Y los bajaremos un poco. Ejecuta el juego. Vamos a movernos solo para asegurarnos de que no se trata de la posición del jugador. Ahí vamos, por lo que están en la posición correcta. hemos cargado. Y se puede ver aquí mismo al sombrío Draco y Jim. Por lo que espero que lo disfruten. Espero que lo hayas configurado todo. A lo mejor sus posiciones aún necesitan un poco más de modificaciones, pero creo que eso ya es suficiente por ahora. Y el siguiente video estaremos agregando a nuestros enemigos al juego. Entonces te veré entonces. Y por cierto, antes de irme, hay un pequeño truco que podemos hacer aquí. Entonces digamos que elegimos todas estas posiciones. Nosotros queremos ponerlos justo aquí, de acuerdo,
entonces, ¿cuál es la posición aquí para esos jugadores? En realidad podemos elegir uno de ellos o elegir. Por ejemplo, permítanme sólo ver. Haga clic aquí y copie el puesto. Salga del juego. Vuelve a elegir estos. Haga clic aquí, pegue las posiciones. Y ojalá esto funcione. No estoy seguro si eso va a funcionar. Vamos a ejecutar el juego. A lo mejor deberías hacer por cada uno de ellos había sido upcase. Obviamente eso no funcionó. Por lo que ahora cada uno de esos debería estar en una posición separada. Y lo moveremos un poco a la derecha, la derecha y hacia arriba. Vuelve a decir eso. En el vaso de precipitados. Sí, Ahí vamos. Creo que eso ya es suficiente por ahora. Entonces comete tus cambios, y te veré en el siguiente video.
95. Agrega Enemies: Bienvenidos de nuevo mis compañeros desarrolladores de juegos a un video totalmente nuevo. Y en este, cuando corremos el juego, notarás que cuando iniciemos una batalla, 00, ahora hay enemigos que resuelven llevar. Entonces ahora ya no estamos solos con nuestros jugadores y los antecedentes. También tenemos a nuestros enemigos encerrados y cargados para empezar a matarnos, pero no nos faltarán. Hasta entonces. No perdamos más tiempo y empecemos. Ah, bien, Así que ahora que estamos agregando jugadores, es hora de empezar a sumar a los enemigos. Pero antes de hacer eso, hay una cosa muy importante que tenemos que hacer y es que queremos importar las estadísticas de los jugadores. Entonces sigamos adelante y hagamos eso. Y justo después de añadir al nuevo jugador al acto de personajes, vamos a separarnos importando las estadísticas de los jugadores. Entonces aquí crearemos las estadísticas de los jugadores. Esta será una variable a la que solo llamaremos al jugador. Necesitamos una variable para hacer un seguimiento de todo. Por lo que no seguimos escribiéndolo cada vez. Y va a ser igual a la instancia de punto de gestor de juegos, que las estadísticas de capa en la posición i Así que ahora tenemos referencia a las estadísticas de jugador de GameManager uno. Entonces vamos a sumar todo. Entonces si quieres, puedes seguir adelante y hacer esto por tu cuenta, ver quién puede hacerlo más rápido. Y empecemos. Entonces el HP actual, no
voy a decir mucho porque ya conocemos el simulacro aquí. Podría incluso saltar por encima de lo chispeado. De acuerdo, ahí vamos. Por lo que hemos importado todas las estadísticas. Pero como pueden ver, estamos empezando a conseguir una batalla de inicio muy fea. Entonces vamos a extraer estas líneas aquí. Vamos a hacer clic derecho en acciones rápidas y refactorización. Y vamos a extraer el método. Y note lo inteligente que es, porque estamos usando el Ion aquí obviamente, y el I sólo está disponible a través de este bucle justo aquí. Lo que sucede ahora es que Visual Studio creará en
realidad un método que tome en un argumento I. Así que eso es súper útil y vamos a llamar a esto la capa de importación. Estadísticas golpearon Enter, y ahí vamos. Por lo que ahora tenemos las estadísticas importantes de los jugadores. Y entonces otra vez, vamos a elegir todo el código aquí dentro, ¿no? Haga clic en acción rápida y refactorización, extraiga el método. Y esto va a ser la adición de capas. Entonces, ¿qué tan genial es eso? Ahora, cuando la batalla comience con configurar la batalla, deberíamos haber configurado la batalla, añadiendo jugadores. Y luego dentro de agregar jugadores, pasamos por un bucle, elegimos las prefabs, los instanciamos, los agregamos al personaje activo. Después importamos las estadísticas de los jugadores que está aquí, y hacemos todo esto y así sucesivamente. Entonces como puedes ver, todo está limpio, cortado y comprensible. Es muy fácil de leer. Pero el siguiente paso es empezar realmente a sumar a los enemigos. Y de nuevo, ya estoy demasiado cansada para hacer esto. Entonces va a ser tu reto, No te preocupes, es bastante similar a cómo sumamos a los jugadores. Por lo que necesitarás recorrer los enemigos que quieras. Necesitas asegurarte de que el campo no esté vacío porque no queremos ningún vacío y amines. Entonces necesitarás crear un segundo bucle para recorrer las prefabs enemigas, igual que hicimos en el anterior. Cuando queríamos agregar, los jugadores necesitarán comparar el nombre del personaje prefabs, los enemigos engendran. Y necesitarás instanciar al enemigo si hay un partido y si nosotros,
si caemos por alguna razón, ponemos la posición de los enemigos en el lugar equivocado lo cual nunca sucedió. Entonces necesitarás también ajustarlos manualmente en Unity. Pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Por lo que vamos a empezar por recorrer un looping. Es igual a 0. Yo menos que los enemigos engendran longitud de punto. Entonces estamos consiguiendo que los enemigos engendren aquí mismo. Y le vamos a sumar uno cada vez. Entonces vamos a comprobar si el engendro de los enemigos no está vacío. En la posición i por supuesto, porque no queremos comprobar por todo. Queremos comprobar si hay un puesto determinado. Y así es como comprobamos si una cadena está vacía o no. Espero que no te tropezaran en el acto. Entonces vamos a crear un bucle y un lado de j Eso va a recorrer todos los prefabs. Y j plus. Y luego vamos a revisar las cámaras de la máquina central apagadas. Si el enemigo prefabs en la posición j punto nombre del personaje es igual a los enemigos engendrados en la posición I. Eso significa que podemos instanciar a un nuevo enemigo, que va a ser de tipo personajes de batalla. Y lo llamaremos nuevo enemigo. Va a ser igual para instanciar. Entonces ella puerta, abra los corchetes, agregue una entrada aquí. Va a ser, el objeto va a ser el enemigo prefabricado en la posición j, y la posición enemiga en posición ojo. ¿ Qué es esto? Una amina? Una amina es posición me dieron rotación de posición. Y por último, los padres deberían ser la posición enemiga a la vista. Ahí vamos, guardamos eso. Y también los vamos a sumar a los personajes activos. Por lo que los personajes activos punto se suman como el enemigo, es el nuevo enemigo. Ahí vamos. Cierra eso, guarda eso de nuevo en Unity. Espero que hayas entendido esto. Es casi 100% lo mismo que agregar el de un jugador. Simplemente pasamos por diferentes tipos de prefabs enemigas. Verificamos si es diferente a 0 o diferente a vacío. Entonces porque no queremos agregar algo que esté vacío. Y esto es sólo un pequeño cheque aquí. Por lo que de vuelta en Unidad, guarde eso. Vamos a ejecutar el juego. Entonces iniciamos la batalla, pero quiere, oh, bueno, empezó la gotera. Ahí vamos. No hay nada ¿hay enemigos? ¿ Hay alguien ahí fuera? Sí, ahí vamos. Tenemos a los Brujos, la página principal, y nada más. ¿ Y dónde están? ¿ Dónde estás? ¿Dónde diablos está eso? Ah, así que están ahí arriba. Ok, OK, OK, OK. Entonces tendremos que mover todos estos hacia abajo. Y veamos posición enemiga. ¿ Por qué hay? Por lo que estas son la posición enemiga. A lo mejor debería volver a ser 0. Volvamos a ponerlo a 0. 0, no, no, no, no debería estar en 0. O tal vez debería, ¿por qué no? Entonces vamos a mover toda la posición del jugador al jinete. Pero y luego los vamos a mover quizá hacia abajo, ejecutar el juego. Y esto debería haber estado más bien organizado, pero no se preocupe por eso. Vamos a moverlas hacia abajo. Yo me estoy moviendo solo mantenga pulsado, turno, haga clic en todos ellos, muévalos hacia abajo en algún lugar. De alguna manera ejecutar el juego. Tenía el BP. Oops, todavía hay ahí arriba. Sí, Ahí vamos. Así es como deberían estar luciendo. Entonces vamos a salir del juego. Esos de nuevo, muévalos hacia abajo, pero muévalos hacia la derecha. Ejecuta el juego. Tenía que estar, ahí vamos. Estos son nuestros enemigos parados frente a nosotros. Por lo que espero que lo disfruten. Espero que hayas hecho el reto. Espero que no fuera demasiado duro. Espero que no te molesten las razones por las que estas no están muy bien alineadas. A lo mejor hay una solución más rápida, tal vez la encontremos más adelante. Espero que estés disfrutando, espero que estés cometiendo tus cambios y te veré en el siguiente video.
96. Cómo poner el cambio en el sistema de combate en torneo: Bienvenido de nuevo Mis desarrolladores de juegos favoritos a un video completamente nuevo y éste, cuando ejecutemos el juego. Cuando iniciamos la batalla, tenemos a los enemigos, tenemos los botones, podemos atacar, conseguir objetos, ejecutar la magia, Muy cool. Se puede ver que aquí tenemos un giro. Entonces cuando tuvimos el Anki una vez, dos veces, cuando se trata de la tercera vez, porque ahora los enemigos están atacando, no
tenemos acceso a la balanza. Por lo que ahora sólo los enemigos nos atacan. Ahí vamos. Y luego cuando terminamos, porque tenemos cinco personajes, iniciamos el giro por supuesto en 0. Entonces ahora cuando queremos ir a cinco, volvemos a 0. Estamos de vuelta en el esqueleto y podemos volver a acceder a nuestros botones y objetos de ataque, ejecutar magia y así sucesivamente. Entonces, no perdamos más tiempo, y empecemos. De acuerdo, ahora es el momento de poner el turno en combate por turnos. Esa es una mala broma. Empecemos. En primer lugar, hubo un ligero problema aquí cuando estamos montando la batalla. En realidad ponemos esta condición dentro de aquí. Pero tenemos que asegurarnos, y necesitamos saber también que cuando iniciamos una batalla, necesitamos asegurarnos de que haya una batalla activa para todos estos. Entonces vamos a quitar el padecimiento de aquí. Lo vamos a sumar aquí. Y vamos a quitar este corchete y golpear la pestaña Shift. Ahí vamos. Cambia el limpio todos los espacios en blanco aquí. Y ahí vamos. Todo debe ser correcto ahora mismo. Y por último, vamos a sumar uno más de estos aquí. Y todo es bueno lo que hago. Más pequeño, de verdad. De acuerdo, Entonces, ¿puedes ver esto claramente? Está bien. De todos modos, sigamos. Extraigamos este método también. Esta es la adición de enemigos. Así que haga clic derecho, haga clic en Acciones y refactorización, extraer método agregando enemigos. Y como puedes ver, también
conseguimos que los enemigos engendrados se envíen a este método y aquí e incluso crea todo. Entonces, ¿qué tan genial es eso? Creo que eso es realmente genial. puede ver que todos están aquí abajo importando, agregando, configurando, etc. De acuerdo, a los negocios. Ahora tenemos que poner el turno y el combate, el combate por turnos. Vamos a crear, en primer lugar, un entero que mantenga la cuenta, así que es el término actual. Y luego vamos a crear un booleano, que va a estar haciendo un seguimiento si estamos esperando nuestro turno como jugadores. Por lo que a la espera de un turno. Si estamos a la espera del turno, hay un par de cosas que podemos hacer. Eso lo vamos a salvar. Y por último, necesitamos también obtener un campo serializado de un objeto de juego, que es el titular del botón UI. Entonces botón UI más viejo. ¿ Y por qué necesitamos esto? Bueno, porque cuando no es el turno del jugador, queremos, no
queremos que los botones estén disponibles para que ellos presionen. Entonces esta es una ranura que vamos a llenar. Y por cierto, estas dos variables no necesitan ser campos serializados, pero queremos ponerlas como tales porque queremos
asegurarnos de que todo funcione correctamente. Por lo que ahora una actualización, vamos a comprobar si es batalla activa. Entonces estamos en una batalla activa. Y si estamos a la espera de turno, entonces eso fue, entonces vamos a comprobar si el personaje activo en el turno actual es jugador. Pero realmente no podemos saber si es un jugador porque el jugador de aquí es un campo serializado. Por lo que quizá podamos hacerlo público. Pero no, tenemos una manera mucho mejor. Y va a ser un reto que es devolver al jugador. Por lo tanto, crea un método en el script de personaje de batalla que regrese si el personaje es un jugador. Así que pausa el video ahora mismo. Hacer el reto. Y si quieres ir un kilómetro extra después de terminar de comprobar si el personaje activo en la popa. Como jugador, luego encienda los botones. Si no, apáguelos. Bienvenido de nuevo. Ese fue un reto bastante sencillo, creo así que vamos a crear un bool público. Es jugador, retorno, es jugador. De vuelta aquí. Es jugador. Si es cierto, eso es justo. Esto. Y si es cierto, entonces el titular del botón UI 0 true. Else UI titular de botón. Pero triste, activo, falso. Guarda eso. De acuerdo, genial con eso hecho el siguiente paso es tener una forma manual de agregar un giro. Entonces vamos a terminar aquí, comprobar si hay entrada. Si entrada, pero consigue la clave hacia abajo. Código clave, que código clave aún no se ha utilizado. Y creo que no hemos usado y esto representará el próximo término. Entonces aquí, ¿qué hacemos cada vez que vamos al próximo término? En realidad, vamos a crear el método. Entonces a continuación, gire. Y lo vamos a crear aquí. ¿ Dónde debemos sumar el inicio de la batalla? Deberían quedarse con estos cuatro. Asumémoslo aquí abajo. Entonces va a ser un privado o tal vez público. Mantengámoslo privado si sí lo necesitamos y otro guión, fácilmente
podemos hacerlo público, pero no lo creo. Tan privado, vacío. Siguiente turno. ¿ Y qué estamos haciendo aquí? Bueno, en primer lugar, necesitamos fijar el término actual plus, plus. Lo estamos incrementando por uno. Pero hay una cosa más de la que necesitamos hacer un seguimiento. Y eso si el turno actual para conseguir algunos mayores que los personajes activos cuentan. Entonces si el turno actual por favor, es mayor o igual al acto de caracteres conteo de puntos. ¿ Qué haremos ahora? Lo volveremos a poner a 0. Entonces, ¿qué está pasando en todo esto? En primer lugar, empezamos comprobando si estamos en una batalla activa y estamos esperando nuestro turno. Por lo que a la espera de turno se puede aplicar tanto a los personajes activos, que son jugadores y enemigos, que no ataquen, esperan su turno para llegar allí. Estamos revisando el acto de personajes en el término actual. Por lo que el actual término pasa por todos los jugadores después por todos los enemigos. ¿ Por qué? Porque somos ante todo, creo que los jugadores, y los sumamos aquí en la lista de personajes activos. Después agregamos a los enemigos, lo que hacemos más adelante. Entonces, en primer lugar, tenemos una lista de todos los jugadores. Entonces debajo de ellos, inmediatamente tenemos a todos los enemigos. Entonces estamos pasando por ellos. Verificamos usando el giro actual. Consigue el personaje activo. Si es jugador, entonces tenemos el titular de botón. Si no es un jugador, eso es un enemigo, no podemos atacar. No deberíamos ver el soporte de botones para evitar cualquier problema. Y vamos a la siguiente vuelta cada vez. ¿ Cómo hacemos eso incrementándolo en uno? Y luego si se sobrepasa cierto límite, nos detenemos. Una cosa más que debemos tener en cuenta es que cuando iniciamos nuestro juego, cuando estamos iniciando la batalla, necesitamos asegurarnos de que esperar el turno sea cierto. Y que el término actual es. Ahora aquí dentro. Se puede decir que es o 0. Entonces ahí vamos. De inmediato comenzamos con un jugador con el personaje principal, el jugador principal. O podemos crear un rango aleatorio. Tan aleatorio ese rango, y así sucesivamente. Va a ser entre 0 y el carácter activo. Ahora bien, creo que esta es una forma mucho mejor de iniciar una batalla y cuando se trata del juego real. Pero para fines de prueba, prefiero que empiece en 0. Por lo que siempre podemos asegurarnos de que podemos presionar la tecla End para ir a donde queramos y no solo tenerla comienza en algún lugar aleatoriamente. Entonces con eso hecho, vamos a ahorrar, voy a guardar esto aquí como comentario para aquellos de ustedes que quieran tener un personaje aleatorio empieza
a atacar cuando comience la batalla, vamos a entrar a Unidad. Voy a tomar un respiro. De acuerdo, ahora vamos a correr nuestro juego. Nosotros vamos a ir al encargado de batalla. Tenemos el término actual como 0. No estamos esperando ningún término. Tenemos el pico. Ahora estamos esperando un giro. Cuando golpeamos al Anki, vamos al turno número uno, luego al número 2345678. Y obviamente no vemos el Lienzo de batalla porque lo hemos apagado. Ahí vas. Entonces ahora intentemos esto otra vez. No agregamos el titular. ¿ Por qué se apagó la batalla Lienzo que acabo de notar ese menú. Vamos a encender el Lienzo de batalla. Escena encendida y EU, mientras que el menú. Entonces este es el menú, tiene todos los botones. Ahora, podríamos apagar todo el menú, pero creo que es mejor simplemente crear un objeto de juego. O, pero tenemos el menú que tiene la grilla, ¿no? De acuerdo, Así que el diseño de la cuadrícula, Vamos a apagar todo el menú. Eso no es grande. Y solo agreguemos el menú cuando sea nuestro turno, los directivos desaparecen. Sin embargo, puedes, pero necesitas mover el diseño de la cuadrícula, asegúrate de hacerlo. Entonces vamos a guardar eso. Vamos a sacar la escena de batalla, ejecutar nuestro juego. Ve a la batalla. Ahí vas. Entonces ahora cuando estamos ¿dónde está el gerente del baño? Entonces voltea a 0. Cuando llegamos a convertir uno, estamos en tal vez empezamos en el esqueleto ahora estamos en señor no lo sé. Después un Jimmy, luego ahí vamos. Ya no podemos hacer clic en los botones. Otra vez. Pasamos por estos dos. Estamos de vuelta a 0 en el esqueleto y podemos usar nuestro botón. Entonces todo está funcionando. Espero que estés disfrutando de este curso. Espero que hoy aprendas una valiosa lección. No estoy seguro de qué fue eso. Algo sobre quizá giros en movimiento. De todos modos, vamos a cometer nuestros cambios. Ahora. Nosotros el turno en turno combate basado, combate de nuestros cambios. Y te veré en el siguiente video.
97. Toma los vueltos: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. No tengo nada que mostrarte. Simplemente hacemos un par de cosas. Actualizamos los batallados, comprobamos si los jugadores son que perdemos si los enemigos o que
fuimos y no podemos implementar aún porque ninguno de nosotros puede atacar. Pero en el siguiente video, también
nos aseguraremos de que el enemigo pueda atacar y asegurarnos de que funcione. Pero este es un video muy crucial y uno que requiere mucha concentración de él. Así que ponte tus gorras de pensamiento, pon tu zona de gen de concentración. ¿ Eso es ni una palabra? Y empecemos. Ah, está bien, Así que ahora nos estamos moviendo de turno en turno. Pero, ¿qué está ocurriendo en realidad? Bueno, nada. ¿ Qué estamos haciendo entre giros actualmente nada. Pero vamos a cada término actualizar la batalla. Entonces sigamos adelante y actualicemos la batalla. ¿ A qué me refiero con botón Actualizar? Pasamos por todo el acto de personajes. Verificamos quién tiene algún HP actual que es 0. Si tiene 0, vamos a matar a ese personaje. Y entonces también vamos a comprobar si todos los, digamos enemigos están muertos, entonces ganamos la batalla. Si todos los jugadores están muertos, entonces perdemos la batalla. Entonces, empecemos. Vamos a abrir nuestro guión. Y aquí, en el próximo término es donde actualizamos la batalla. Pero antes de hacer eso, tenemos que asegurarnos de que la espera de turno esté establecida en verdad. Por lo que en realidad estamos esperando un giro. Y luego vamos a actualizar batalla, cerrar eso. Y ahora vamos a generar este método. Ahí vamos, actualización batalla. Entonces, ¿qué estamos haciendo aquí? En primer lugar, vamos a crear dos variables. Y te diré cuando los creemos o lo son. Entonces bool enemigos o vamos a llamarlo todo. Enemigos son eso y es igual a cierto. Y una segunda. Todos los jugadores son eso. Entonces, ¿puedes por favor salir del camino? Gracias. Todos los jugadores son deuda. ¿ Y por qué es esto cierto? Bueno, a medida que nos desplazamos hacia abajo, verá al final de esta batalla de actualización, va a ser un método bastante grande. Ya verás que vamos a pasar por todos los HP de los personajes activos. Y si uno de ellos tiene un HP que es diferente a 0, entonces vamos a poner uno de estos en falso y no vamos a entrar en la condición. Ya veremos cómo se ve eso a medida que seguimos por ahora. Tendrás que confiar en mí. Entonces vamos a crear un bucle for, que es un int de 0 menos que los caracteres activos longitud de
punto, conteo de puntos porque no es una matriz, es una lista. Y le vamos a sumar uno cada vez. Entonces vamos a comprobar si los caracteres activos en la posición I, el HP actual, es menor a 0. Si lo es, entonces vamos a ponerlo en 0. ¿ Por qué estamos haciendo esto? Bueno, porque si miramos aquí, nada aquí en realidad, tú, cuando encendemos el panel, recuerdas que tenemos esa barra de los jugadores. No queremos que se vuelva negativo. Por lo que queremos asegurarnos de que cuando llegue a menos de 0, porque a veces el daño que aplicamos puede llevar el HP a menos de 0. Queremos volver a ponerlo en 0. Tan activo carácter en la posición I, lo que hay siempre API it porque los corchetes en al lado no pueden HP es igual a 0. Entonces continuamos por f V, carácter
activo punto AHP es igual a 0. Entonces vamos a matar al personaje aquí dentro. Entonces sólo voy a añadir un comentario, matar personajes o personaje o lo que sea. ¿ De acuerdo? Pero si no lo es, así que si el punto de carácter que punto HP actual no es igual a 0, entonces vamos a crear otra aquí. Y vamos a comprobar si ese personaje que no tiene una H B que es igual a 0 es un jugador. Entonces si el punto de carácter activo I dot es jugador, vamos a poner v a todos los jugadores que en falso. Y si es lo más, si S es el enemigo, que todos los enemigos son iguales a falsos. No son todo lo que todavía hay uno de ellos vivo. Entonces, ¿por qué estamos pasando por todo este problema? Porque nosotros, no queremos ir cada vez por todos los enemigos y luego comprobar que todos estén vivos. Pensamos que todos están muertos. Y luego si uno de ellos está vivo, entonces ya no son eso. Y podemos continuar el juego porque necesitamos o tener a todos los jugadores que para perder el juego o a todos los enemigos que para ganarlo. De acuerdo, entonces otra vez, vamos una vez más cómo funciona este código. Estamos pasando por los personajes. Estamos ante todo, comprobando si es menor a 0, lo
estamos configurando a 0. No queremos ningún número negativo. Voy a quitar los corchetes, mantenerlo sencillo. Entonces estamos comprobando si es igual a 0. Por lo que esta condición debió haber pasado por esto. O por ejemplo, tal vez por una coincidencia no se va por debajo, es exactamente 0. No se preocupe por eso. Matamos al personaje. De lo contrario. Si no es eso entonces estamos comprobando si es un jugador o si es un enemigo. Si es un jugador, dijimos que todos los jugadores están en eso todavía, si es un enemigo, que todos los enemigos están en eso. Y aún. Ahora aquí dentro, después de que terminemos de recorrer, necesitamos revisar por los enemigos y los jugadores para luego decidir si ganamos o perdimos. Y eso va a ser parte de tu reto. Comprueba la deuda. Y antes que nada, necesitarás crear una condición que compruebe si todos los enemigos o todos los jugadores son eso, entonces necesitarás imprimir un mensaje ganador o perdedor. Y te voy a dar una pista sobre cómo puedes agregar un o. Tendrás que revisar para todos usando estos dos símbolos. Así que pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Entonces primero que lo primero, comprobamos si los enemigos son eso o todos los enemigos están muertos, o todos los jugadores o eso. Entonces entramos en esta condición. Verificamos si fueron todos los enemigos, entonces vamos a imprimir que ganamos. De lo contrario. Eso significa que son todos los jugadores. Nosotros vamos a imprimir. Perdimos. O también podemos, creo que si todos los jugadores son eso, entonces vamos a imprimir que perdimos. Esto es solo por un paso extra de seguridad. Y por último, ¿qué pasa después de que terminemos? Vamos a salir fuera de ti. Vamos a acceder a la escena de batalla y la estamos apagando. Por lo que necesitamos agregar el punto y coma. Escena de batalla. Los puntos están activos, falsos. Y vamos a acceder al gestor de juegos y asegurarnos de que el jugador pueda volver a caminar. La batalla está activa como igual a falso. Por lo que ahora el jugador puede caminar de nuevo. Y por último, el es batalla activa se pone en falso. Genial, así que vamos a guardar eso. Y desafortunadamente aún no hay forma de probar esto hasta que uno de nosotros, ya sea nosotros o el enemigo ataca. Entonces en el siguiente video, vamos a asegurarnos de que el enemigo pueda atacar. Te veré en ese video y me aseguraré de comprometer todos tus cambios y adiós.
98. Attacking con los enemigos: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, hemos hecho que el combate basado en turnos sea más automático y dinámica. Entonces cuando iniciamos la batalla, podemos ver que el término 0 convierte a uno deterministas a ahora cuando determina 3, se apaga y se puede ver que el turno va por sí mismo y luego otra vez por suyo y se remonta a 0 porque los enemigos tienen terminó de atacar. Entonces, ¿qué tan emocionante es eso? ¿ Tiene? Lo sé, lo sé. No perdamos más tiempo y empecemos. O K. Entonces queremos esperar entre cada ataque enemigo. Eso significa que necesitamos un coworking. ¿Por qué hacemos eso? Bueno, porque no queremos que el enemigo ataque como popup, pop y luego se ha ido. No, queremos conseguir un popup. Ahora queremos tener papa que darse cuenta de lo que pasa. Ver nuestra vida se hace un poco más pequeña, ver dónde se hizo el daño. Y 10 otra vez. Entonces eso es lo que queremos hacer. Para eso, vamos a necesitar crear una co-rutina. Y para eso, te voy a emitir un reto. Y tu reto es crear un recubrimiento. Por lo que configura la ponderación para volteada a falsa. Esto estableció la ponderación denominada falsa. Esto es al inicio de la coroutina. Entonces tendrás que esperar 1 segundo. Entonces necesitarás llamar método de ataque enemigo se crean más adelante. Después tendrás que esperar otro segundo y luego llamarás al siguiente término. Entonces con toda esa información, pausa el video ahora mismo. Incluso puedes agregar un punto más aquí. Y si quieres pensar en un paso extra que quieras hacer, ¿a dónde llamas a este cortejo? De todos modos, por ahora, tu reto es crear la rutina de puntuación. Pausa el video ahora mismo, y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Entonces, ¿dónde estamos? Vamos a cerrar el próximo término, cerrar la batalla de actualización. Y aquí dentro vamos a crear la coroutina. Entonces es un enumerador de ojos públicos. Y va a ser la corutina de movimiento enemigo porque es el movimiento del enemigo. Entonces vamos a primero que nada, poner la ponderación en falsa. Entonces vamos a ceder, regresar. Nuevo. Espere cuatro segundos, 1 segundo. Entonces vamos a NMI, eso lo creará y solo un poco. Entonces rendiremos retorno, esperaremos nuevo. Y entonces vamos a ir al próximo término. Está bien, genial. Adelante y extraigamos esto o generemos este método. Entonces aquí dentro vamos a hacer un par de cosas. En primer lugar, queremos una lista de todos los jugadores a los que podemos atacar. Por lo que crearemos una lista de tipo. Y porque por ahora estamos pasando por los índices, te
mostraré a lo que me refiero en tan solo un poco. Por lo que los jugadores iguala a una nueva lista de int. Y ahora queremos ir a un rango aleatorio. Ahora, no queremos ir, por ejemplo, siempre al 0. Por lo que queremos tener un rango aleatorio de jugadores. Entonces vamos a crear una variable aquí que va a ser la capa seleccionada para atacar. Y va a ser igual a los jugadores que tenemos en un rango de puntos aleatorio. Al azar ese rango. ¿ Por qué no me estás dando el rango? Esperanza. De acuerdo, bienvenido de nuevo. Tan aleatorio.randrange. Hice que funcionara por la fuerza. ¿ Cuál es el problema aquí? Se confundió entre, como se puede ver, motor
Unity dot random y el sistema de uso, System.Out random. Entonces solo comento el sistema fuera ojalá no tenga muchos problemas de esto. Sigamos en random.randrange. Tenemos el mínimo. Entonces, ¿cuál es el mínimo? Es el 0 porque empezamos en 0 desde el número de jugadores y después los jugadores. Pero cuenta. Y cerramos esto y si olvidaste qué es los jugadores, ¿dónde está? Lo colocamos en algún lugar aquí donde creamos la lista. De acuerdo, Entonces el listado aquí, elegimos de entre los jugadores que tenemos. Y ahora lo que vamos a hacer es pasar por un bucle for. Y va a pasar por los personajes activos, conteo de
puntos, aumentando yo cada vez. Vamos a comprobar si es jugador. Tan activo personaje en posición i punto como jugador, y su HB es mayor que 0. Entonces vamos a sumar a los jugadores VI. Entonces, ¿qué tenemos ahora? Tenemos una lista de jugadores que podemos elegir de forma aleatoria para atacar agregando su posición a esta lista de enteros, luego seleccionando uno de ellos para ser atacado. Con eso hecho, lo último de lo que tenemos que asegurarnos es que en realidad llamamos corutina al enemigo. Y eso va a pasar aquí dentro. Después de configurar el botón para que sea falso, podemos seguir adelante y abrir los corchetes rizados aquí. Y vamos a seguir adelante y llamar al recubrimiento. Por lo que empieza el movimiento enemigo de rutina, cortejando. Entonces cuando apaguemos el botón, tenemos el recubrimiento y vamos a extraer este método sólo para mantenerlo todo limpio. Se va a llamar Activar botones de capa. ¿ Ese es un buen nombre? O comprobar si se activan los botones del jugador o los titulares de botones de
verificación, se habían introducido los titulares de botones de capa de comprobación Y voy a mover este método. ¿ Dónde debo mover un o debo guardarlo aquí sin embargo? Guardémoslo aquí. Guardémoslo aquí. Tenemos la batalla de inicio, el movimiento enemigo, Curtin, guardar todo eso. De acuerdo, entonces vamos a entrar en nuestro juego y vamos a probar esto. Abrimos la batalla. Y el, Por cierto, también podemos crear algún tipo de
tener algún tipo de música tocar de manera diferente cuando entramos en una batalla. Entonces vamos a tratar de ir al siguiente término,
1, 2, y ahora vamos a hacer un seguimiento del término actual. Entonces cuando teníamos los tres, esperábamos un poco, 1,
2, trabajando también algo salió mal ya que el doble clic no debe ser negativo. De acuerdo, Así que índice fuera de rango, índice debe no negativo y menor que el tamaño del parámetro. ¿ Puedo saber por favor? ¿ A dónde te refieres? Oh, bien, entonces sé cuál es el problema. El problema estaba aquí. Entonces creamos una lista, está vacía, y luego tratamos de pasar por un rango en el conteo. Este es un gran no-no. Entonces lo que tenemos que hacer es ponerlo aquí abajo. Y ahora cuando ejecutamos nuestro juego, ya no tenemos este problema. Corre el juego, dale al geeky. Y ahora puedes ver, así que gira un 0, lo
incrementamos en 1, 2, 3, se apaga, busca, y luego de vuelta a 0. ¿ Qué tan guay es eso? Por lo que ahora estamos de vuelta esperando su turno, por lo que esperando que juguemos. Entonces espero que hayas disfrutado y espero que creas la coroutina. No fue demasiado duro. Espero que todo este código no sea demasiado confuso. Si lo es, sí recomiendo la verdadera mirada hacia atrás en un cheque cada línea, asegúrate de entender lo que está pasando porque a medida que avanzamos, las cosas se van a poner cada vez más complejas. Esto es muy importante para entender lo que está sucediendo. ¿ Por qué estamos llamando a ciertas cosas y a ciertas posiciones? ¿ Por qué estamos llamando a este fin aquí? Bueno, porque este es el lugar perfecto para llamarlo, podemos iniciar de inmediato la coroutine tan pronto como se desactive el botón. Entonces te veré en el siguiente video donde realmente entendemos dónde está atacando
el enemigo creando efectos encima de los jugadores que están siendo atacados. Entonces te veré ahí.
99. Efectos de ataque: Bienvenido de nuevo a mis compañeros desarrolladores de juegos. Y en este video vamos a estar creando algunos efectos de ataque. Entonces tenemos el aligeramiento, tenemos el fuego azul, y tenemos un corte. Sí, Esos son los ataques voy a crear el resto. Te dejaré para que encuentres tu propio ataque. Grasas, crearlas todas, y no perdamos más tiempo. Todos estos están disponibles en arte de juego abierto y empecemos. De acuerdo, entonces ahora nuestros enemigos están atacando. Están escogiendo a qué jugador quieren atacar. Pero no hay efecto, y necesitamos algún tipo de efecto para que nuestro juego sea bueno. Entonces sigamos adelante y creemos un par de efectos. Entonces podemos ver justo aquí y los personajes enemigos, sprites que ya tenemos esta bala mayor y estos tentáculos que podemos usar y las bolas de fuego son especialmente agradables. Entonces voy a usar estos y también voy a entrar a los sprites y crear una nueva carpeta aquí. Estos van a ser los efectos de ataque. Y te he proporcionado un par de efectos de ataque como siempre, estos son todos desde arte de juego abierto, así que voy a añadir este aquí. Esto es para el corte regular, para el ataque regular. Después tenemos la bola de fuego espumosa de vuelta, y vamos a usar esta. Añádalo aquí. Es un poco grande. Entonces podemos decir que esto es un rayo porque ya tenemos tal vez fuego o podemos usar diferentes efectos habrá yo creo que fuego. A ver. ¿ Qué tenemos aquí dentro. Entonces los personajes, déjame sacar todo. Entonces este fuego y éste es fuego. Para que podamos usar esos. Si quieres. Puedes crear un impuesto para los enemigos por separado y 40 jugadores por separado. Creo que podemos usar ambos pueden ser algunos especiales como el mago o
los tentáculos se pueden usar sólo para los enemigos y los otros se pueden entrelazar. ¿Sabes a qué me refiero? Entonces sigamos adelante y movamos esos a los sprites del hecho del ataque. Entonces ahí vamos. Aquí tenemos estas bolas de fuego. Vamos a ponerlos todos en una sola línea para crear una animación. Entonces sigamos adelante y hagamos eso. Y si pongo esto, oops, vamos a la escena. Y esos se ven como en el jugador. Añadamos esto aquí. Y es, hagámoslo el fondo. Y es un poco pequeño. Entonces voy a elegir todos estos y hacerlos 32. Veamos qué tan grande es eso. Sí, eso es lo suficientemente grande, creo. Ahora sigamos adelante y creemos una animación. Entonces entraremos a nuestra ventana. O vamos a crear un objeto de juego vacío aquí. O, ya sabes, mantengamos esta animación de corte. O simplemente corta lo que quieras. Está en el fondo, debe estar en el fondo de batalla o personaje de batalla, personaje de batalla uno. Guarde eso porque queremos que estos ataques estén encima de los personajes. ¿ De acuerdo? Entonces vamos a ir a la Ventana, vamos a las animaciones. Animaciones docket junto a nuestro juego. Y aquí vamos a dar click en este, dar click en Crear. Si vamos a las animaciones de Activos, pasamos un tiempo desde que fuimos a las animaciones. Animaciones, probablemente deberías hacer tu tarea ahora mismo. Así que corte y asegúrese de recordar cómo funcionan las animaciones. Por lo que estamos creando una animación de barra inclinada. Vamos a seleccionar todos estos y vamos a arrastrarlos aquí. Entonces ahora cuando lo ejecutamos, sí, ahí vamos. Esta es nuestra animación. A lo mejor hacerlo un poco más lento. Entonces, vamos a ver. Sí, creo que esto es lo suficientemente bueno ahora hay muchos otros que puedes agregar. Por lo que aquí puedes ver que además la bola de fuego y el todo hay esas alternativas, diferentes colores, diferentes tipos de barras. Ahí está el clásico, estoy usando el clásico. Ahí está éste y esos y los otros usan el que encuentres que más te convenga. Esto es puramente para demostración y creo que es un buen ejemplo. Pero hay una cosa más que queremos hacer, y eso es al final se puede ver aquí dentro. Por lo que este primero 1, segundo, 1 tercero, cuarto, y el quinto. Y luego quiero apagarlo. Por lo que en este punto, quiero presionar el botón Grabar y quiero que el renderizador
sprite de esta varilla se apague. Entonces, ¿cómo se ve esto? Entonces cuando corremos nuestro juego, como se puede ver al final, se apaga y luego volveremos a empezar todo. Ahí vamos. Y ahora también podemos ir a las animaciones y quiero asegurarme de que no sea un lazo. Por lo que la barra no hace bucle, guarde eso. Corre. Ahí vamos, y se apaga al final. Ahí vamos. Está bien, genial. Ahora lo siguiente que hay que hacer es que queremos agregar un guión a estos ataques. Entonces vamos a entrar en los guiones. Y me acabo de dar cuenta de lo mucho que ya hemos hecho eso, tan increíble. Entonces cuando el sistema de batalla, vamos a crear un guión C-sharp llamado Tech fact. O sea, ¿recuerdas cuando sólo teníamos un par de carpetas? Sólo un par de carpetas, un par de scripts de C Sharp. Ahora mira cuánto tenemos y cuánto hemos organizado y también cuánto hemos sumado a los maestros. Es decir, mira cuánto necesitamos desplazarnos hacia abajo. Me siento muy orgulloso de mí mismo y de la vista por supuesto. Pero de todos modos, volvamos a los negocios. Vamos a adjuntar el ataque, afectar la varilla de animación. Vamos a hacer doble clic. Y entonces aquí vamos a hacer un par de cosas. Entonces vamos a serializar un campo, y este será el, un flotador que va a ser el tiempo de efecto. Entonces cuánto tiempo hay y cuándo lo destruimos. Por lo que no queremos mantener ahí la animación. Queremos destruirlo después de que se haga el tiempo de efecto. Esto será único para cada una de las animaciones. Entonces vamos a añadir otro campo serializado 40 efecto de sonido para reproducir. Entonces cuando profesor como afecta número a jugar, porque por supuesto, cada animación requerirá algún tipo de efecto de sonido. Y en el inicio vamos a acceder a la instancia de administrador de audio Door. El laico como afecta el S f x número para jugar. Y no creo que tengamos efectos de sonido para todos los ataques. Seguro que los encontrarás a todos. Entonces vamos a ir a actualizar. Y vamos a destruir el objeto del juego, pero no sólo destruirlo, vamos a golpear una coma. Y verás que si agregamos una T, es una cantidad opcional de tiempo para retrasar antes de destruir el objeto del juego, y va a ser el tiempo de efecto. Entonces, ¿por qué estamos haciendo esto? Porque no queremos que el objeto del juego de la slash se quede por ahí. Queremos instanciarlo,
apagarlo en algún momento después de que terminemos. Entonces voy a mover esto a 25 aquí. Y creo que queremos simplemente mantenerlo el tiempo de efecto. ¿ Cuánto cuesta esto? ¿ Cómo sabemos amature? 25. Entonces 30 es el medio, así que esto es 1234. No lo sé. Vamos a quedármela por, no
sé, 0.5 segundos. Eso es, creo que 30. Entonces esto es de 1 segundo a 35 y esto es un poco menos. Y este es el ataque de corte. ¿ Tenemos algún ataque de slash y los efectos de sonido AudioManager? Veamos los monstruos de diálogo cicatriz, hechizo. Check. Creo que deberíamos querer, usemos el diálogo por ahora. ¿ Cuál es el diálogo? Para que lo podamos jugar aquí. Entonces este es el modificador de ataque, que es muy bonito, disipa ataque, que es muy bonito. Lo usaremos para el mago. Siento que es más aterrador. Pero como esto, este es el monstruo. Podemos usarlo. Y la transición de área, podemos usarla. Y voy a usar el diálogo o el ataque de corte. Qué conveniente puedes ir a Open game ofs y descargar el tuyo propio. Por favor, hazlo, no uses lo que estoy haciendo. Soy una escuela de élite TUV. En tanto que los efectos de sonido de fondo, diálogo también. Entonces es elemento para slash, para guardar eso. Está bien, genial. Ahora voy a emitir un reto. Y ese reto es seguir adelante y crear todos los demás efectos. Por lo tanto, establece todos los demás efectos que tal vez quieras agregar al ataque. Y eso es todo. Eso es todo lo que tienes que hacer en este reto. El fuego, los hechizos, los ataques mayores, lo que quieras, crean tantos cónyuges como quieras. Y pausar el video ahora mismo, ve al reto. De acuerdo, bienvenido de nuevo. Entonces ahora que tenemos el efecto de corte, vamos a ir a los prefabs. Y recuerda lo que dije, lo feliz que estoy. Me estoy molestando un poco. Vamos a crear una nueva carpeta aquí para los hechos tecnológicos. Y probablemente también deberíamos manejar todos estos, pero no ahora, vamos a añadir la varilla. Sólo llamémoslo la slash sin animación, así que slash. Y ahora vamos a crear un, otro efecto. Entonces vamos a ir a los sprites cercanos. Y los hechos de ataque, y veamos qué tenemos. Hagamos doble clic. Este es el que acabamos de hacer. Entonces los hechos de ataque, vamos a hacer la bola de fuego múltiple ply Sprite Editor. Y veamos cómo deberíamos estar cortando esto. El 64 es demasiado grande. 32 por 32 rebanadas hacia arriba. Ahí vamos, postulamos. Ahora tenemos nuestros firewalls. Vamos a asegurarnos de que sea un filtro. Ningún punto nos da mejor calidad. Vamos a arrastrar este aquí. Es muy pequeño. Y lo vamos a poner en los personajes de batalla uno. Y gire. Azul para bola, azul, bola. Hit Enter. Hagamos este más grande. Entonces creo que éste necesita 16. Aplicar. Sí, ahí vamos. Se trata de 16. Vamos a añadir un, ¿cómo se llamaba? El se llamó los efectos de ataque F. Ah, sí, efecto de ataque. Y vamos a crear una animación. ¿ A dónde fuiste? I animaciones, animaciones de ataque. Azul, bola de fuego. Guarde eso. Jag. Estos. Póngalos aquí. Vamos a correr demasiado rápido. 20, lento 15. Sí, ahí vamos. Creo que esto es suficiente. Y en el último, así Vamos 5555, accedemos al objeto del juego y apagamos el sprite. Y vamos a establecer el tiempo de efecto para que sea de 0.4 segundos, y el efecto a jugar será el AudioManager, hecho de fuego cuatro. Entonces cuatro, guarde eso. Y o prefabricado todo al final. ¿ Qué más tenemos? ¿ Este? Y aquí este es el, llamémoslo el brillo o aligeramiento múltiple de la rebanada Sprite Editor. Esta es una gran imagen que puedes ver aquí mismo. Entonces creo que necesitamos la rebanada 256 por 256 que arriba. Sí, ahí vamos. Agradable conjetura. Y vamos a sumar este parque aquí mismo. Lo pondré aquí. ¿ Dónde está la bola de fuego? Oh, espera. ¿ Hicimos algo mal? Sí. Apagamos el sprite sin realmente golpear el récord. Apague eso y guarde ese stop run. Por lo que apaga al final. De acuerdo, Excelente. Por lo que se apaga el último fotograma. Tenemos que asegurarnos de que todas las animaciones no vayan a bucle. Por lo que el fondo de batalla de fuego chispeante, uno, 32. Sí, ahí vamos. Ese es un bonito efecto relámpago. Entonces efecto relámpago. Vamos a crear la animación. Relámpago mientras que efecto aligerador. Vamos a mantenerlo al rayo. Escogerá todos estos y los arrastrará aquí. Entonces, vamos a ver. ¿Es capaz de primero, hagámoslos 1 segundo. Sí, ahí vamos. Creo que esta es bonita. Voy a añadir el efecto de ataque. El ataque afecta el tiempo será de 1 al audio, sonará el fuego también. ¿ Para qué fue el fuego? ¿ No es así? Sí, para cuatro y en el último, que es por aquí, aquí, por aquí, y corremos apaga. Detener Grabación, guarde eso. Por lo que se apaga en el último. Volvamos a ponerlo aquí. Por lo que ahora tenemos el efecto aclarador. ¿ Qué más deberíamos estar agregando? Los tentáculos? Entonces sabemos que hay un par de más que queremos sumar. Cada uno tendrá su propio tiempo de efecto, cada uno tendrá su juego de efectos de sonido. voy a hacer fuera de pantalla solo para no perder más tiempo. Y te veré en el siguiente cuando realmente empecemos a usarlos en jugadores. Entonces te veré entonces.
100. Selección de ataques: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, en realidad hemos hecho mucho impuesto que en realidad funcionan. Entonces cuando tuvimos al apicultor, iniciamos la batalla. Teníamos el N y los enemigos atacaban. Ahí vamos. Por lo que como viste, eligen jugadores aleatorios. Por lo que cada uno de los zapatos del enemigo, jugadores
aleatorios y eligen ataques aleatorios. Entonces probemos esto una vez más. Sí, ahí vamos. Jugador aleatorio. Un jugador aleatorio. Probemos esto otra vez. Ahí vamos, The Lightning, ¿qué guay es eso? Entonces estamos usando la barra, el aligeramiento, los ataques morados. Es tan asombroso. Es tan guay. Estamos eligiendo jugadores aleatorios. Es muy divertido. Entonces, no perdamos más tiempo. Este video es lo suficientemente largo y empecemos. Todas las animaciones tienen un tiempo de bucle de 0 o desmarqué el tiempo de bucle. Por lo que ahora podemos seguir adelante y eliminarlos todos. Vamos a salvar todo esto. Y luego vamos a seguir adelante y crear un nuevo guión que se llama los movimientos de batalla. Entonces en nuestros guiones, en la sección de batalla y sistema de batalla, vamos a crear un guión C-sharp. Batalla, mueve, hit, Enter, espere a que se compile. Y este va a ser un tipo de
clase muy especial porque aún no hemos hecho una de estas. Vamos a quitar el comportamiento matutino. Por lo que verás ahora mismo que la actualización y el inicio ya no pueden abusar. Son funciones regulares y vamos a estar borrándolas. ¿ Por qué estamos haciendo esto? Porque en realidad no queremos adjuntar sino que se mueve a nada. Simplemente queremos mantenerlo como fuente de información. Es como los bienes de los artículos que hemos creado. Entonces en algún lugar de aquí, los artículos Activos, se puede ver, aunque tenemos el inicio aquí dentro, por lo que es un poco diferente,
pero los movimientos de batalla no se apegarán a nada. Simplemente se usará con el fin de, uh, hacer un par de cosas. Y vamos a añadir aquí que es un sistema de punto serializable. Y esto indicará que podemos usarlo en cualquier lugar. Entonces vamos a crear un ataque público de String Move. Vamos a duplicar esto cuatro veces porque tendremos cuatro tipos de variables. Y aquí vamos a tener un entero para el poder MOOC. Vamos a tener un entero por el costo de maná. Porque recuerda que todos estos son hechizos que tienen mono, no el ataque aunque pondremos que sea 0. Y finalmente, tendremos aquí el efecto que queremos usar. Entonces efecto batalla, ¿dónde está? Batalla, batalla, batalla. Modos de batalla que le llamamos movimientos o efecto de batalla? No, ahí vamos. Ahí está batallando hecho. Por lo que efecto de batalla pública o un hecho de etiqueta. Perdón por eso. Oh Dios mío. De acuerdo, Entonces el efecto a usar, y vamos a estar agregándolo. Ahora volvamos al gestor de batalla. Entonces, ¿dónde está el encargado de batalla? ¿ A dónde se fue? ¿ En serio? ¿ A dónde se fue? Entonces, pero Gerente, aquí estamos por alguna razón con cerrar esto. Entonces vamos a volver a la mayoría de las matemáticas y empiezan, pero también. Y aquí dentro vamos a crear un campo serializado, que va a ser los movimientos de batalla. Y va a ser una lista de movimientos de batalla. Ahí vamos. Ahora, si entramos en Unidad, ve al encargado de batalla. Se puede ver en este momento que la batalla se mueve cuando hacemos clic en ellos. Cuando agregamos un elemento, este elemento tiene múltiples a variables dentro de él ya esperando a que agreguemos. Entonces vamos a hacer justamente eso, cerraremos esto. Entraremos a los Prefabs. El ataque se mueve, y vamos a seguir adelante y añadir el fuego azul. Entonces esta será la bola de fuego azul, el poder de movimiento, digamos que son 15. Ni siquiera estoy seguro de cuáles van a ser estos números. Estos necesitan tomar mucho tiempo y asegurarse de que todos sean correctos. Entonces tenemos seis. Entonces el láser Mover poder, digamos que son diez, costo de
maná es seis. Y creo que los manáculos deberían ser mucho más. Por lo que el costo de maná será de 100. Y la bola de fuego azul, los costos de maná deben ser de 200. El pesado van. El balón de fuego azul. A ver, tenemos el aligeramiento. Y creo que he escrito un rayo mal. Y el ataque será, digamos 25. Y el costo de maná será de 120. Y estos son números muy raros. No estoy seguro si van a ser buenos cuando realmente tratamos de usarlos. Y voy a añadir la barra y los tentáculos. Y vamos a añadir aquí morado. Por lo que los tentáculos morados tendrán un poder de ataque. Todo lo que realmente estoy haciendo todo esto fuera de mi cabeza. Un costo de 300, la barra un más, digamos 10 y cantidad de costo de 0. Y el movimiento de los tentáculos tendrá un poder de movimiento de seis con un costo de maná de 360. De acuerdo, genial, así que ahora tenemos todos nuestros ataques configurados correctamente. Guardemos eso. Entonces ahora lo que haremos es en lugar de simplemente quitar diez de salud al jugador seleccionado y al ataque enemigo, realidad
vamos a acceder a nuestro personaje activo en el turno actual generará un ataque aleatorio que el enemigo real tiene. Entonces si vamos a uno de los enemigos prefabs y aquí puedes ver que tenemos los ataques disponibles. Por lo que ahora nos pueden gustar los elementos y añadir los nombres de los ataques que tenemos disponibles. Elige uno de ellos para atacar al enemigo, para atacar al jugador con, y elegirá aleatoriamente. Entonces vámonos. En primer lugar, vamos a crear el código para esto. Vamos a volver a nuestros guiones y al ataque enemigo. Después de haber seleccionado a un determinado jugador, vamos a crear otro entero aquí y va a ser el ataque seleccionado. Y va a ser un rango de puntos aleatorio. Y va a ser entre 0 porque empezamos 00 y los personajes activos en el turno actual, estamos en looping porque queremos al personaje activo actual, por lo que el enemigo actual que estamos usando y vamos a acceder a la ataque se mueve. Por lo que los movimientos de ataque disponibles no es el acceso a nosotros porque eso es ir a los personajes de batalla aquí, queremos regresar. Entonces vamos a crear un método,
un array de cadenas público llamado los lunares de ataque fallables. Y aquí dentro simplemente vamos a devolver los movimientos de ataque disponibles. Volvamos al gestor de batalla. Por lo que el ataque se mueve disponible, la longitud. Entonces va a elegir entre 0 y el número de ataques movidos que tenemos. Entonces vamos a crear un bucle. Por lo que vamos a estar en bucle a través de la lista de movimientos de batalla. Entonces cuando igual a 0, soy menor que la lista de movimientos de batalla que acabamos de crear. Longitud I plus, plus. Y entonces aquí dentro vamos a comprobar si la batalla se mueve menos en la posición yo punto mueve nombre sería no añadir un nombre de movimiento. Entonces este es el nombre Move. ¿ Por qué lo llamé ataque de movimiento? No sé nombre de movimiento y esta va a ser la luna. Mover nombre. Gracias. Entonces estoy un poco fuera de mi juego. No se preocupe por eso. Michael, vamos, concentérense. Vamos a acceder al personaje activo en el turno actual, actual con el movimiento de ataque disponible. Entonces voy a copiar esta línea. Pégala aquí, ¿y en qué posición vamos a acceder a esto? Va a ser en el ataque seleccionado. Entonces si hay una similitud entre ellos, entonces estamos buscando el ataque aleatorio que obtuvimos de estos ataques seleccionados al azar, y entonces lo estamos comparando. ¿ Tenemos ese movimiento de batalla dentro de nuestro gestor de batalla? En caso afirmativo, entonces vamos a instanciar. Y abriremos esto. No necesitamos asignarlo a ninguna variable. Y vamos a acceder a la lista de movimientos de batalla en la posición yo punto el efecto a usar común. Este será el objeto. Ahora la posición y rotación personaje activo v Jugador seleccionado para atacar la transformar la posición y transformar la rotación. Entonces esto va a encontrar, y no queremos agregar ningún padre, realmente no necesitamos hacerlo. Entonces, ¿qué está pasando aquí? Estamos seleccionando aleatoriamente a un jugador. Estamos seleccionando aleatoriamente un ataque. Estamos recorriendo todos los ataques disponibles que podemos tener. Estamos comprobando si tenemos el ataque y la batalla se mueve ataque cuando sí lo encontramos, entonces instanciamos ese efecto en la posición del jugador con su rotación. Entonces, vamos a guardar todo eso. Volvamos a Unidad. Y estamos usando los caudillos y la página principal cuando iniciamos una batalla. Permítanme sólo comprobar dos veces que estamos sí. Ah, el mago maestro. Entonces el maestro mayor, domina mi edad. Está bien. Entonces, ¿qué tipo de movimientos tiene el maestro mmh? Vamos a ir a los efectos de ataque de Prefabs. Entonces, ¿qué crees que ha bloqueado un maestro? Creo que tiene tentáculos. Tiene el rayo y el probablemente también tenga el láser. Entonces porque es una imagen maestra, voy a ver cuánto heme tiene mono y creo que el morado también es algo que tiene, los tentáculos morados. De acuerdo, entonces vamos a guardar eso. Y entonces vamos a elegir otro Mayordomo, el enemigo, Los brujos. Vamos a encerrarlos. Y cuanto más suerte debería tener un poco menos de un impuesto. Entonces los prefabs, él tendrá el azul lejos, pero claro, él no tiene el rayo, no tiene el láser, tú tendrás los tentáculos. Y digamos que también tiene la barra, copia que lo pega aquí. Entonces tiene también la barra a pesar que
creo que no necesitamos el lodo, vamos a mantenerlo aquí. Salvaremos eso y sigamos adelante y probemos nuestras batallas. Entonces vamos a ejecutar el juego. Vamos a iniciar una batalla. Vamos a ir con el gerente de batalla para que podamos ver qué está pasando aquí. Cierra esto hacia abajo. Por lo que le dimos a tres las teclas N. De acuerdo, entonces no está pasando nada. Ah, caso. Entonces el problema es que cuando cambiamos de ataque de movimiento por alguna razón por mi falta de concentración, nombré aquí esta variable y inicio movido nombre, ataque de movimiento. Por lo que cambiamos el nombre de la variable y al cambiar el nombre de la variable, eliminamos el nombre aquí. Entonces cuando estamos buscando y el gestor de batalla y aquí, por lo que el nombre del movimiento de batalla, ¿es igual a alguno de los disponibles? Por supuesto que no porque los disponibles son todos, o los movimientos de batalla nombre de punto son todas cadenas vacías. Por lo que tenemos que volver a hacer todo esto. Y vayamos a las prefabs y copiemos y peguemos todo eso. Por lo que el ataque se mueve. Vayamos con el gerente, cerraremos esto. Bola de fuego azul, el láser, el aligeramiento. Tenemos que asegurarnos de que sean exactamente iguales. De lo contrario no los encontrará. Como saben, estamos trabajando usando referencias de cadenas. Guarda eso y ahora estoy casi al 100% seguro ahí. Por lo que quería decirte cómo en realidad depuro esto. Por lo que tenía una impresa aquí y pasé por. Entonces solo quería asegurarme si no estamos llegando a este punto y aquí. Por lo que agregué una huella. Vi que sí, realidad
estamos entrando en el bucle. Entonces agregué una segunda impresión aquí que estamos instanciando o instanciando. No importa lo que se adapte a tus necesidades. Entonces vi que en realidad no estamos entrando en esta condición si. Entonces de inmediato supe que no se está cumpliendo la condición aquí dentro. ¿ Por qué? Miré alrededor y noté que estaban vacías. Entonces este es un pequeño propina pro para ti. Ahora deberíamos tener todo funcionando sin problemas. Así que corre nuestro juego. El pico es algo está fuera de orden aquí. Haga doble clic, ¿Cuál es el problema? Tratará de moverse más allá de tres cadera la LIGO, el Láser. Sí, ahí vamos. Y ambos atacaron el esqueleto. Tan agradable. Como puedes ver, todo está funcionando correctamente con sus efectos de sonido. Aquí hay un poco de problema. En cuanto iniciemos el juego en el despertar. Creo que esto no es nada demasiado aterrador. Sí, creo que lo más probable es que esto no sea nada demasiado aterrador. Entonces espero que hayan disfrutado de este video. Espero que disfrutes viendo los errores que comete tu instructor, la falta de concentración y a dónde te puede llevar mientras se desarrolla el juego. Entonces si estás disfrutando de los puntajes, ya
conoces el simulacro, déjame una reseña. Me ayuda mucho. Y los veré en el siguiente video donde realmente empezamos a atacar con nuestros jugadores.
101. Sección 15: cantidad de daño: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. En este video, en realidad vamos a estar agregando daño de los enemigos a los jugadores. Entonces cuando corremos nuestro juego, dale la tecla B, ve al enemigo Stearns. Ahí vamos, Un ataque, ataques. Y se puede ver aquí que en realidad hemos tenido un golpe crítico. Entonces en lugar de 127, tenemos 254. Y se puede ver aquí todo el daño que estaba haciendo bien. Entonces, en primer lugar, teníamos al amo que repartió 127 y después al caudillo 93. Pero en cambio, debido a que tuvieron impactos críticos, se duplican. Entonces, no perdamos más tiempo y empecemos. Ah, vale, Así que ahora antes de pasar a los jugadores atacando, necesitamos establecer control de daños. Por lo que tenemos que asegurarnos de que tenemos una forma de aplicar el daño del enemigo, del jugador, y así sucesivamente. Entonces, ¿cómo es realmente dañada la polla para trabajar? Déjame mostrarte y hablar un poco sobre el cálculo de la cantidad de daño. Tenemos dos variables para el daño. Tenemos la destreza y tenemos las armas,
poderes, arma empinada que recogemos. Tiene algún tipo de atributos. Podemos usarlo con la destreza que ya está disponible en el jugador, lo que aumenta cada nivel. Entonces también tenemos dos variables para la diferencia. Tenemos la defensa, que está en cada jugador. Podría ser la piel que tiene, la ropa que usa, el tipo de construcción que tiene, etcétera. Y tenemos la defensa de armaduras, así que es la armadura que recoge. Qué buena es la diferencia en eso, etcétera. No complices las cosas, solo
sumará el poder y la diferencia. No vamos a estar metiendo demasiado en ello. Por lo que la cantidad de daño será la potencia dividida por la diferencia de veces que el MOOC alimentado. Entonces porque hemos dicho que cada hechizo o corte o lo que sea, tendremos un cierto poder de movimientos. Entonces estamos agregando esto en cuenta, y luego solo agregaremos algún tipo de constante aleatoria. Y por último, también vamos a sumar una pequeña cantidad de daño
crítico con un cierto porcentaje de trabajo. Entonces sigamos adelante y hagamos eso. Entonces vamos a entrar al gerente de batalla. Abramos los guiones y vamos a crear un método para hacer daño. Entonces voy a cerrar al enemigo. Mira lo grande que ya tiene nuestro método. O sea, nuestro guión ya tiene. Entonces aquí voy a crear un vacío privado, hacer daño a los personajes. Y esto va a ser utilizado tanto en el enemigo o usado por el enemigo y los jugadores. Por lo que vamos a primero conseguir un parámetro que va a ser el personaje seleccionado para atacar. Entonces esto nos dará al enemigo que en realidad ya jugamos que realmente necesitamos atacar. Y otro entero que va a ser el poder de movimiento. Entonces, ¿cuánto poder tiene la jugada que estamos usando para hacer daño a cierto personaje en realidad es. Entonces ahora vamos a calcular primero el poder de ataque. Entonces vamos a ir a flotar poder de ataque. Y va a ser igual a los personajes activos, que está en el turno actual, la destreza. Entonces estamos tomando en cuenta la destreza. Entonces también estamos tomando un poder armamentístico del condado que tiene. carácter tan activo, término actual poder de arma de punto. Guarda eso. Ahora vamos a calcular la cantidad. Así que flote la cantidad justa dicey, quise decir la cantidad de diferencia. Entonces vamos a calcular la cantidad de defensa que tenemos. Entonces vamos a revisar a los personajes activos. Pero esta vez estamos usando al personaje seleccionado para atacar. Entonces tenemos el acto de personajes en batalla. Estamos eligiendo al personaje seleccionado al que queremos atacar. Entonces en este lugar, si estamos atacando con un jugador, entonces queremos atacar a un enemigo. Si estamos atacando con el enemigo, entonces queremos atacar a un jugador. Entonces vamos a calcular la defensa
del jugador o el personaje que queremos atacar. Y también vamos a tomar en cuenta, creo que ya sabes lo que queremos tomar en cuenta. Y esa es la defensa de armaduras que tiene en Nope. Defensa de armaduras. Está bien. Entonces como pueden ver ahora tenemos el ataque, tenemos el poder. Ahora necesitamos calcular la cantidad de daños. Entonces cantidad de daño, y va a ser igual a la fórmula que establecimos. Entonces va a ser el poder de ataque dividido por la cantidad de diferencia que tenemos. Entonces lo vamos a multiplicar por el poder de movimiento. Y también lo vamos a multiplicar por algún rango aleatorio. Y aquí dentro, realmente depende de ti. ¿ Cuánta aleatoriedad quieres agregar? Creo que 0.9 F y 1.1 f es una buena cantidad. Por lo que esto nos dará alrededor ya sea 90 por ciento o 110%. Por lo que este es el rango básico del daño que hacemos. Es un poco de aleatoriedad. Es agradable porque tomamos en consideración, por ejemplo, digamos que el MAE hace algún tipo de magia y no golpea completamente al jugador. Entonces es un bonito toque, creo. Y puedes cambiar la fórmula si puedes encontrar una mejor fórmula. Este es uno de los tipos de fórmulas más básicos que también puedes, si tienes tus propias estadísticas de jugador, puedes agregar las tuyas propias a esto. Entonces, adelante, ¿qué queremos hacer ahora? Queremos convertir esta cantidad de daño en un entero porque lo tenemos como flotador. Entonces vamos a teclear la variable, que va a ser el daño a dar. Y lo vamos a convertir en un entero. ¿ Y por qué estoy haciendo esto en una línea separada? Porque creo que está mucho más claro a medida que avanzamos. Entonces usted entiende que estamos calculando ataque, calculando defensa, calculando cantidad de daño, y calculando el daño que queremos dar. Está bien, genial. Ahora porque no tenemos forma alguna de indicar cómo vamos a ir o cuánto daño estamos haciendo. Vamos a utilizar el registro de puntos de depuración. Entonces debug dot log. Y queremos saber qué personaje está infligiendo el daño. Por lo que el acto de carácter sobre el término actual, nombre de punto. Y vamos a concatenar y decir que acaba de tratar, tratar, tratar. Así es como se escribe delta, creo. Sí. Y luego lo vamos a concatenar con la cantidad de daños. Y también vamos a mostrar realmente
cuánto realmente va a tener un efecto el daño. Entonces quiero decir, con eso, vamos a concatenar también el daño a dar. Y lo vamos a cerrar entre estos dos corchetes. ¿ De acuerdo? Y también agregaremos aquí algo más que casi me olvido. Y lo diremos aquí también. Entonces, por ejemplo, el dragón acaba de repartir cierta cantidad de daño a. Y luego volvimos a concatenar con el personaje o los personajes activos, el personaje seleccionado para atacar. Entonces ahora podemos ver claramente cuál es el daño, quién lo está haciendo y a quién se lo está haciendo. Por último, vamos a sufrir daños. ¿ Tenemos ese Método y nuestros personajes, los personajes de batalla aquí dentro necesitarán crear un daño recibir. Por lo que público, vacío, toma el daño de HP. Y este será el daño entero a recibir. Y aquí dentro simplemente vamos a quitar los dañados del HP actual. Por lo que el HP menos actual es igual al daño a recibir. Y obviamente cuando el HB actual, si el HB actual es menor a 0, entonces vamos a establecer el HP actual para que sea igual a 0. Eso es todo. Eso lo guardamos. Creo que tenemos un lugar donde ocuparnos de esto, pero solo nos aseguraremos de que añadimos esta condición aquí, si
acaso no queremos ir por debajo de 0 con nuestro HP actual. Por lo que finalmente obtenemos el acto de personajes. Vamos al personaje seleccionado para atacar. Tomamos daño de HP y el daño que queremos recibir como el daño a dar, que es un entero porque nos aseguramos de que el parámetro aquí dentro sea un entero porque el HB actual es un entero. Y por último, vamos a llamar a este método. ¿ Y dónde lo llamamos? Bueno, lo llamamos después de que terminamos de atacar. Por lo que aquí tendremos que hacer daño
al personaje que necesitamos enviar al personaje que queremos atacar. Por lo que ya lo tenemos aquí, el jugador seleccionado para atacar. Entonces jugador selecto para atacar y ¿cuál es el poder de movimiento? Bueno, lo vamos a meter aquí después de instanciar. Entonces vamos a crear una variable que va a ser un entero. El movimiento. Poder. Y pongámoslo a 0 por ahora. Y después de revisar, nos aseguramos de que el movimiento esté disponible que el más poder, va a
haber igual a la lista de movimientos de batalla. En la posición yo punteo el poder de movimiento. lo guardamos. Enviamos la variable aquí, guardamos eso. Y ahora sigamos adelante y probemos todo esto. Entonces volvamos a nuestro juego. Y actualmente el poder o el ataque solo funciona en el, usando el enemigo sobre el jugador. Entonces vamos a seguir adelante e iniciar la batalla. Y vamos a ir al siguiente turno. Y por alguna razón no tenemos el lienzo mostrando. Por lo que el jefe de batalla escena de batalla, el lienzo de batalla. Cuando ejecutamos nuestro juego, eso es sólo ver dónde está el problema,
es el BK, mientras que la escena de batalla, ¿dónde está el menú? Entonces de nuevo, si alguna vez encuentras un problema así donde todo se destruye, necesitamos entrar aquí y asegurarnos de que sea 19 por 20, 1920 por 1080. Entonces ahora déjame apagar esta escena de batalla. Ahí vamos. Ejecuta el juego. Golpea la tecla B. Ahí vamos. Entonces vamos a batallar manager. Eso dijo el N, y ahora los enemigos están atacando. Sí, ahí vamos. Entonces ya perdimos porque nos han matado por alguna razón. Esto no es muy bueno. Así que déjame volver aquí en la consola, evitar que el juego se ejecute y veamos lo que está pasando. Por lo que el maestro mayor repartió 128 al gramo, que es el personaje de batalla. Y luego los Brujos del 251 a Draco. De acuerdo, entonces y entonces perdimos. Obviamente aún teníamos a uno de ellos disponible. Algo anda un poco mal, lo
arreglaremos más adelante, pero por ahora estamos invirtiendo daño fue simplemente muy bueno. Por lo que lo siguiente que hay que hacer es seguir adelante y agregar algún tipo de daño crítico. Por lo que en el manager de batalla, vamos a cerrar la batalla de actualización. Tenemos que volver y comprobar por qué acabamos de morir así. Tenemos que crear ahora un poco de cálculos de daño o daño crítico. Y va a ser parte de tu reto. Tu reto es crear daño crítico. Tendrás que crear un método que devuelva un final para calcular el daño crítico con un argumento, necesitarás usar el valor de punto aleatorio dentro de una sentencia if y devolver el valor dañado por 2. Por lo que el daño crítico es un daño que es por 2. Por último imprime la cantidad y el registro de puntos de depuración y necesitarás, por
supuesto, llamarlo desde daño de trato y asignarlo a una variable. Así que pausa el video ahora mismo y ve a crear un método de daño crítico. De acuerdo, entonces en primer
lugar, ¿dónde calculamos el daño? Bueno, y aquí vemos que tenemos los dañados para dar. En realidad podemos debajo de ella, adelante y decir que el daño a dar va a ser igual para calcular Crítico. Y vamos a darle el daño para dar. Ahora sigamos adelante y creemos este método. Por lo que generaremos el método. Y aquí dentro, lo que vamos a hacer es que vamos a crear este f, que va a ir a un valor aleatorio. Y se puede ver que esto devuelve un valor aleatorio entre 01. Entonces esto nos dará, si quieres un cierto porcentaje y si es menor que, digamos 0.1 f Así que tenemos un 10 por ciento de probabilidad de que esto funcione. Vamos a utilizar el debug dot log en punto en punto. Y vamos a decir aquí, golpe de cosquillas de carrera. En lugar de daño para dar puntos. ¿ Cuántos puntos o cuántos puntos de daño estamos lidiando? Nosotros hemos hecho daño para dar tiempos 2. Y solo presiona la tecla Enter aquí y luego vuelve a concatenar. Fue eso Ahí vamos. Por lo que el daño crítico en lugar del daño regular a dar o puntos, el daño a dar tiempos 2 fue repartido. Y vamos a devolver daño para dar tiempos 0 veces para ahorrar eso. Y pongamos esto entre paréntesis sólo porque 44 para asegurarnos de que funcione. lo contrario, si no funciona, entonces simplemente vamos a devolver el daño para dar. Entonces lo que está pasando aquí es que estamos revisando. Estamos obteniendo un valor aleatorio. Y si ese valor es menor a 0.1, valor de punto
aleatorio nos da, como hemos dicho, un número entre 01. Entonces si es menos de 0.1, eso significa que tiene un 10 por ciento de probabilidad de trabajar, entonces vamos a devolver el daño para dar tiempos 2, y vamos a asignarlo aquí al daño para dar. De lo contrario. Si no es menor a 0.1, entonces simplemente devolverá el daño para dar. Y por el bien de las pruebas, vamos a poner esto en menos de 0.8. Esto nos da una probabilidad del 80 por ciento. Y diremos aquí dentro, esto necesita cambiar a un punto cero 1 f Guardar eso. Volvamos atrás y nuestro juego. Vamos a ejecutar el juego. Vamos a golpear la tecla B que está al final. Y está bien, así que ahí vamos. Golpe tan crítico, acabamos de tener una cabeza crítica. Entonces en lugar de 211 puntos, 422, ¿estuvo bien? Muy bien. Entonces espero que hayas disfrutado espero que estés entendiendo cómo está funcionando
todo y te veré en el siguiente video. También tratamos un golpe crítico aquí dentro. Entonces te veré en el siguiente video.
102. Qué Enemigo es atacado: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, vamos a aprender sobre los sistemas de
partículas y realmente los vamos a usar. Entonces cuando corremos nuestro juego, recuerda cuando uno de los enemigos atacó y no sabíamos cuál está atacando. Por supuesto, usando la consola que podríamos haber conocido, pero visualmente, ¿cómo lo sabemos? Bueno, como puedes ver, ahora sabemos que el enemigo que está atacando tiene este pequeño resplandor de rojo a su alrededor. No es perfecto. Ya es bastante agradable y nos da una manera de saberlo. Entonces, por ejemplo, el mayor atacó primero que la guerra careció de ataque segundo. Entonces, no perdamos más tiempo. Comprueba tus cambios al final de este video y empecemos. Oh, bien, bienvenido de nuevo. Entonces morimos previamente, si recuerdas en el video anterior demasiado rápido o perdimos demasiado rápido, Eso es porque el jugador, Jimmy tiene un HP actual de 0, así que vamos a ponerlo en 100. Y también los dados esqueleto y un hit. Entonces tal vez deberíamos aumentar esos a 200 por 200. Y eso lo hacemos también para el gramo. Entonces vamos a poner esto en doscientos,
doscientos , salvo eso, aplicar los cambios. Y eso es todo lo que tenemos que hacer. Entonces vamos a guardar eso y volvamos al verdadero problema aquí. Y es que en realidad no vemos visualmente qué enemigo está atacando a nuestro jugador. ¿ Cómo vamos a saber eso? Bueno, hay una manera muy sencilla y esa es crear tal vez un pequeño círculo o Spark
o tal vez algún tipo de gente alrededor del enemigo que acaba de atacar a uno de los jugadores. ¿ Cómo vamos a hacer esto? Bueno, vamos a utilizar el sistema de partículas de la Unidad para crear un efecto. No voy a adentrarme demasiado en los sistemas de partículas porque pueden ser un curso por su cuenta. Yo sólo voy a repasar los conceptos básicos y mostrarte un sistema de partículas predeterminado que no necesariamente se crean, sino que sacaron la idea. Entonces voy a hacer clic aquí. Voy a ir a usar resistente a los efectos y al sistema de partículas. Ahí vamos. Entonces como puedes ver, ya
tenemos un sistema de partículas que establecerá la posición del conjunto en 0. Y si deshacemos click en el 2D, puede ver que estas son nuestras partículas y las
voy a mover al frente. Entonces ahí lo tienes. puedes ver ahora que tenemos estas partículas saliendo, déjame moverlas más y ahí tienes. Entonces voy a hacer esto más grande y vamos a echar un vistazo a estas partículas. Entonces como puedes ver, no se
renderizan al frente porque están ordenando la capa es diferente. Renderizado podemos elegir en qué capa de clasificación se encuentran. Entonces clasificar capa, pongámoslos en
los personajes de batalla y ordenemos la capa uno para que podamos verlos con claridad. Entonces como puedes ver, estas son nuestras partículas. Y la forma en que funcionan es a medida que nos movemos, puede ver que se trata de pequeñas imágenes 2D que siempre se enfrentan a la forma en que estamos mirando, ya sea en el modo Escena o en el estado de ánimo de juego. Y eso es porque quieren ahorrar un poco de memoria y
espacio y renderizar tantas partículas es muy, muy confuso y corazón. Entonces sigamos adelante con el inspector y hagamos un par de cosas. Como puedes ver, hay cientos y cientos de cosas que puedes cambiar la rodilla de ruido a fuerzas externas a rotación de velocidad y todas esas. Y como ya he dicho, no voy a entrar en cada uno de ellos, pero voy a tratar de explicar las cosas que vamos a hacer. Entonces lo primero es que vamos a hacer de esto una emisión de ráfaga. Por lo que aquí podemos sumar la ráfaga. Se puede ver la emisión sobre tasa. Se puede ver que lo podemos disminuir, incrementarlo y así sucesivamente. Voy a añadir una ráfaga. Voy a ir a las formas y convertirlo en un círculo para que podamos cambiar las formas a una esfera, por ejemplo, voy a convertirlo en un círculo. Voy a por supuesto tratar de rotarlo. No hay puertos que imprime Caliente, No hace falta eso por ahora. Voy a rotarlo. Entonces ahí vamos o podemos ponerlo a 0. Entonces ahora está un poco reventando como puedes ver. Cuando lo vemos en tan solo un poco. Sí, ahí vamos. Esa es la ráfaga. Podemos cambiar el estallido de los ciclos y los conteos. Vamos a sacar la tarifa a lo largo del tiempo. Ahora podemos ver una ráfaga. Ahí vamos. El probabilidad, el intervalo puede ser tal vez uno. Y realmente no importa porque
vamos a hacer que aparezca sólo una vez y luego desaparezca. No queremos estar todo el tiempo. Podemos agregar 60 partículas y así sucesivamente. Veremos más adelante cómo va a cambiar todo esto. Entonces 60, círculo 60, la ráfaga, y luego vamos a pasar al tamaño a lo largo de toda la vida. Entonces aquí tenemos una opción. Que es el tamaño a lo largo de la vida útil. Asegúrate de activar esta casilla de verificación y esto determinará cuál es el tamaño a lo largo de toda la vida. Podemos dar click en la gráfica aquí mismo. Y podemos mover este sistema de partículas. Y aquí tenemos esta opción. Al hacer clic en la gráfica, podemos elegir cuál es el tamaño a lo largo de la vida ya que podemos disminuirlo, aumentarlo, hacer que la y sea más grande o más pequeña, como se puede ver a medida que se están moviendo. Y esta es la velocidad a la que cambiaron el tamaño. Entonces si ponemos cuatro aquí, por ejemplo, Ahí vamos. Si lo incrementamos, toman tiempo hasta que se hacen más pequeños. Pero lo que vamos a hacer es que sólo lo lograremos. Entonces. Entonces ahí vamos. Comienzan en uno muy grande y luego se hacen cada vez más pequeños hasta llegar a alrededor de 0 en el minuto. Sí, ahí vamos. Creo que esto es lo suficientemente bueno. Voy a cerrar esto. A continuación vamos a fijar la duración. Entonces aquí tenemos opciones que son muy, muy pequeñas. Entonces la duración aquí dentro queríamos menos sólo un minuto. Entonces ahí vamos. Ahora tenemos una especie de ráfaga de bateador. Entonces necesitamos establecer la vida de inicio. Entonces vamos a establecer la vida de inicio en dos. Y ahí vamos, se puede ver que desaparecen más rápidamente. Tenemos que establecer la velocidad de inicio. Vamos a ponerlo tal vez a 0 ese C. Así que como puedes ver, eso se convierte en una especie de bocanada de humo. Y cuando lo pongamos en 0, verás que simplemente sucede en la posición que queremos. No queremos que revente por todo el lugar. Cuando uno de los personajes haga algo, vamos a añadir una acción de stop para destruir. Entonces aquí tenemos la acción de alto y esto va a ser destruido. Esto destruirá todo el objeto porque no queremos mantenerlo y siempre tenerlo repitiendo y repitiendo sobre el jugador que el enemigo que acaba de hacer el movimiento o algo así. Y por último, puedes cambiar los colores. Entonces podemos ponerlo en rojo, por ejemplo, si quieres o una especie de sensación anaranjada, tal vez rojiza. Y sí recomiendo que haga una pausa de zapatos en este momento y vaya a buscar a través de todo su sistema de partículas. Hay tantas cosas con las que jugar y divertirse. Ahí están las luces, el ruido de colisión. Hay tantos. El color a lo largo de toda la vida es uno de mis favoritos. Se pueden cambiar los colores a lo largo de toda la vida entre dos valores, por ejemplo, lo cual es
muy, muy bonito y realmente podría ser útil en este caso, lo hago. Si lo deseas, también puedes crear uno de esos sistemas de partículas y enviármelos usando los videos de Google Drive. Me encantaría, amor, amor ver lo que se te ocurre porque no soy una persona muy creativa. Yo solo dejo ese trabajo y luego
dejo las partes creativas a la gente que sabe hacer eso. Por lo que te recomiendo que realmente te salgas de tu camino. Tómate tu tiempo si estás a ritmo de persona y crea algo realmente bonito. Pero por ahora creo que esta bocanada de humo, lee hojaldre de humo me basta por ahora para que demostremos cómo va a funcionar esto. Voy a cambiar esto, solo lo mantendré en el nombre del sistema de partículas o tal vez lo nombra al personaje. Partículas atacantes. Ahora vamos a prefabricarlo. Entonces entraremos a los Prefabs. Hagamos esto un poco más grande. Los hechos de ataque, y lo agregaremos aquí y los hechos de ataque, lo ahorraremos. Y te voy a emitir un reto y eso es instanciar las partículas. Por lo que necesitarás obtener una referencia al sistema de partículas. Usa la variable adecuada que es para que te des cuenta. Entonces tendrás que instanciarlo antes de infligir daño. Y te daré un par de insinuaciones. Posición y o si quieres hacer esto por tu cuenta, olvidaste de ello. En fin, la posición y la transformación deben ser la
del personaje activo en el término actual. Por lo que este sistema de partículas indica qué personaje está atacando, por lo que necesitamos instanciación para más allá de ese personaje. Si quieres un poco de refresco sobre la instanciación, ve a buscarlo en los perros de la unidad con eso dicho, pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Entonces vamos a desplazarnos hasta aquí. Vamos a crear un campo serializado el cual va a ser de tipo sistema de partículas. Y va a ser el hecho del ataque o el hecho del personaje. Nos vamos a desplazar hacia abajo y el enemigo ataca aquí. Por cierto, hay un par de cosas que
realmente podemos refactorizar y aquí, por lo que por ejemplo, la elección del movimiento y la selección del personaje son muy importantes para convertirse, o podemos mantenerlo como un solo método. ¿ Quieres que tu juego tu tiempo para crear tu propio código? Y aquí dentro vamos a seguir adelante e instanciar. Y instanciar el ataque o el efecto de ataque del personaje. Nosotros lo vamos a instanciar sobre el acto de carácter actual, girar la transformada, esa posición. Y el acto de personajes actual gire la rotación de transformación. Y no necesitamos hacer un hijo de nada. Esto es lo suficientemente bueno. Y diremos aquí, instanciando el hecho. Carácter tacking. Guarde eso. De vuelta en nuestro juego, vamos a eliminar esto. Y antes que nosotros, de acuerdo, borramos y luego iremos al personaje aquí que es posiciones receptivas aquí dentro a 0. En tanto que el encargado de
la batalla, el hecho, allá vamos, ahorramos eso. Corrimos nuestro juego. Hicimos que pareciera más grande. Empezamos la batalla. Y sigamos adelante y golpeemos el Anki. Anki. Anki. Sí, Ahí vamos. Pero como se puede ver, sigue haciendo looping y looping y looping y looping. Entonces, ¿cuál es el problema aquí? Entonces voy a entrar en el personaje y ver cuál es el problema. Bueno, looping, guarde eso, corra nuestro juego, dale la tecla B. ¿ Qué tan genial se ve eso? Desde la perspectiva 3D? Es bonito. Y ataques. Y se va. Y se puede ver al enemigo atacando partícula. Se vuelve el Sur destruido después de 1 segundo. Entonces ahora sabemos qué personaje está atacando. Otra vez. Es el sacerdote o la sarna, y luego el candado de guerra otra vez. Entonces como pueden ver, porque hemos hecho que el Jimmy tenga HP actual, no
lo está haciendo de inmediato. En realidad también está siendo atacado. Y ahí vamos. Entonces espero que hayan disfrutado de la entrada del sistema de partículas. Si quieres un siguiente reto de estructura, te
recomiendo que sigas adelante y extraigas todos estos en métodos separados. Es realmente divertido. Te da una sensación de cómo funciona todo y te da algún subconsciente organizacional. No sé qué hace de todas formas, espero que lo disfruten y te veré en el siguiente video.
103. Visualización de la cantidad de daños: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. En este video, cuando ejecutamos nuestro juego, podemos iniciar la batalla. Podemos. Ahí vamos. Entonces como viste en este momento, nosotros, no sólo sabemos qué capa está siendo atacada, no sólo sabemos qué enemigo está atacando, también
sabemos la cantidad de daño que se está haciendo al personaje que está siendo atacado. Entonces te mostraré otra vez. Se han infligido 109 daños, se han hecho
73 daños. Y podemos confirmarlo desde la consola aquí mismo. Por lo que ya no necesitamos ningún registro de puntos de depuración. En algún lugar de aquí. Lo borraremos más adelante. Pero por ahora, no perdamos más tiempo y empecemos. O K. Entonces ahora que estamos visualizando a qué enemigo está atacando, el siguiente paso es visualizar la cantidad de daño que se está haciendo. Entonces para hacer eso, vamos a crear un pequeño lienzo. Tendremos un texto al respecto. Y vamos a preferir poco. Y cada vez que nos dañen un jugador o un enemigo, vamos a crear este texto instanciado en el aire a un poco de jitter y movimiento hacia arriba para luego hacerlo desaparecer. Entonces sigamos adelante y hagamos eso. El primero que tenemos que hacer es crear un lienzo. Entonces voy a hacer clic con el botón derecho en lienzo de UI y lo
vamos a llamar el daño recibido. ¿ Cómo vamos a hacerlo pequeño? Vamos a ir al Canvas y vamos al espacio mundial de zapatos. Y de esta manera podemos hacerla tan pequeña como queramos. Asegúrate de cambiar el daño aquí dentro, no el daño. O sea, el lienzo de los daños tomados. Déjame llamar a esto el Lienzo de pensamiento dañado. Y lo vamos a escalar a 0.010.01. Vamos a hacer doble clic aquí, o eso es lo que, moverlo hacia abajo junto a los jugadores. Vuelve a hacer doble clic sobre él. Sube, pivote. Ahí vamos. Entonces este será nuestro lienzo. Incluso podemos hacerla más pequeña. Pero por ahora, sigamos adelante y agreguemos un texto. De lo que no voy a añadir el texto Mesh Pro porque estos van a ser números. Entonces un texto regular creo que era de phi. Y vamos a escribir aquí 99. Vamos a saber qué, Vamos a añadir el texto mucho sonda. ¿ Por qué no debemos rendirnos, no darnos la oportunidad de usar el texto Mesh Pro? Vamos a ponerlo a la fiesta medieval si nos deja. Y vamos a anclar a todos los rincones. Entonces mantenga presionada Alt, haga clic en este, y ahí vamos. Por lo que ahora está anclado a todos los lados. ¿ Qué hace el año de mensajes de daño. No puedo verlo. ¿ Debería hacerlo más grande o más pequeño? No se está mostrando audaz. También puede ser porque déjame sólo ver qué está pasando. Mover aquí es el problema. De acuerdo, entonces ahí vamos. Por lo que detrás de esto no lo estamos viendo. ¿ Por qué es eso? Porque necesitamos asegurarnos de que estamos en la capa de clasificación correcta. Por lo que clasificar personajes de batalla de capa. Uno, vale, genial. Por lo que el daño recibido. Ahí va. Por lo que sobre los jugadores, debería aparecer sobre los jugadores. Vamos a hacerlo un poco más pequeño. Entonces voy a elegir el Canvas, ir a las herramientas de ROC y hacerlo grande. Y luego vamos a hacer la fuente un poco más pequeña también. Entonces creo que esto es suficiente. También lo vamos a reducir para que sea casi el tamaño exacto que necesitábamos ser. Vamos a cambiarlo a rojo. Y creo que eso es todo. Eso es todo lo que tenemos que hacer. Es bastante sencillo. No vamos a hacer demasiado de ello. Y luego lo vamos a arrastrar y preferir poco. Y ahora tenemos esta cantidad de daño, por lo que aparecerá encima del jugador y luego desaparecerá. Vamos a eliminar esto y vamos a crear un nuevo guión para controlar todo el jittering y la desaparición y el movimiento y así sucesivamente. Por lo que en los guiones, en el sistema de batalla, haga clic derecho en crear un nuevo guión C-sharp que va a ser la salud del personaje o el daño del personaje. Gui, GUI, interfaz gráfica de usuario. A pesar de que no es eso. Interfaz, pero hará el trabajo. Y vamos a tener, deberíamos haber sumado a los Prefabs, no se preocupe por eso. En tanto que los prefabs atacan, dañan, tomando lienzo, agregan un componente que va a ser el personaje GUI,
personaje dañino GUI, guárdalo. Cierra todo esto, haz doble clic, abre los guiones. De acuerdo, entonces, ¿qué necesitamos aquí? En primer lugar, necesitamos una referencia al texto, por lo que necesitaremos el para estar usando el TMP Pro. Y aquí vamos a crear un campo serializado el cual va a ser la malla de texto pero Gui, el impuesto de daños. Entonces vamos a crear un flotador que representará la vida útil. Y lo pondremos en 1.5. Vamos a crear otro flotador para la velocidad de movimiento. Así que mueve la velocidad. Y finalmente vamos a crear textos vibración. Por lo que vibración de texto. Y ya verás cómo vamos a aplicar esto en tan solo un poco y lo pondremos en 0.5. Estos son valores que ya he intentado y pensado, y estableceremos la velocidad de movimiento también para que sea uno. Guarda eso. Está bien, genial. Ahora una actualización, vamos a destruir el objeto del juego después de cierta vida. Así que destruye el objeto del juego después de que haya terminado la vida. Y también vamos a acceder a la posición y cambiarla a lo largo de la velocidad de movimiento. Entonces transformar la posición es igual a un nuevo vector 3. Y lo siento, no quise decir igual. Debe ser más igual. ¿ Por qué es eso? Bueno, porque déjame explicarte. Nosotros lo vamos a instanciar. Entonces. Queremos moverlo lentamente hacia arriba. Por lo que estamos agregando movimiento lentamente utilizando la velocidad de movimiento y sólo en el eje zed. Entonces aquí vamos a poner el movimiento X a 0. Y el movimiento y será la velocidad de movimiento punto tiempo.Deltatime o tiempos tiempo.Deltatime. ¿ Qué es el tiempo.Deltatime? Bueno, es algo que solo, y si te diste cuenta, lo siento me estoy interrumpiendo. Estos a los 0. Por eso no necesitábamos agregar un componente z. De todos modos, la velocidad de movimiento tiempos tiempo.Deltatime. Estamos, siempre que estamos tratando con un objeto, moviendo una actualización, o siempre que estamos tratando con algo que va aumentando con el tiempo, necesitamos asegurarnos de multiplicarlo por tiempo.Deltatime. Y lo que esto nos permite hacer, separa los fotogramas por segundo en nuestro juego de la velocidad de movimiento. ¿ Por qué es importante esto? Porque una actualización lo estamos llamando cada fotograma cuando se trata de llamar a métodos y hacer cosas, está bien cuando se trata de tomar entrada, no hay problema. Pero cuando se trata de movimiento, si tenemos una computadora muy fuerte y cuadros rápidos por segundo, entonces la velocidad de movimiento será muy, muy rápida. Y eso no queremos. Entonces lo que hacemos, y lo contrario es cierto. Si tenemos un PCI lento, la velocidad de cuadro es muy baja y la velocidad de movimiento es muy lenta. Entonces lo que hacemos es multiplicarlo por tiempo.Deltatime. Y esto separa la velocidad de fotogramas de la cantidad o de V veces esta actualización y tiempo.Deltatime es en realidad el tiempo entre cada fotograma y se puede ver y escuchar el tiempo de finalización en segundos desde el último fotograma. Por lo que esto nos permite tener un movimiento suave a pesar de cuántos marcos que tenemos una hora. Nuevamente, este es un componente muy importante, sobre todo cuando se trata de juegos 3D. Y por último, vamos a crear un vacío público, establecer daños. Y va a tomar un parámetro aquí dentro que va a ser la cantidad de daño o el daño a mostrar o lo que sea. Entonces vamos a acceder al texto de daños. Texto de daño. El texto es igual a la cantidad de daño punto toString porque este es un entero, por lo que necesitamos convertirlo. Entonces vamos a crear una cantidad de jitter. Y va a ser un rango aleatorio. Y va entre la vibración menos gravada y más vibración de texto, que son la mínima y la máxima. Por lo que se moverá entre menos 0.50.5 de izquierda a derecha solo un poco, solo para agregarle un poco de diversión. Y finalmente, la posición transform.py va a ser plus igual al nuevo vector 3. Y va a ser. Una cantidad. Y este es el valor en la x y luego el monto general en la y. y lo vamos a dejar en 0, o incluso podemos quitarlo y usar el de la misma manera que lo hicimos aquí arriba. Entonces agregando el 0 en el componente set, vamos a guardar eso. Y si todavía estás un poco confundido, estamos accediendo al texto. Lo estamos configurando como la cantidad de daño al que estamos accediendo o estamos estableciendo una cantidad general que va a ser entre la vibración del texto menos y positiva. Y por último, estamos agregando esta cantidad a la posición de nuestro texto cuando se instancie. Entonces ahora lo último que hay que hacer es realmente conseguir una referencia al mismo en el gestor de batalla y usarlo siempre que se
aplique daño y va a ser tu reto. Tu reto es mostrar los daños. Así que consigue una referencia a la GUI de salud del personaje instanciada cada vez que un personaje recibe daño o daño del personaje entra aquí. Instanciado cada vez que un personaje recibe daño y averiguar cuáles deben ser las posiciones y rotaciones. Estoy bastante seguro de que ya sabes hacer eso. Así que pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Entonces en nuestro gestor de batalla aquí arriba, vamos a conseguir una referencia, un campo serializado de tipo, daño de carácter, GUI, daño, textos lo llamarán simplemente. Y luego cuando nos desplazamos hacia abajo, cuando tomamos el daño para que se inflija el daño, podemos o llamarlo en el ataque enemigo o podemos llamarlo aquí. Sólo llamémoslo y el ataque enemigo. Por lo que después de infligir el daño al jugador, vamos a entrar en el personaje en la GUI de daño del personaje. Va a ser un personaje llamado texto de daño de carácter. Y va a ser igual a la instanciación. ¿ Y por qué lo estamos configurando en una variable? Porque solo un poco vamos a usar el método de daño del SAT en él. Entonces por eso necesitamos una variable o simplemente podemos usarla en el instanciado, pero esto está más limpio. Entonces el texto de daños que tenemos una referencia allá arriba. ¿ Y dónde lo estamos poniendo? Bueno, está en los personajes activos, pero no en el término actual, sino en el seleccionado para ser atacado. Por lo que Jugador Seleccionado para atacar la transformación de punto. ¿ Sabes lo que creo un mejor lugar de agregar esto? Porque lo vamos a estar usando también cuando el jugador ataca. Por lo que no queremos que solo inflija daño cuando el enemigo ataca. También queríamos hacer eso cuando cualquier daño. Por lo que en lugar del jugador seleccionado, vamos a utilizar el personaje seleccionado para atacar la posición de la caja de transformación. Y por último, carácter activo, yo, solo duplique esto, éste, rotación. Guarda eso. Entonces otra vez, ¿por qué pasé esto del ataque enemigo al daño infligido al personaje? Debido a que el daño infligido al personaje también será llamado por el jugador. Y queremos aplicar el mismo daño a los enemigos que nosotros, como verás ahora mismo a los jugadores. Entonces es mejor usarlo en un método que sea más, llamémoslo universal y disponible para ambas partes. Por lo que ahora instanciamos el texto siempre que infligemos daño al personaje seleccionado para atacar. Entonces vamos a guardar eso. Volvamos a una unidad y manejemos esto y veamos qué pasa. Entonces ejecuta nuestro juego y obtenemos un error. Y la unidad se apaga por sí sola. Oh, bien, bienvenido de nuevo. Yo quería mostrarte lo que pasa si, en caso de que obtienes este tipo de maquetación, solo tienes que ir al layout de dos por tres y estamos de vuelta, nena. Y antes de que me olvide, esto era un problema. Por eso me pasó hace un par de videos. Entonces, de nuevo, tenemos que asegurarnos de fijarlo en 1920. Decidido aquí va a cambiar. Desafortunadamente, no hay nada que puedas hacer para aplastar la unidad. Por eso siempre guardas y siempre creas compromisos y repositorios. Entonces ahora vamos a entrar a nuestro gestor de batalla. Tenemos el texto dañado. Vamos a entrar a las Prefabs y a las batallas. Y no preferimos el bit 0. Hicimos prefabricados a nuestro asustado por lo tanto, Pero así vamos a tomar el texto de daños que se agrega aquí. Ahí vamos, el daño tomando Lienzo, vamos a ahorrar eso y vamos a probar esto. Entonces ejecutamos nuestro juego y ahora iniciamos la batalla. Nos movemos por los jugadores. Ah, ahí vamos. Entonces al menos está funcionando. Tenemos los textos funcionando correctamente, todo está funcionando. Ahora lo último que nos olvidamos de hacer porque me distrají explicando, qué estamos haciendo. Por lo que el carácter de daño texto que dicho daño. Conjunto. ¿ Daños? Sí, por favor. ¿ Y qué enviamos aquí? El monto de los daños. Entonces el daño a dar, guardar eso de nuevo en nuestro juego, necesitamos poner una referencia al texto aquí dentro. Entonces, ¿cómo vamos a hacer esto? Hagamos doble clic y abramos el prefab. Y arrastraremos el texto aquí hasta el texto. lo guardamos. Y la forma en que abrimos el prefabricado, simplemente
hacemos doble clic en él. No es nada grande. Vuelve atrás. Ahora tenemos el conjunto dañado, texto, daño sat ejecutar el juego, detiene la batalla. Sí. Ahí vamos. 2159. ¿ Y eso es correcto? Déjame abrir la consola para que podamos ver aquí el primer ataque fue 21. Sí, fue correcto. Y el segundo fue 59. Probemos esto otra vez. 63, ahí vamos. 220 ó 212. Excelente. Probemos esto otra vez. Dominio DLT. De acuerdo, genial, Así que todo está funcionando perfectamente bien. Podría haber un poco de afinación, como ya he dicho, si quieres agregar un poco más de sabor al texto, añadir su propia fuente, creo que es una gran idea. Se pueden hacer muchas cosas. Se puede cambiar el jitter. A lo mejor quieres aplicarlo en una posición ligeramente variada, no inmediatamente encima del jugador. Por lo que espero que lo disfruten. Espero que estés cometiendo tus cambios. Y te voy a ver en el siguiente video.
104. Estadísticas de batalla: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, ejecutamos el código, iniciamos una batalla, vamos hasta el final, pero te darás cuenta aquí que tenemos al sombrío Draco y Jimmy y sus vidas realmente se deterioran cuando reciben daños. Por lo que se puede ver que sus vidas se van despacio, pero seguramente. Ahí vas. El Graham muere, Draco muere. Sólo Jimmy sobrevive. Pero si Jimmy muere, ¿qué pasará? Y cuando Jimi muere, hemos perdido, oh Dios mío. No perdamos más tiempo. Y empecemos. Ah, está bien. Entonces ahora sabemos quién está haciendo el daño. Sabemos cuánto daño está infligiendo. Todavía hay un pequeño problema, un pequeño problema pequeño-poquito. Cuando ejecutamos nuestro juego, golpeamos la tecla B y todo parece estar funcionando correctamente. Pero el problema es que tenemos nombre de jugador uno, nombre de jugador uno. ¿ Quién es el nombre del jugador uno? ¿ Y por qué no se está cambiando la salud? ¿ Y por qué tenemos tanta manera? Entonces es hora de empezar a actualizar nuestras estadísticas de batallas. Entrémonos a nuestro gestor de batalla y hagamos justamente eso. Voy a cerrar el trato ellos como el ataque enemigo. Estoy bastante seguro de que hemos hecho con todos estos. Si sí necesitamos, volveremos a ellos. Pero lo primero es que necesitamos una referencia a los textos. Entonces aquí vamos a seguir adelante y crear un campo serializado el cual
va a ser de tipo texto Mesh pero Gui. ¿ Qué, qué, qué tenemos? Ah, bien, así que usando el MPI pero, me preguntaba cuál es el problema. Entonces malla de texto por fila, tú GUI. Y vamos a tener un, y aquí dentro necesitaremos un deslizador, pero necesitamos configurar la interfaz de usuario. Entonces guardo eso. Y déjame simplemente ajustar esto. Era 133, creo. Está bien. Por lo que un deslizador, 14, el deslizador de salud de la capa y el deslizador de maná del jugador. Guarda eso. Está bien, genial. Pondremos todo en el inspector antes de que nos olvidemos. Entonces gerente de batalla, escena de batalla. Ahí hay oh no, fue el Lienzo de batalla, las estadísticas de los jugadores. Y déjame encender la escena de batalla para que podamos ver claramente las estadísticas de los jugadores. De acuerdo, ahí vamos. Entonces voy a abrir estos. Voy a ir al encargado de batalla. Voy a bloquearlo y los textos del jugador serán elegidos y arrastrados a los lugares. Los deslizadores de salud van a ser arrastrados a los lugares correctos. Y el maná también va a hacer lo mismo. Guarda eso. Ahí vamos. Entonces todo está configurado, va a cerrar todos estos abajo y vamos a apagar la escena de batalla. Vuelve atrás y unidad, nos aseguramos de guardar todo eso. Ups. Oh, no, no, no, ahora mismo no. Entonces por lo menos ahora sabes que tienes un reto, pero antes de eso vamos a crear nuestras estadísticas de jugador de actualización. Y si lo deseas, puedes pausar el video y actualizarlo por tu cuenta. Pero vamos a primero que nada, crear un es igual a 0 mientras yo es menor que el aire. El jugador nombra texto de longitud de punto y luego yo plus, plus. Por lo que nos estamos moviendo a través de todos los jugadores nombrados gravados. Estamos comprobando si los caracteres activos conteo de puntos es mayor que uno, perdón, punto I. Y esto, ¿por qué estamos haciendo esto? Porque necesitamos asegurarnos de que haya más personajes que los textos del jugador que están disponibles. Si no lo hay, eso significa que no podemos proceder, no
podemos actualizar el texto. Ya verás que esto no es muy, muy importante, pero es importante para evitar un par de errores. Por lo que solo comprobamos que tenemos más personajes, después tenemos nombres de texto de jugador. Entonces vamos a comprobar si el personaje activo es jugador. Por supuesto, obviamente, necesitamos actualizar a los jugadores. Y entonces aquí dentro es donde comienza la materia divertida. Entonces vamos a crear una variable de carácter de batalla, que va a ser los datos del jugador. Y va a ser igual al personaje activo. Entonces tenemos una referencia a él porque estoy seguro de que lo vamos a estar usando mucho. Entonces vamos a acceder al texto del nombre. Por lo que el nombre del jugador texto en la posición I, el texto. Y va a ser igual a los datos del jugador, el nombre del personaje. Entonces vamos a usar los deslizadores. Por lo que el deslizador de salud del jugador en la posición i. Vamos a establecer el valor máximo como siempre lo hacemos al jugador data dot max, HP, y el valor actual. Y el valor, quiero decir, y aquí el valor actual del HB. Duplicemos estas dos líneas. Y vamos a usar el deslizador. Y el slider. El valor máximo es el máximo y el valor es la forma actual. Entonces vamos a salvar todo eso. Y ahora vamos a ir al reto, algo que sorprendió. Entonces todo lo que tienes que hacer es asegurarte de que no mostramos ninguna información a menos que tengamos un jugador activo. Por lo que necesitarás crear un enunciado else A else para asegurarnos de que no veamos ningún punto vacío cuando no tenemos un jugador activo ahí. Así que pausa el video ahora mismo y ve a hacer el reto. De acuerdo, Entonces hay dos lugares que necesitamos para
asegurarnos de apagar el objeto de juego del impuesto. Entonces el primero está aquí dentro. Tenemos el personaje activo es jugador. Si no es un jugador que nombre del jugador, texto,
punto, punto, objeto del juego, que se sentó activo es falso. Y también si tenemos más caracteres activos o amina, si tenemos menos acto de caracteres que el monto del impuesto que tenemos, entonces lo contrario. Nosotros vamos a hacer lo mismo aquí dentro. Guardar, copiar esto, pegarlo aquí, guardar eso. Y ahora lo último que tenemos que hacer es ver dónde llamamos a las estadísticas de los jugadores de actualización. Si bien hay un par de lugares primero, cuando infligamos daños. Entonces podemos hacer esto en el enemigo. Aquí, vamos a actualizar las estadísticas de los jugadores. ¿ Dónde más debemos hacerlo? Podemos hacerlo cuando vayamos al siguiente turno. Así que actualiza batalla, actualización, estadísticas de jugador. Y también lo hacemos cuando iniciamos la batalla. Por lo que cuando iniciamos la batalla, también
actualizamos las estadísticas de los jugadores. Y creo que eso es todo lo que tenemos que hacer. Entonces vamos a salvar todo eso. Vamos a entrar a Unidad. Vamos a esperar a que se arme el guión. Nosotros vamos a ejecutar el juego. Vamos a iniciar la batalla. Y por alguna razón, no
puedo iniciar la batalla. Eso es porque por alguna razón, Probemos esto una vez más. Ah, está bien. Entonces, ¿qué se ha apagado el gestor de batalla? Debería ser la escena de batalla la que esté apagada. Ah, y tenemos Lo tenemos bloqueado. Entonces ahí vamos. No. O sea, Ahí vamos. De acuerdo, ahora ejecutamos el juego. Eso fue tan raro. Entonces iniciamos la batalla y, y, y así tenemos al sombrío Draco. Oh Dios mío, ¿Qué guay es eso? ¿ En serio? ¿ Qué tan guay es eso? Probemos esto una vez más. Me sorprende que funcionara desde el primer paso. Entonces Jimmy, Jimmy, Jimmy el sombrío. Bonito. Veamos qué pasa. Draco abajo dados. Vamos a ver de nuevo. Jimi muere los dados sombríos y perdemos porque todos nuestros personajes tienen un HP actual de 0. Pero lo siguiente que tenemos que hacer es manejar las capas muertas cuando actualizamos la batalla, si recuerdas, hemos matado personaje en. Entonces te veré en el siguiente video y me aseguraré de comprometer tus cambios. Y si estás disfrutando del curso y te gusto como instructor, me encantaría conocer tu opinión. Entonces déjame una reseña cuando puedas, cuando quieras, cuando quieras, cuando te apetezca. Y te veré en el próximo. Hey Mike líder del futuro. Sé que querías deshacerte de mí, pero aquí estoy de vuelta otra vez. Hay un pequeño problema. Entonces cuando ejecutamos el juego, se
puede ver que apagamos el gramo, pero no sólo podemos ver su nombre. Entonces este es un pequeño problema y aquí sólo estamos apagando el nombre de texto del jugador. Eso no es lo que queremos. Entonces lo que haremos es conseguir una referencia a los jugadores. Y aquí en lugar de sólo conseguir el nombre, vamos a hacer referencia también a los objetos del juego. Y va a ser objeto de juego. Y lo llamaremos las estadísticas de jugadores o las estadísticas de Batalla de jugadores. Eso lo ahorraremos. Va a ser una matriz. Y usaremos las estadísticas de batalla de jugadores aquí. Entonces las estadísticas de los jugadores, posición I, y las batallas de los jugadores, esa es la posición I. tanto que el jugador combate eso. Fue eso tan duro. Entonces vamos a guardar eso. Volveremos aquí, habrá que hacer referencia a ellos. estadísticas de batalla de Claire
elegirán, bloquearán esto. Elige al jugador de uno a tres, ponlos aquí en el guardado que apaguen el gramo o Draco, ejecutamos el juego ahora no deberíamos verlo aparecer. Entonces ahí vamos. No vemos toda la estructura de Grimms, que es mucho mejor. Perdón por interrumpir. A lo mejor querías descansar. Decías por fin Michael, Es la semana de los solucionadores. No hace falta que lo escuches más, pero vuelve. Entonces los veré en el próximo video donde estaremos matando a nuestros personajes. Muy divertido.
105. Manejo de los batalladores: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, estaremos saltando sobre los jugadores que son eso. Por lo que actualmente necesitamos tres términos para los jugadores. Pero cuando uno de ellos muera, ya verás. Por lo que ahora muere Draco. Y se puede ver ahora mismo, determinar un 0 cuando tuvimos el Anki una vez, va de inmediato a dos, por lo que salta el turno de Draco. Se va de inmediato a los enemigos. Sólo se toman dos términos. Entonces ahora si teníamos los Anki, atacamos con Jimmy inmediatamente vamos al turno de los enemigos. Entonces, no perdamos más tiempo y empecemos. Ah, está bien. Por lo que actualmente todo parece estar funcionando bien, pero hay un pequeño problema. No estoy seguro si lo has notado. Si reiniciamos la batalla digamos que tenemos a Jimmy y a Draco. Teníamos el Anki y la llave. Ahí vamos. Jimmy. Jericó otra vez, intentemos esto. Entonces Jimmy Draco. Draco acaba de morir. Está bien. Dre podría simplemente morir. Eso significa que no tiene que conseguir un giro. Entonces ahora deberíamos, en teoría, cuando presionamos la tecla Enter, solo tener a jimmy play y luego pasamos a los enemigos. Entonces llegamos al final. Teníamos la n otra vez. Entonces obviamente puedes ver que dimos un giro y si no fuera obviamente yo enciendo el gramo. Entonces el problema aquí dentro que a pesar de que algunos de nuestros personajes están muertos o nuestros jugadores lo están, que todavía están tomando turnos. Entonces en el manager de batalla otra vez, 123, por lo que tres de ellos están atacando. Ojalá uno de ellos muera 3123. Queremos que uno de ellos muera. 2, 3. Esto va a tardar para siempre. De acuerdo, entonces ahora Draco murió 1, 2, 3. Nuevamente, estamos pasando por los términos. Y ahí vamos. Para que veas que el turno sigue jugando para Draco Jimmy y cada jugador que da dados. Entonces este es un problema que no queremos tener. Entonces lo que haremos es cada vez que estamos comprobando si todos los enemigos o jugadores son deudas, si no lo son. Entonces eso significa que ni perdemos el juego ni cuándo el juego. Queremos saltar sobre el personaje Stearns que tienen un HP actual de 0. Y lo vamos a hacer usando un bucle while. Entonces, ¿qué es un bucle while? Es similar a para bucles donde ejecuta un bloque de código varias veces. Pero en lugar de determinar el número de veces antes de la mano, así que en lugar de establecer ILS que, digamos la longitud de una matriz, esperamos hasta que se cumpla una determinada condición. Entonces la estructura de la misma, tenemos un bucle while. Tenemos cierta condición que es cierta. Si lo es, entonces entramos en el código y este corchete. Y seguimos haciendo esto una y otra vez y otra vez y otra vez hasta que finalmente, tenemos esta condición para ser falsos. Y cuando se vuelve falsa, dejamos de pasar por el bucle y estos dos puntos aquí mismo no deberían estar presentes. Déjenme quitarlos. Bienvenido al back-end. Ahí vamos. Así que asegúrate de entender cómo mientras funcionan los bucles si quieres, ve a revisarlos en diferentes lugares, búscalos, asegúrate de saber qué hacer porque en tan solo un poco, tienes un reto para saltarte a los personajes. Por lo que una batalla de actualización. Si ahora todos los enemigos lo son, todos los jugadores están muertos. Después comprobamos si ninguno de ellos. A eso me refiero. Por lo que necesitarás agregar una declaración else, necesitarás crear un bucle while que siga en bucle. Si bien el personaje activo HP es 0, aumentado determinado por uno cuando lo es. Y si el giro es mayor que el número de caracteres
activos tendrá que restablecerlo a 0. Es un reto un poco duro, sobre todo porque estás usando una nueva arma que acabamos de entender, que es el bucle while. No se preocupe. Haz lo mejor que puedas. Pausa el video ahora mismo, entiende el reto. Entiende mientras bucles, y vete. Hazlo. De acuerdo, bienvenido de nuevo. Entonces vamos a subir. ¿ Dónde está nuestra batalla de actualización? Ahí vamos. Entonces si todos los enemigos y todos los jugadores están muertos, o vamos a ganar o vamos a perder. Pero si ninguno de ellos lo es, entonces crearemos una sentencia else creará un bucle while, y esto seguirá en bucle mientras el acto de los personajes en el turno actual. Corriente de punto, HP es igual a 0. Entonces en el término actual, si bien tenemos un personaje que tiene un HP actual de 0, queremos incrementar el giro actual de inmediato. Y comprobaremos si el término actual es mayor o igual al recuento de puntos de los caracteres activos, entonces vamos a volver a ajustar el giro actual a 0. Y eso es todo. Entonces, ¿qué está pasando aquí? Conforme estamos actualizando los batallados, comprobamos si tenemos ahora no hemos lidiado con matar personajes. Eso lo haremos más tarde, no te preocupes. Entonces si todos los enemigos o todos los jugadores están en eso, eso significa que podríamos tener uno de ellos que tiene un HP 0 actual, pero aún dando turnos. Entonces, ¿qué hacemos? Creamos un bucle while que sigue revisando todos los caracteres del término actual. Si tienen el HP actual de 0, entonces el término actual se incrementa en uno. Si el término actual es mayor que el acto de conteo de caracteres que el término actual vuelve a 0. Después miramos hacia atrás, vamos al siguiente personaje porque hemos
incrementado el giro y esta mientras no se ha cumplido condición. Por lo que comprobamos si el siguiente personaje también tiene un HP actual de 0, luego nos movemos de nuevo, ingresamos a la condición, ingresamos al bucle while. Aumentamos determinado, seguimos uno, luego volvemos a este bucle while. Entonces finalmente llegamos a uno de los personajes que no tiene un HP 0 actual y detenemos la batalla o él hace su movimiento o lo que sea. Entonces vamos a ahorrar eso. Verás esto en acción puede ser entenderlo mejor si aún estás confundido. Guarda eso, ejecuta el juego. Esperemos que uno de los jugadores muera inmediatamente. Entonces y ahí vamos. ¿ Qué tan guay es eso? Draco acaba de morir. Entonces ahora cuando golpeamos la tecla End una vez, bueno ahí vamos. Por lo que el actual término salta inmediatamente a dos. Por lo que ahora lo golpeamos dos veces. Genial. Por lo que ahora Draco no tiene giro. Entonces otra vez, tuvimos el Anki una vez que nos movemos de inmediato al segundo, tercero, Jimmy murió. Entonces ahora técnicamente solo deberíamos golpear al Anki una vez. Tarifa de niña. Entonces todo está funcionando correctamente. Jugadores que son, que no están tomando turnos. Y ahora voy a comprometer mis cambios, jugadores y personajes, porque esto va a funcionar en ambos sentidos, ya
no se turnan cuando están comprometidos cambios. Ve con el maestro y ve por cuánto hemos pasado. Hemos pasado por tanto y hay un poco más por delante. Entonces te veré en el siguiente video.
106. Sección 16: ataque de jugadores: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. Recuerda cuando nuestros enemigos solían atacarnos mientras no teníamos forma de defendernos. Pero ahora todo eso cambia porque cuando iniciamos la batalla, no
nos saltamos el turno. En realidad podemos atacar. Entonces atacamos voluntad el esqueleto, atacamos con Draco y atacamos fue Jimmy. Ahora nos dan patadas los traseros. No estoy seguro de que deba haberlo hecho. Pude haber dicho eso. De todos modos, se puede ver que a quién está atacando lenta pero seguramente. Pero nosotros lo estamos. Entonces, no perdamos más tiempo. Y empecemos. Ah, vale, Así que ahora que tenemos a nuestro enemigo atacando, tenemos las estadísticas de batallas actualizándose. Sabemos a qué jugador, qué enemigo está atacando, qué jugador está atacando. Si el jugador muere, puede tomar turnos por lo que todo se va uniendo. Pero ahora el siguiente paso es boom, hacer que el jugador empiece a atacar. ¿ Cómo vamos a hacer esto? Bueno, vamos a crear otro método que permita al jugador atacar. Entonces abramos el guión. Y en el gestor de batalla, como pueden ver, tenemos mucho. Ahora es el momento del ataque del jugador. Y voy a añadir una capa de comentarios métodos de apilamiento. Y empecemos. Entonces, en primer lugar, voy a crear un ataque de jugador de vacío público. Y le vamos a dar dos variables. El primero va a ser un nombre de movimiento de cadena. Entonces es el movimiento que vamos a realizar y un entero que es el seleccionado, un Emmy. Entonces aquí, en primer lugar, es, es bastante similar al ataque enemigo. Es casi lo mismo. Entonces lo primero que necesitamos en el ataque enemigo, obtenemos al jugador. Entonces no hay necesidad de eso. Vamos a seguir adelante y en primer lugar,
conseguir el poder de movimiento y luego seleccionar un movimiento determinado. Entonces aquí vamos a crear un poder int mov igual a 0, y vamos a continuar. Pero la diferencia, o lo mismo aquí
dentro es que estamos usando básicamente el mismo código. Lo que hacemos es crear más poder. Ya tenemos al enemigo seleccionado al que queremos atacar. Entonces abajo aquí, buscamos a través de la batalla más inútil. Verificamos si las batallas se mueven. Lista, movimiento de puntos es igual al nombre de la película que lo enviamos a través del ataque del jugador y así sucesivamente y así sucesivamente. Entonces déjame mostrarte, porque siento que lo he estropeado totalmente. Entonces final I igual a 0. Si bien yo es menor que los movimientos de batalla listan la longitud. Y yo plus. Por lo que estamos dando vueltas a través de los movimientos de batalla. Entonces comprobamos si la batalla se mueve lista en la posición I, ese nombre de movimiento es igual al nombre Move que se está enviando aquí mismo. Entonces abrimos y luego vamos a instanciar el efecto, que es más o menos el mismo que éste. Y aquí podemos copiar esto. Podemos copiar incluso el poder de movimiento, copiar esto, pegarlo aquí. Y está en el objetivo enemigo seleccionado y en el objetivo enemigo seleccionado. Ahora lo que podemos hacer aquí es que realmente podemos crear un método usando esto. Y es muy útil porque podemos usarlo aquí y dentro, cual creo que es bastante razonable. Entonces sigamos adelante y seleccionemos estos clic derecho acción rápida y refactorización. Vamos a extraer el método. Y toma en el ojo y el objetivo enemigo seleccionado. Entonces vamos a llamar a esto conseguir más poder y efecto instanciador. No estoy seguro si deberíamos hacer todo eso. Y la instanciación de hechos. Oh Dios mío, graciosa. Caso. Por lo que se movió la instanciación de poder y efecto. ¿ Qué te parece eso? Entonces vamos a usar este método aquí. Por lo que solo usaremos la instanciación del efecto. Y cuáles son las variables que toma. Por lo que toma en el objetivo enemigo, que llamaremos el blanco del personaje. Eso lo ahorraremos. Y luego vamos a enviar aquí al jugador seleccionado para atacar con el I. Guarda eso y podemos quitar la instanciación de aquí. Vamos a borrarlo. Y por supuesto vamos a estar probando esto otra vez. En realidad podemos ir y probarlo ahora mismo. También tenemos que extraer éste porque lo usaremos en tan solo un poco. Ya verás. Entonces ahí vamos. Vamos a probar esto. Asegúrate de que el método que hemos extraído siga funcionando. Por lo que esto crea una instancia del efecto de los ataques y ahora ejecutan el código. Entonces y ahora la unidad va a empezar y sin embargo sigue funcionando. Excelente. Entonces guardamos eso. Ahora tenemos un método que obtiene el poder de movimiento y la instanciación de efectos, consiguiendo mover la potencia y la instanciación de efectos. Muy sutil. De todos modos, sigamos. ¿ Qué debemos estar haciendo a continuación? Una, necesitamos estar agregando los efectos en el ataque o en el enemigo que está siendo atacado. Entonces, y tu reto es agregar el efecto. Por lo que necesitarás llamar al método que crea instancias del efecto que
nos dice qué enemigo está atacando o qué jugador está atacando. Y también necesitarás llamar al método para hacer frente al daño con los argumentos apropiados. Entonces con esa información, pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. ¿ Cómo te llevaste con eso? Entonces tenemos más poder y aquí todo debería estar funcionando bien. Entonces vamos a extraer este método del ataque enemigo. Bueno, haga clic derecho. Y estos son los hechos de ataque de carácter. Entonces este es el sistema de partículas, como se puede ver aquí dentro. Es lo del tiroteo rojo. Y vamos a extraer, va a hacer un método de extracción. Y este método de extracto instancian hecho en tacking carácter. Entonces hoy no es mi mejor día para dar nombres a los métodos, pero al menos son realmente afilados y ya sabes a lo que llamas. Entonces después de elegir qué película vamos a hacer, le sumamos el poder. Vamos a instanciar el efecto sobre el personaje atacante. Y lo que hace es elegir el término actual, por lo que elige al personaje activo en los giros actuales. Entonces va a elegir al jugador que está atacando, lo cual es bueno. Y por último, necesitamos infligir daños. Por lo que vamos a hacer daño a los personajes. Vamos a elegir nuestro objetivo, que es el objetivo enemigo seleccionado. Y entonces le vamos a dar el poder de movimiento que hemos determinado. Entonces, vamos a guardar eso. Y aún tenemos el último bit de código, que es seguir adelante y hacer el próximo término. Guarda eso, atrás, termina nuestro juego. Y aquí vamos a correr. También vamos a primero antes de hacer eso, necesitamos realmente llamar a este método. Entonces, ¿dónde llamamos ataque al jugador? Bueno, lo vamos a llamar desde los botones. Entonces encenderemos la escena de batalla y entraremos en las escenas. Y tenemos que seleccionar uno de estos. Voy a seleccionar el fondo de ataque. Entonces el botón de ataque, si me desplaza hacia abajo, si añado una condición en el gestor de batalla, ve al gestor de batalla. ¿ Qué podemos hacer aquí? Necesitamos el ataque del jugador por alguna razón. No tengo el ataque del jugador. ¿ Es una clave pública? Es gerente de batalla pública. Gerente. Entonces como pueden ver, por alguna razón, no
podemos encontrar el ataque del jugador. ¿ Y por qué es eso? Pues bien, porque si
miramos aquí, podemos ver que toma dos argumentos. Eso es un gran no-no. No podemos tener dos argumentos. Entonces lo que vamos a hacer es que vamos a añadir un paréntesis aquí. Vamos a comentar esto fuera. Y entonces vamos a crear un entero aquí. Y va a ser el objetivo enemigo seleccionado. Entonces vamos a copiar esto, pegarlo aquí, y sólo seleccionaremos el objetivo que es 0. Eso lo ahorraremos. Y ahora deberíamos poder verlo aquí dentro. Entonces cuando golpeamos al gestor de batalla de función, y ahí vamos, ataque de
jugador que toma en una cuerda. ¿ Y por qué es eso? Pues bien, porque no se puede llamar aquí a un método que tome dos argumentos. Encontraremos una solución para esto más adelante. No te preocupes por ello. Esto es solo con fines de prueba. Entonces, ¿cuál es el ataque? Es la barra. Vamos a copiar ese gestor de batalla, me refiero a botón de ataque. Y el botón de ataque suele hacer la barra corta lo ahorrará. Excelente. Entonces ahora es el momento de ejecutar nuestro juego. Entonces vamos a correr o necesitamos apagar la escena de batalla de la escena de batalla alrededor del juego tenía el BP. Entonces ahora podemos atacar, podemos elegir atacar. Entonces ahí vamos. Nos atacamos a nosotros mismos, lo cual no es bueno. Para que veas que los tres al menos sabemos que podemos atacar. Entonces si atacamos, digamos ataque de golpe, Draco ataca el esqueleto. El jugador ataca el esqueleto. También. Correcto. Ahora tenemos que arreglar lo que hemos hecho incorrectamente en el daño infligir al personaje o k Entonces lo que no tomé en consideración es que la lista de enemigos empieza en la tercera porque por qué tenemos el esqueleto, lo que sea que tú llámalo el oscuro. Y Jimi solo, los enemigos comenzaron en el tercero y el cuarto entero. Entonces en el, puede elegir ya sea aquí tres o cuatro. Escojamos 3. lo guardamos. Ahora atacamos al enemigo apropiado. Y no tomé eso en consideración. Entonces ahora cuando atacamos, el de nuestros jugadores debería tener el sistema de partículas sobre él y esto hecho debería tener el efecto de corte en él. Ahí vamos. Ahí vamos. Ahí vamos. Y puedes ver que estamos siendo atacados y determina, si has notado que se están actualizando por su cuenta. Por lo que espero que lo disfruten. No te preocupes, todo estará automatizado en el próximo par de videos. Cuando te vea, entonces.
107. Elegir los objetivos: Bienvenidos de nuevo a mis compañeros desarrolladores de juegos a un video completamente nuevo donde me olvido de hacer muchas cosas. Pero eventualmente lo conseguimos. Entonces cuando ejecutamos nuestro juego, teníamos DBT. Elegimos atacar. ¿ A quién queremos atacarlos para atacar a un caudillo? O quieres atacarlos edad, votarlo ahora mismo porque estamos atacando al caudillo de lo que estamos atacando al mayor, entonces estamos atacando nuevamente al mayor, pero luego al eje mayor. Entonces, no perdamos más tiempo y empecemos con la elección de nuestros objetivos. De acuerdo, Entonces obviamente no queremos tener que elegir a un enemigo del código. Eso es una completa tontería. Lo que queremos hacer es tener una forma de elegir un objetivo de nuestra interfaz de usuario. Entonces hagámoslo. Encenderemos la escena de batalla. Iremos al menú. Vamos a duplicar este menú. Vamos a llamar a esto los objetivos enemigos y los objetivos enemigos. Y lo vamos a, creo que lo guardemos aquí. Eso no es problema porque cuando elegimos atacar objeto mágico o correr, cuando abrimos el objetivo enemigo, debería cubrir el ataque anti magia, no
deberíamos poder entonces a otra cosa. Entonces aquí dentro, el objetivo enemigo, vamos a seguir adelante y vamos a ver. Voy a elegir estos tres botones. Voy a eliminarlos. Y voy a quitar el, lo siento, el ataque de barra y aquí, y esto cambiará del botón de ataque a un, digamos botón enemigo. Y el texto aquí dentro va a cambiar a, digamos Target. Y lo haremos para que se ajuste tan auto tamaño e incremente el máximo. A lo mejor. No lo sé. Entonces queremos que sea lo suficientemente grande. Ahí vamos. Lo pondremos justo debajo. Pero así allá vamos. Entonces es el objetivo uno. Ahí vamos en tamaños de auto y voy a hacerlo un poco más pequeño en los bordes. De acuerdo, ahí vamos. Y correcto. Ahora lo vamos a duplicar. Entonces lo duplicaremos una, dos, tres veces, y sólo tenemos un máximo de cuatro enemigos. Entonces vamos a mantenerlo así. Ahora lo siguiente que vamos a hacer es crear un guión para los botones de objetivo de batalla. Entonces vamos a ir y a nuestros guiones a las batallas. Va a hacer esto un poco más grande con el botón derecho crea un guión C agudo que se va a llamar la batalla. Batalla. Objetivo. Botones pulsados Enter. Espere a que esto se compile. Y voy a adjuntarlo a cada uno de estos botones. Entonces voy a elegir a todos ellos. Voy a añadir un componente. Voy a elegir los botones de objetivo de batalla. Y vamos a abrir el guión. Ahí vamos. Entonces ahora es el momento de agregar un par de variables. Entonces ahora queremos en primer lugar,
un nombre de película, así que es público, String, mueva nombre, y ya verás por qué necesitamos un nombre de película aquí. No debería ser ni siquiera público, pero lo mantendremos como público para que sepamos lo que está pasando. Entonces crearemos un público y va a ser el blanco de batalla activo. Objetivo. Y por último, vamos a crear una malla fiscal pública Pro. Y va a ser el ¿Dónde está? Un sondeo de malla de texto, el nombre del objetivo. Eso lo ahorraremos. Ahora empieza, vamos a asignar todos estos y podemos hacer esto, o simplemente asignaremos este stack smash bro. Entonces vamos a ir y decir que el nombre objetivo es igual para conseguir componente y niños texto Mesh pro ir. Y ahí vamos. Por lo que devuelve un texto mucho pro y Stalin GST pro GUI GUI. Entonces ahora esto está funcionando. Lo siguiente que vamos a hacer es crear aquí un método para presionar. Entonces, ¿qué pasa cuando presionamos el botón? Va a ser público. Prensa de vacío. Y lo que hacemos aquí es simplemente llamar al gestor de batalla y obtener la instancia. Y atacamos fue el jugador, así que manager de batalla, instancia de punto, ataque de jugador de punto. ¿ Y qué enviamos aquí? Enviamos el nombre de la película y también enviamos en el blanco de batalla activo. Por lo que ahora podemos entrar al gestor de batalla. Podemos quitar los comentarios aquí dentro y
podemos detener esto ahora esto impedirá que el fondo funcione, pero sin preocupaciones, nos ocuparemos de eso en tan solo un poco. Por lo que aquí enviamos en el blanco de batalla activo. Eso lo guardamos. Y lo siguiente que tenemos que hacer es que realmente tengamos el control de este menú objetivo, o ese es este panel de objetivos enemigos. Llamémoslo el panel de blancos enemigos. Y lo apagamos y en basado en cuando presionamos ya sea el ataque o los botones mágicos. Entonces hagámoslo. Estamos volviendo a nuestro guión, volviendo a nuestro manager de batalla, mantendrá esto como un común, como un recordatorio de que cambiamos algo aquí. Déjenme cerrar los daños. Distribuidor baja al enemigo. Y aquí dentro, Eso se acaba de crear bajo el ataque enemigo o lo que quieras. Vamos a crear un vacío público, menú blanco abierto. Y va a tomar en el nombre del movimiento de cuerdas. Y esto es lo que se va a unir al botón de ataque. Por lo que aquí vamos a simplemente conseguir una referencia al panel de destino. Entonces vamos a crear un campo serializado. Va a ser de tipo objeto de juego. Y va a ser el objetivo del panel objetivo enemigo. Y vamos a hacer realidad ese panel. Entonces aquí dentro, panel objetivo enemigo, reactivo, verdadero. Está bien, genial. Ahora el siguiente paso, 0, y pongamos aquí la referencia. Entonces el gestor de batalla, el menú objetivo, el enemigo objetivo, cualquiera que sea el panel objetivo enemigo. Ahora lo ponemos en realidad cuando queremos atacar. Ahora el siguiente paso obvio es cambiar los nombres de aquí por los nombres del enemigo. Y eso va a ser parte de tu reto. Por lo que tu reto es cargar al enemigo en una lista, lista entera. Así que crea una lista de tipo int para los enemigos. Recorre todo el acto de los personajes. Si el personaje no es un jugador, agréguelos a la lista e imprime la longitud de la lista al final solo para asegurarnos de que los cortamos todos. Así que pausa el video ahora mismo y ve a crear al enemigo. Y volvamos. Entonces cuando abramos el panel, vamos a seguir adelante y conseguir una lista de ints. Lo llamaremos los enemigos. Y vamos a crear, asegurarnos de que sea una nueva lista de ints. ¿ Y qué estamos haciendo aquí? Bueno, obviamente estamos buceando. Y R igual a 0 I menos que el acto de caracteres longitud de
punto, conteo de puntos, porque es una lista I plus, plus. Y aquí dentro, si los personajes activos en el ojo se posicionan como jugador. Entonces por eso dije que si no es jugador, y entonces vamos a acceder a la lista de enemigos y vamos a sumar eso ahí dentro. Y por último, cuando terminemos de recorrer en bucle, vamos a ir a debug log y vamos a conseguir el enemies.com. Guarda eso de nuevo en Unidad. Vamos a dar vuelta a donde como los objetivos enemigos. Por ahora, vamos a quedarnos con todos los botones. Posteriormente, los apagaremos y encenderemos solo los botones que necesitamos. Déjame quedarme con dos de ellos. Porque sabemos que tenemos dos jugadores, dos enemigos, y tenemos que apagar. Todo el panel entrará en el menú. El botón de ataque al que vamos, se
puede ver aquí mismo que falta porque lo cambiamos. Entonces desde vamos a ir al manager de batalla y vamos a abrir menú objetivo con una cuerda que va a ser la barra. Eso lo vamos a salvar. Vamos a apagar la escena de batalla, ejecutar el juego, golpear el ataque clave B. Entonces ahora tenemos objetivo uno, objetivo uno. No ha cambiado desgraciadamente, pero podemos ver que aquí tenemos dos enemigos. Entonces sigamos. ¿ Qué debemos estar haciendo a continuación? Bueno, obviamente necesitamos estar cambiando los nombres de los botones de destino. Entonces vamos a añadir un comentario aquí, común esto fuera. Y 4 y yo igual a 0. Para que puedas ver lo útiles que son los bucles. Creo que hasta ahora hemos creado como 20 grupos. Por lo que los botones de objetivo, batallaron botones de objetivo, necesitamos crear esa referencia. Entonces aquí vamos a crear un campo serializado de tipo. objetivo, botones de objetivo de batalla. Ahí vamos. Va a ser una matriz, y se le va a llamar los botones de destino. Volveremos a desplazarnos hacia abajo. Vamos a recorrer los botones objetivo longitud de punto, y añadir i en cada turno. Y entonces si el conteo de puntos de enemigos es mayor que yo Así como lo hicimos aquí arriba en alguna parte, ¿Dónde está? ¿ Dónde nos aseguramos de que teníamos? En la actualización de las estadísticas de los jugadores? Nos aseguramos de que el número de caracteres activos sea mayor que el conteo. Por lo que nos aseguramos de esto aquí. También. El objetivo botones, posición tengo objeto de juego. Eso es triste, activo, cierto. Y no queremos instanciarlo. Es un poco difícil y ya sabemos que tenemos un máximo de cinco, así que no se preocupe por eso. Podemos encenderlos y apagarlos. El botón objetivo. En posición i punto movimiento. Nombre es igual al nombre de la película que hemos determinado aquí. Y aquí que pasamos usando el blanco abierto. Entonces tenemos el botón de objetivo. Tenemos que fijar el objetivo de batalla activo. Por lo que el objetivo de batalla
activo, activo es igual a los enemigos en la posición I. Y por último, necesitamos los botones de objetivo. Yo nombre de punto, texto de punto es igual a los caracteres activos. ¿ Y a qué deberíamos estar accediendo aquí? Son los enemigos en la posición i Eso se debe a que es un nombre de personaje de punto entero. Oh, discúlpame. El punto debe ser el nombre de carácter fuera. Entonces, ¿qué estamos haciendo aquí y qué hicimos mal? De acuerdo, Entonces, ¿qué estamos haciendo aquí? En primer lugar, estamos recorriendo los botones de objetivo. Estamos asegurándonos de que tengamos a los enemigos, para eso. Estamos configurándolo en true y el botón de objetivo en true. Estamos poniendo el nombre del estado de ánimo. ¿Por qué estamos haciendo esto? Porque estamos enviando ese nombre de la película y el jugador en eso. Entonces estamos fijando el objetivo, que es el enemigo en la posición I. Y finalmente, lo estamos consiguiendo el nombre
del personaje activo sobre los enemigos en la posición I. Vale, entonces porque estamos consiguiendo a los enemigos, es una lista int. Y luego obtenemos la posición del enemigo dentro de esa lista intList. Y entonces estamos usando todo eso para ponerlo dentro del acto de carácter y conseguir su nombre. Guardemos eso. Y lo último que tenemos que hacer es después de que el jugador termine de atacar, queremos conseguir el menú objetivo. En tanto que el menú objetivo, ¿cómo lo llamamos? Por lo que nuestro panel objetivo enemigo y luego yo, objetivo panel puntos directiva falsa. Por lo que después de que
terminemos de atacar, queremos cerrar el panel. Vamos a entrar a Unidad. ¿ Qué deberíamos estar poniendo aquí? Se me olvidó. Entonces, vamos a guardar eso. Vamos a entrar en los botones de objetivo enemigo y vamos a apagarlos todos. lo guardamos. Corremos el juego. Abrimos la batalla, hacemos un ataque. No tenemos ningún nombre. ¿Por qué es eso? Porque no hemos puesto los botones y aquí, los botones objetivo. Sabía que había algo que nos olvidamos de hacer. Guarda ese mal otra vez, ahora todo debería estar en teoría trabajando muy sin problemas. Entonces ataquen, tenemos un problema otra vez. Hagamos doble clic para abrir. ¿ Cuál es el problema aquí? De acuerdo, entonces si hacemos click en uno de esos, podemos ver que no hemos dado el objetivo para ello. Ah, está bien. Está bien. Está bien. Por lo que hacemos click en este botón, arrastramos en el texto, hacemos click en este botón, arrastramos en el texto, hacemos click en este botón, arrastramos en el texto, hacemos click en este botón, arrastramos en el texto, guardamos todo eso. Corremos el juego. Y ahora ojalá cuando tratamos de atacar, tenemos al maestro mayor mágico y el log de guerra n. muy pequeño. Tratemos de maximizar el tamaño. Empezamos la batalla, atacamos al mayor o al tipo de guerra. Intentemos atacar la guerra Locke. Obviamente no pasa nada porque de nuevo, me olvidé de poner el onclick en todos estos. Perder al manager de
batalla, manager de batalla o no al manager de batalla, quiero decir, el, el objetivo enemigo real. Entonces vamos a hacerlo, en cada uno de esos. Ahí vamos, los botones, seleccionarlos todos. Batallado, objetivo, la prensa, guardar eso, ejecutar el juego. Entonces esta es la tercera vez que tratamos de ejecutar nuestro juego cuando atacamos, que muestra el bloqueo de guerra que lucha contra el maestro mayor Brujos, vale, Entonces estamos atacando al mismo enemigo. Tenemos que arreglar eso también 0. Entonces descubrí el problema. Si ejecutamos nuestro juego, iniciamos la batalla, golpeamos ataque. Podemos ver que el primero representa el botón. Tiene una barra y el objetivo de batalla activo es de tres, el segundo es de cuatro. Y yo estaba tan desconcertado ¿qué está pasando? ¿ Por qué no funciona? Cada vez que queremos golpear al Borlaug, seguimos pegando al mayor aquí. Entonces el problema fue, es que hice una muy, eso se llama jugada estúpida. Cuando elegimos un botón, he elegido a todos y les he puesto un solo objetivo. Deberíamos elegir cada botón, arrastrar el guión sobre él, arrastrar el guión sobre él. Arrastre el guión sobre él y arrastre el guión sobre él. Por lo que ahora elegimos la prensa para cada uno de los botones. Ahí vamos. Entonces ahora deberíamos. Por último. Sí, ahí vamos. Entonces como pueden ver, ahora cuando atacamos la página principal,
atacamos el bitácora de guerra. Y ahí vamos. Por lo que ahora realmente podemos elegir a qué enemigo queremos atacar. ¿ Qué tan guay es eso? En el siguiente video, veremos cómo podemos usar la magia. Entonces te veré entonces. No olvides cometer tus cambios cada vez que hacemos algo increíble.
108. Configuración de la UI: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. No hicimos demasiado en el front end de nuestro juego, pero en el backend, hemos creado mucho código con muchos botones y muchas funcionalidades intrincadas y detalladas. Entonces, no perdamos más tiempo, y empecemos. Ah, buen momento para usar algo de magia con nuestros jugadores. Ahora, ¿cómo vamos a hacer esto? No queremos que
suceda magia aleatoria y elegir para nosotros eso es bueno con los enemigos, no tan bueno cuando se trata del jugador porque queremos elegir cuál deletreó MI quiero usar. Entonces sigamos adelante y hagamos eso. En primer lugar, vamos a apagar la escena de batalla. ¿ A dónde van a ir al Lienzo? Nosotros vamos a elegir el menú o los objetivos enemigos, no
importa. Lo duplicaremos. Vamos a hacerlo un poco más grande porque podemos sumar mucho más cónyuge aquí. Vamos a usar la rejilla para moverla desde arriba solo un poquito y desde la izquierda un poquito. Este va a ser el, deberíamos
llamarlo, el panel de elección de hechizos,
supongo que panel de elección de caño. Llámalo algo más inteligente si quieres. Y ahora hagámoslo un más pequeño, Hagámoslo de esta manera. Entonces dos filas, dos filas. Duplicemos el EBIT, el botón Ejecutar. Entonces depende de cuántos hechizos tengas actualmente. No tenemos tantos esposos. Pero a medida que avanzas por tu viaje y juegos de RPG, sabes que puedes recolectar cónyuge, aprender otros nuevos, aumentar tus estadísticas de personajes. Entonces creo que tener, digamos por ocho hechizos, sí, Son bolas, creo que es suficiente. Y hará que la caja yay sea grande. Nos vamos a mover usando el débito de la cuadrícula, así que muévalos hacia arriba o hacia el medio, o tal vez agregue espaciado. Sepan, esto es perfecto por ahora, vamos a eliminar todos estos botones, sólo
va a necesitar uno de ellos, que es el botón de ataque. Y lo vamos a cambiar por algún tipo de botón de hechizo. Ahí vamos. Va a quitar el ataque de corte desde aquí. ¿ Y qué vamos a hacer? Bueno, cuando tocamos el botón mágico, es similar a la forma en que usamos el botón de ataque. Golpeamos el botón mágico. Tenemos opciones para elegir a uno de los cónyuges que tenemos en el jugador. Cuando elegimos uno de esos hechizos, entonces obtenemos la opción de elegir en qué enemigo queremos usarlos. Por lo que vamos a crear esta estructura a lo largo de nuestro panel de selección de caño. Empecemos. En primer lugar, entremos a nuestro gestor de batalla. Y dos, ¿dónde está el encargado de batalla? Y aquí dentro necesitamos una pequeña referencia. Vamos a cerrar esto. Una pequeña referencia al menú de hechizos. Campo tan serializado, objeto de juego, el menú mágico o panel de elección mágica. Voy a seguir llamando a get menu porque sigo olvidando. Y necesitamos un método aquí dentro, que es el vacío público, abra el menú. Tan público abierto, panel mágico o panel de elección mágica. Y simplemente vamos a conseguir que el panel de elección mágica sea tan selectivo, verdadero. Guarda eso. Ahora entremos a los personajes de batalla y demos a cada uno sus propios movimientos para atacar. Entonces, ¿dónde están los personajes de batalla? En unidad? Vamos a los Prefabs, personajes de batalla jugadores. Por lo que Draco aquí tiene los ataques disponibles. Podemos agregar cuántos ataques tiene, el gramo y Jimmy. Entonces, vamos a ver, Draco, ¿qué obtiene? Nosotros vamos a bloquear esto. Vamos a ir a los ataques. Y aquí podemos ver todos los ataques disponibles. Y hagamos esto un poco más grande. Entonces, ¿qué puede hacer Draco? Bueno, creo que como está un poco oscuro, puede usar los tentáculos, ambos. Y quizá no las moradas. No los morados, sólo los tentáculos. A lo mejor puede usar el aligeramiento. Seguro. ¿Por qué no? El rayo y el fuego azul. Creo que esas son buenas para que Draco lo use. Vamos a ahorrar que lo
desbloqueará, iremos y elegirá un mayordomo de otro. Entonces el gramo, ¿qué puede hacer el sombrío? Entonces vamos a ver. Puede tener láser. Y aligeramiento. Entonces creo que eso es suficiente para el Gram. No es un personaje muy vencido, es una especie de semana. Y luego tenemos a Jimmy. Entonces Jimmy, ¿qué puede hacer Jimmy? Jimmy puede hacer todo para que pueda usar bien, así que tenemos que encerrar a Jimmy. Jimmy el demonio, para que pueda usar el fuego azul, el láser, los tentáculos morados, los tentáculos negros, y el aligeramiento. Ahí tienes, Jamie, no creo que tengas suficiente panel para todos esos, que va a ser parte de tu reto, no ahora mismo. No te preocupes por eso. Gestor de batalla. Tenemos que configurar el panel de elección mágica. Así que elección de hechizo, elección mágica, elección hechizo. No lo sé. De vuelta aquí, necesitamos dos órbitas, lo siento. Tenemos que quedarnos aquí y necesitamos crear un script de botón mágico de batalla. Cada botón aquí que vamos a crear en tan solo un poco tendrá su propio guión en él. Y vamos a hacer cosas similares a la forma en que manejamos los objetivos enemigos. Por lo que en los guiones en batalla se hicieron clic derecho, crear un guión agudo C que van a ser los botones mágicos de batalla. Y lo vamos a agregar a este botón de archivo. Y lo vamos a abrir en Visual Studio. Y aquí dentro necesitamos un par de variables. Entonces, en primer lugar, una cadena pública, nombre de hechizo, luego un público, y costo de hechizo. Entonces necesitamos dos variables más para los textos. Por lo que el texto público Sonda de malla. Y hay una cosa que me olvidé de hacer, y ese es el costo de este PAL. Tenemos que asegurarnos de que el jugador que está usando nuestro hechizo sepa cuánto costará esto. Entonces aquí voy a nombrar a esto el nombre del hechizo y hacerlo de gran tamaño. Y tal vez poner un par de cosas. Hazlo un más grande. Ahí vamos. Y voy a añadir un texto mucho pro aquí. ¿ Y dónde estamos? Text Mesh Pro. Este será el costo del hechizo. Este es el nombre del hechizo. Y los costos de eliminación que se fijarán aquí en el fondo. Va a ser la forma a la que estamos acostumbrados. Vamos a autodimensionarlo. Vamos a hacerlo audaz y vamos a ponerlo en tres nueves. Espero que eso se vea lo suficientemente bien desde atrás. Por lo que ojalá esto no se vea muy mal. Ahí vamos. Lo pondremos justo ahí. Este es el tamaño adecuado para ello. No queremos que cubra demasiado el nombre del hechizo V. Sí, ahí vamos, lo guardamos. Vamos a este botón. Y ahora vamos a conseguir una referencia al mismo también aquí. Por lo que el texto del nombre del hechizo y el texto costo del hechizo. Y entonces vamos a crear el precedente aquí. Entonces, eliminemos el inicio y actualicemos. Podríamos necesitarlos más adelante. Tan público, vacío, prensa. Y el gestor de batalla punto instancia, punto menú objetivo abierto. ¿ Y qué requiere aquí? Requiere el nombre de la película, así que va a ser el nombre del hechizo. Guarda eso. Pero no podemos simplemente hacer esto. Tenemos que asegurarnos de que el jugador tenga suficiente maná para poder usar este hechizo. Entonces te voy a emitir un reto. Y tu reto es asegurarte de que el jugador tenga suficiente maná. Entonces, ¿cómo sabemos que el jugador tiene suficiente maná necesitará para
acceder al personaje activo en el botón de hechizo. Entonces lo primero que debes hacer es acceder a la variable del maná actual sobre el personaje de batalla. Por lo que necesitarás un método que devuelva el personaje del manager de batalla. Después, cuando pulses el botón, crea una condición if que llame a ese método y comprueba si es suficiente para el spot. Así que pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Entonces en el manager de batalla, vamos a devolver al personaje actualmente activo,
por lo que personaje de batalla pública. Y aquí dentro vamos a conseguir el personaje activo actual. Yo quería llamarlo mayordomo o personaje, y simplemente le devolveré al personaje activo en el término actual. Y eso es todo lo que tenemos que hacer. Eso lo ahorraremos. Volveremos al botón mágico. Y aquí antes de lanzar un hechizo, creará una condición. Iremos al manager de batalla, punto instancia dot get active character. Y vamos a acceder al maná actual sobre él. Y vamos a comprobar si tiene más que el costo del hechizo. Y luego moveremos aquí la instancia de batalla. ¿ Y qué más debemos hacer después de presionar ese botón? Bueno, queremos en primer lugar cerrar el menú. Entonces manager de batalla, la opción de menú mágico o paneles de elección de hechizos, algo así. Ya veremos. Por lo que gestor de batalla punto instancia, magia de puntos. No, Vayamos al encargado de batalla. Tenemos que asegurarnos de que sea el panel de elección mágica. Podemos crear un método para alternar o simplemente podemos hacerlo público por ahora. Sólo para hacer las cosas un poco más fáciles, ahorramos eso. Por lo que instancia magia, panel de elección que establece activo en falso. Y entonces también necesitamos quitar el maná del personaje. Entonces battle manager dot instance, dot, get active character, dot current mono es menor o igual que el costo de pico o k Genial, así que ahora guardamos eso, volvemos a nuestro juego. Vamos a salvar todo eso. Y en el siguiente video, realidad
vamos a estar asignando los guiones a nuestro botón y cambiándolos. Necesito cortar el video ahora mismo ya es demasiado grande y hay muchos más pasos que hacer. Entonces. Te veré en el próximo.
109. Uso de magia: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. En este video, como pueden ver, he ganado una batalla. Estoy tan orgullosa de mí misma. Cuando ejecutamos nuestro juego, golpeamos la tecla B. Usamos magia. Como se puede ver, tenemos láseres fue aligeramiento los cuales requieren 120, el rayo. Entonces estamos atacando con el Gram cuando tuvimos al caudillo, se
puede ver que perdemos un poco de Mona. Y podemos hacer lo mismo cuando se trata de Draco, maestro de
rayos, podemos elegir a qué enemigo queremos atacar. Podemos elegir con qué deletreado queremos atacar. Podemos elegir si queremos usar magia o simplemente atacarlos. Y todo eso será posible en este video, por
supuesto, necesitamos un poco de ajuste. Te darás cuenta al final, todavía
hay muchas cosas que tenemos que hacer mientras jugamos a través de
la batalla y echa un vistazo a algunos de los inconvenientes que tenemos ahí, algunos bichos y demás. Entonces hasta entonces, no perdamos más tiempo. Empecemos y asegurémonos de comprometer siempre los cambios que realizamos en este video. Ah, está bien, así que no hay necesidad de explicar nada. Simplemente continuaremos con nuestra magia usando poderes. Entonces abramos al gestor de batalla. Desplazemos hacia arriba y hagamos una referencia a todos los botones mágicos. Por lo que un campo serializado con los botones mágicos de batalla para recrear eso. Nosotros lo hicimos. Y los botones mágicos. Ahí vamos. Ahora, vamos a conseguir una referencia a ellos. Por lo tanto o costos de eliminación. No estoy seguro de deletrear botones mágicos, quieras llamarlos. Llamémosles botones mágicos. Y vamos a sumar 1, 2, 3, 4, 5, 6, 7, 8 o suficiente. Vayamos al encargado de la batalla. Cierra eso. Selecciona todos los botones mágicos, agrégalos aquí, apáguelos todos. Por lo que nos apoderamos de Francia con ella. Entonces como todos ellos y apáguelos todos. Genial. Ahora volvamos a donde abrimos nuestro panel. Entonces aquí dentro, vamos a mirar a través de
todos ellos y encenderlos y apagarlos y dijeron sus nombres. Por lo que cuatro y r es igual a 0. Yo es menos que los botones mágicos. Longitud de punto, longitud de punto I plus, plus. Vamos a comprobar si los personajes activos del giro actual. movimientos de ataque de puntos disponibles. La longitud del punto es mayor que i Así que esto es similar a lo que estamos haciendo. Cada vez que tenemos botones, necesitamos asegurarnos de que tenemos más movimientos de ataque disponibles. Vamos a comprobar los botones mágicos en la posición i, dot gameObject, dot set activo, true. Entonces los botones mágicos en posición
pensé deletrear mi nombre es igual para conseguir carácter activo. Por lo que ahora tenemos el carácter activo get current. ¿ Qué tan guay es eso? Entonces podemos usarlo aquí porque devuelve la corriente. Podríamos haberlo usado también aquí, pero sólo nos estamos acostumbrando. Por lo que el ataque punto-punto se mueve disponible en la posición I. Guardamos eso. Y finalmente los botones mágicos en la posición i, puntos campana, nombre, texto. Ahí vamos. El texto es igual a los botones mágicos en la posición que deletreo nombre. Entonces debido a que cada botón mágico de batalla tiene un nombre especial, entonces vamos a acceder al costo del caño, deletrear el texto del nombre en él y establecer este nombre de banda. Podríamos haber llegado también aquí en el arranque. Tal vez solo tal vez esto hubiera sido mejor, pero porque estamos poniendo todo aquí y aquí en el gerente del baño, vamos a mantenerlo aquí para que lo sepamos. Está bien. Entonces abrimos el panel, ponemos todo para el fondo no ponemos mitad de las cosas aquí dentro que la mitad de las cosas aquí dentro. Por lo que de vuelta en el gestor de batalla. Por último, lo que tenemos que hacer es revisar o llenar, en realidad disipar el costo. Y ese va a ser tu reto. Tu reto es conseguir este podcast y aplicarlo. Por lo que recorrió los movimientos de batalla, usa j en lugar de yo porque ya estamos usando el I. Compruebe si los nombres coinciden con el nombre del hechizo en el botón. Establezca el costo de pico en el botón,
y colóquelo en el texto también. Así que pausa el video ahora mismo y ve a hacer el reto. Bienvenido de nuevo. Entonces fue un reto un poco duro, creo. Entonces vamos a crear un bucle for, y el bucle for no debería estar aquí. Debería estar aquí. Entonces cuatro. Y vamos a seguir adelante y crear un int j igual a 0, mientras que j es menor que la batalla mueve lista de puntos longitud j plus. Entonces vamos por encima de todos los movimientos de batalla. Si la batalla se mueve menos, posición, j nombre de punto es igual a los botones mágicos. Posición, GA, posición, quiero decir punto, nombre ortográfico. Estuve escribiendo todo este tiempo fuera de los paréntesis. Está bien. Por lo que nos aseguramos de que lo tengamos disponible que el botón mágico. En la posición i, punto costo de hechizo, costos de hechizo. Costo normal por ahora se va a fijar. Tenemos que quitarlo del jugador. Y duplicemos esta línea. Costos de hechizo, texto, movimiento de batalla. O podemos usar de inmediato este aquí dentro. Copia eso, pegarlo aquí, spell cost dot toString. Ahí vamos. Entonces ahora, vamos a guardar eso. Vayamos a nuestra Unidad. Estoy bastante seguro de que nos olvidamos de muchas cosas. El problema aquí dentro, ¿Cuál es el problema? Cuerdas a texto Malla. Oh, está bien, está bien. Texto. Guarda eso. Ahora no deberíamos tener ningún error. Está bien, genial. Entonces ahora vamos a conseguir esto. Vamos a ver que se requiere. Todos requieren un poco de trabajo. Entonces creo que podemos dejar esos y seguir adelante y revisar el texto del nombre del hechizo, el hechizo cuesta texto. Y vamos a sumar aquí a la prensa. Guarda eso. Vamos a duplicarlo. ¿ Cuántos teníamos? Vamos a encenderlo. A ver cuántos había. Guarda eso. Entonces puedes ver ahora mismo así es como lo manejamos. Por lo que cada uno el guión mágico del botón aquí se utiliza en éste. Por lo tanto, antes de duplicar los botones, asegúrate de crear el primero de manera precisa y correcta y luego duplicarlos. Entonces, por ejemplo, elijamos el botón aquí dentro. Si elegimos el guión, el guión en el botón mágico que estamos usando. Si elegimos disipar nombre como disipar nombre del botón que estamos eligiendo. Entonces espero que eso sea comprensible. Nosotros los vamos a apagar a todos. Vamos a ahorrar, vamos a cerrar el panel de elección, ejecutar el juego. Golpea la llave B, zapatos, magia. ¿ Por qué no funciona? Gestor de batalla, panel de tours deletreados. De acuerdo, en el menú, La magia. Nos olvidamos de hacer lo más importante que se abre el panel mágico. Abre paneles mágicos, guarda eso. No, no, no, No corras el juego. Tenemos que apagar la escena de batalla, ejecutar el juego. Vayamos a la magia. Y hay un problema. El problema está aquí dentro y que el botón mágico no se hace referencia correctamente porque porque a y no se hace referencia correctamente, pero se puede ver que tenemos el láser. Podemos elegir la guerra Locke, y hemos aplicado el láser. Tan aligerante. De acuerdo, Entonces definitivamente hay algo mal. Eso es porque si vas al gestor de botones, ¿cuál es el problema? Ah, está bien. Entonces él lo borramos todo. Y entonces no nos aseguramos de que para añadirlos de nuevo. De acuerdo, ahí vamos. Es tan agradable que en realidad podemos hacer doble clic en el aire e ir inmediatamente a la línea equivocada para que podamos empezar a diagnosticar. Otra vez. Vamos a correr, Vamos a probar esto. Ojalá, esto debería funcionar cuando tuvimos la magia, tenemos iluminador láser porque estamos trabajando en Draco, creo al principio. Entonces si deshacemos click en esto, vamos a Draco, Draco, Draco, draco. Jugadores de Prefabs. Draco tiene tentáculos relámpago. No, creo que es el Grim. Entonces. Guerra relámpago Locke. Sí, ahí vamos. Aplicamos el rayo a la suerte de guerra y hemos perdido todo nuestro maná. Por lo que ahora estamos usando Draco. Se puede ver que tenemos al cónyuge que podemos usar. Entonces vamos a usar los tentáculos. No podemos usarlos porque no creo que tengamos suficiente maná. Entonces por ejemplo, el aligeramiento necesita 120 mono mientras que Jacob, quiero decir Draco tiene, vamos a ver. Draco tiene maná, 10. De acuerdo, Muy bonito. Entonces, ¿cuál es el problema? Creo que hicimos algo mal con nuestro código porque maná
actual se perdió y no lo creo. Todo lo que tenemos a la pequeña Mano. Por lo que el actual soporte mano y el máximo es bronceado. Por supuesto que no podemos usar esos. Por supuesto, claro que no podemos usar esos. Entonces tendremos que ir a Draco. Vamos a agregarle un poco de maná. En serio, sumemos un 1000 mil y el sombrío, mil con una milésima. Y el jugador. Apliquemos la luz a Draco, aplicado a lo sombrío. Ahorra que volveremos a ejecutar el juego. Empezaremos la batalla. Y sí, esto es desarrollo de juegos. Siempre haces algo. Todos estos necesitan pruebas, por lo que aligerar, aligerar en el maestro principal. Ahí vamos. Si cobramos en el Grim, podemos ver que ha perdido actual Mano 120. Perdió algo de maná. Draco tiene la cantidad de maná. Nuevamente, usamos magia. A ver. Queremos usar los tentáculos azules o algo así. Nosotros los vamos a utilizar en los guerreros. Cuestan 200. Entonces cuando tuvimos la guerra Locke, deberíamos ver eso. Ah, así que ya perdimos. Ahí vamos. Cuando golpeamos, usamos la magia de nuevo y usemos los tentáculos morados sobre los Brujos. ¿ Acabas de ver eso? Porque nos pegamos, creo que un crítico ahí vamos. Jimmy repartió 2772. Whoa, Jimmy, ese es algún número. Eso es mucho daño. Entonces ahora de nuevo, empezamos. Pero como pueden ver, todavía
tenemos un pequeño problema y aquí, no se está actualizando. Tenemos todos estos archivos disponibles para nosotros desde cada personaje, de nuevo, magia. Para que veas que aquí hay un pequeño problema. Y el último paso que nos olvidamos de hacer fue crear una declaración
else aquí y dijo los botones mágicos en posición, pensé que el objeto del juego se puso activo en falso. Entonces ahora no deberíamos ver hechizos que no deberían estar ahí. Corremos nuestro juego. Teníamos el uso mágico rayo, uso
mágico en los brujos, magia, relámpagos. Tan mágico, como se puede ver, porque estamos en Draco, no
vemos ningún otro ataque. Magia, y se puede ver que hemos matado al mundo caminar. Pero no lo hemos quitado de. Y porque Draco es que sólo podemos atacar. Entonces verás que sólo hay un término para los enemigos y un término para nosotros. Eso es porque el tipo de guerra ha muerto, pero aún podemos atacarlo y seguimos atacando con Draco 0 porque aún no ha muerto. Por lo que usamos aligeramiento en la pared. La suerte puede ver que ya no ataca en absoluto, pero aún podemos atacarlo, lo cual no es bueno, no es suficiente magia. Oye, queremos. Entonces espero que hayan disfrutado de este video. Podemos finalmente cuando un partido, y te veré en el siguiente.
110. Mostrando la magia no: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. En este video, tenemos un panel de notificaciones que nos cuenta varias cosas. Y una de las más importantes es que si lo intentamos, si tenemos 0 mono o no suficiente mono para un cierto caño,
que es el aligeramiento. Digamos que tratamos de golpear el rayo, pero no tenemos suficiente manera, así que necesitamos hacer algo diferente. De todos modos, no perdamos más tiempo y
empecemos a añadir notificaciones a nuestras batallas. Ah, está bien, así que actualmente cuando no tenemos suficiente maná, no
podemos hacer ninguna magia, pero eso no es suficiente porque no podemos ver, o no podemos saber que no tenemos suficiente maná para hacerlo. Entonces lo que haremos, aprovecharemos esta oportunidad para crear un enlace de notificación. Entonces, ¿cómo vamos a hacer esto? Voy a abrir el lienzo. Voy a entrar al menú. Voy a encontrar el botón de ataque. Y antes de continuar, necesito apagar la escena de batalla. Voy a usar el botón de ataque. Yo lo duplicaré. Y desmarcaré eso de la batalla Lienzo o sabes qué? Mantengámoslo en la batalla Lienzo. Simplemente lo pondremos sobre el menú. Y esta será la notificación de batalla. Entonces, pero sin panel de catión de TV, puedes llamarlo si quieres. Vamos a quitar el componente de botón porque no vamos a estar empujándolo. Y lo voy a poner aquí. Voy a hacerlo un poco más grande. Establecido aquí mismo. Por lo que esto se utilizará con fines generales. Entonces voy a abrir el texto y voy a cambiar el tamaño de ese texto para estar alrededor yay grande. Ahí vamos. Voy a ponerlo en el medio y voy a asegurarme de
que esté ostracizado e incrementar el máximo en lo que pueda. Y lo mínimo lo más pequeño que creo que puedo. Y estas van a ser las notificaciones de batalla y
asegurarte de auto tamaños porque nunca sabes qué tipo de notificación quieres ponerla aquí. Entonces debido a que es un panel de propósito general y notificación, vamos a usar un script para manipularlo. Entonces vamos a hacer clic aquí, vamos a crear guión C-sharp, y vamos a llamar a esto las notificaciones de batalla. Entrar. Espere a que eso se compile. Lo vamos a agregar a la certificación de batuta. Y vamos a abrir el guión. Oh, genial. Entonces, ¿qué vamos a hacer aquí? En primer lugar, necesitaremos una referencia a un par de cosas. Lo primero será, ¿cuánto tiempo permanecerá esta en pantalla? Entonces va a ser un flotador, tiempo vivo. Y entonces la segunda referencia será obviamente al texto o al texto Mesh Pro. Por lo que necesitaremos usar el AMP. Y esto será de tipo. Gracias, malla pero Gui. El aviso de texto, que es notificaciones de texto, eliminará el inicio y la actualización porque no las necesitamos por ahora. Y voy a crear dos métodos aquí. El primero será un texto conjunto de vacío público. Sólo vamos a tomar una cadena de texto. Es decir, me refiero a un impuesto de tipo string. Y entonces lo que haremos es fijar el texto. Aviso que es para ser igual al texto que se ha enviado. Después crearemos otro método para activar este juego objeto de notificación de batalla. Entonces es un vacío público activar. Y aquí vamos a simplemente conseguir el objeto del juego y poner el activo en verdadero. De acuerdo, Ahora lo siguiente que queremos hacer es que queremos apagar esta notificación o configurarla para establecer el activo en falso después de un cierto tiempo. ¿ Cómo se hace esto? Te oigo casi es usar corutinas,
vale, así que usaremos el de Coubertin. Pero vas a usar coroutines porque vas a hacer desaparecer la notificación
creando una co-rutina que hará
desaparecer la notificación después de que termine el tiempo de estar vivo. Así que pausa el video ahora mismo y ve a crear esto fácil encubiertamente. Hey, bienvenido de nuevo. Entonces esto no fue un reto demasiado duro,
creo, porque ya están familiarizados con las corutinas. Hemos hecho una tonelada de esos. Entonces este será el numerador de Eigen que haga
, no, esto, esta cerveza. Es así como escribes desaparecen y entonces vamos a ceder retorno. No es así como escribes volver nuevo. Y esperaremos cuatro segundos hasta que llegue el momento para estar con vida. Como más. Guarda eso. Y finalmente, después de que hayamos esperado ese tiempo, vamos a acceder al objeto del juego. Conjunto de puntos activo. A falso. Eso lo ahorraremos. Y después de que
hayamos activado, vamos a iniciar la co-rutina, que hará el aviso. Ok, no se puede cambiar el nombre de este elemento. A lo mejor deberíamos agregar corchetes. Y esto debe ser con un IEP Enter. Y no estoy seguro si sabes cómo estoy haciendo esto. Estoy bastante seguro de que cubrimos esto, mantienes pulsado Control o R y puedes cambiar cada instancia de este mundo. Espero no haber estado haciendo esto sin tu conocimiento. De todos modos, sigamos uno, ¿dónde vamos a estar llamando a esto? Bueno, obviamente en los botones mágicos de batalla, después de que presionamos este botón y nos enteramos de que no tenemos suficiente dinero para usar este hechizo. De lo contrario, vamos a usar el baño para vacaciones, pero aquí hay un ligero problema. Y eso no es problema en realidad una, una jerarquía de código o una forma fría de implementación de pensar porque vamos a estar usando esta notificación de batalla en muchas instancias en nuestras batallas, porque no es solo para el 0, no
tenemos suficiente dinero. O tal vez todo lo que hemos huido o no puedes
huir o has hecho un golpe de daño crítico o algo así. Entonces porque lo vamos a estar usando a lo largo de nuestra batalla, Es mejor conseguir una referencia al mismo en el gestor de batalla. Entonces voy a cerrar todos estos. Y en el gestor de batalla, voy a conseguir una referencia a las notificaciones de batalla y al aviso de batalla. Y vamos a acceder al aviso de batalla en el gestor de batalla y luego usar los métodos en él. Por lo que el gestor de batalla, instancia de
punto, batalla de puntos, note que esto debe ser público. Obviamente. Debió haber notado que de derecha, no se preocupe, dicen variable pública. Por lo que el aviso de batalla punto SetText. Y este impuesto va a ser, no
tenemos ni algo así. Y entonces lo que haremos es que lo vamos a activar. Por lo que el gestor de batalla punto instancia. Deberíamos haber creado una sola variable para estas tres palabras. No se preocupe. Y aquí también, eso hubiera sido mucho mejor. Y por último, ¿qué hacemos aquí? Damos la vuelta al menú mágico. Entonces manager de batalla, esa instancia, el menú mágico, menú
mágico, panel de elección mágica que establece activo en falso. Eso es todo. Y algunos de ustedes podrían estar preguntándose, ¿por qué estamos usando un método para establecer el texto, un método para activarlo. ¿ Por qué no sólo configurar el texto y activarlo mientras? Porque tal vez en el camino, necesitarás por alguna razón establecer el texto por separado y luego activarlo por separado. Se pueden establecer en el mismo método. Está bien, No te preocupes por eso. Pero creo que es mejor, más limpio y tal vez se usará más adelante para simplemente configurar el texto o simplemente para activarlo por algunas razones. No te preocupes por eso. Guardemos eso. Vuelve a nuestro juego aquí dentro. Tendrá que acudir al gerente del baño y darle la notificación de batalla. O antes de hacer eso, necesitamos establecer el aviso de texto. Y pongamos dos segundos. Después iremos al encargado de batalla y le daremos la Batalla de nodos. Vamos a salvar todo eso. Vamos a seguir adelante y apagar la escena de batalla. Corriremos nuestro juego, empezaremos la batalla. Y para obviamente deberíamos apagar la notificación de batalla se volverá a ejecutar. Empezaremos una batalla. Vamos a ir a la posición de Capas,
posición uno, el gramo, la Mano actual se fijará en 0. Eso lo ahorraremos. Podemos ahorrar durante el modo de juego, por lo que accedemos a la magia. Probemos con el láser. No tenemos suficiente manera y se apaga tan genial, esto parece estar funcionando. Espero que hayan disfrutado de este video. Espero que te estés divirtiendo. En el siguiente video, veremos cómo vamos a matar a nuestros enemigos porque actualmente son una especie de invisibles. Entonces te veré en el siguiente video.
111. Running: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos en este video, cuando ejecutamos nuestro juego, cuando golpeamos la tecla B, teníamos el botón Ejecutar, pero nunca lo hemos usado. Por lo que ahora cuando tocamos el botón Ejecutar, como pueden ver, podemos huir. Pero a veces cuando presionamos el botón Ejecutar, podemos ver que no hay escape, por lo que no podemos huir de nuestros problemas. Nosotros siempre, o a veces, o la mayoría de las veces tenemos que enfrentarlos. Entonces, no perdamos más tiempo. Vamos a enfrentar nuestros problemas y empecemos. De acuerdo, entonces ahora queremos dar una oportunidad para que nuestros jugadores se escapen porque nos
enfrentamos a enemigos dominados o enemigos que están muy por encima de nuestro nivel de lucha. Entonces sigamos adelante y creemos un método para eso. Vamos a ir al encargado de batalla. Y mientras que el manager de batalla , gestor de
botones, lo voy a poner aquí. Y vamos a crear una variable aquí, un campo serializado, que va a ser la oportunidad de huir. Entonces, ¿cuánta oportunidad tenemos la oportunidad de huir? Y vamos a ponerlo en 0.5. Por lo que esto debería depender de cada baño. Y entonces vamos a desplazarnos hacia abajo hasta el final. Y aquí dentro vamos a crear un vacío público, huir. ¿ Y qué vamos a hacer aquí dentro? Bueno, te voy a emitir un reto porque ¿podemos siquiera escapar? Esta es la pregunta que debes responder. Crea un método de fuga, que ya hice por ti. En él, necesitarás comprobar si hay un valor aleatorio. Y si es mayor que un cierto umbral, dejamos escapar a los jugadores. De no ser así, mostrar un aviso de que no hay escape. Entonces al igual que hicimos cuando estábamos implementando el golpe crítico, necesitarás seguir adelante e implementar esto en nuestro método de huida. Así que pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Entonces lo primero que vamos a hacer es obtener un valor de punto aleatorio. Y esto nos dará un valor entre 01 y si ese valor es mayor que la posibilidad de huir porque la posibilidad de pasarela es de 0.5, si recuerdo correctamente, sí. Entonces si es mayor, eso significa que tenemos una probabilidad 5050 de huir, entonces vamos a poner el es batalla activa en falso. Y también se apagará la escena de batalla. En el juego de símbolos de batalla activo se desactivará. Y de lo contrario. Si no podemos huir, entonces se hará el próximo término. El aviso de batalla dot SetText
será no hay escape con un signo de exclamación. Y finalmente se activará el aviso de batalla. Eso lo ahorraremos. Volveremos a nuestro juego. Vamos a ir al botón aquí que nos permite huir. Por lo que el menú, el botón Ejecutar, vamos a añadir un método on-click aquí. Entonces ahí vamos. Arrastraremos en los mandos de batalla. El GameObject accederá al gestor de batalla y vamos a huir. Entonces vamos a guardar eso. Corriremos nuestro juego. Golpea la tecla B, intentará correr. No hay escape. Vamos a intentarlo de nuevo. Ahí vamos. Por lo que pudimos escapar la segunda vez. Si volvemos a intentar la batalla, notarás que aquí tenemos un ligero problema de que el sombrío Draco y Jimmy se crean de nuevo. Los primeros están y están siendo destruidos. Entonces este es un gran no-no. No queremos que esto suceda. Estaremos arreglando eso más adelante en nuestros videos. Pero por ahora, como pueden ver, tenemos la capacidad de huir de la batalla, lo cual es un poco cobarde, pero somos capaces de hacerlo. Es una opción. De todas formas, te veré en el siguiente video.
112. Uso de elementos durante la batalla: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos y este video, cuando ejecutamos el juego, cuando recogemos un par de artículos, cuando iniciamos una batalla, si queremos usar algunos artículos, ahí vamos, podemos ver que los artículos que hemos recogido nuestro derecho aquí en nuestro inventario, listo para que lo usemos. Si hacemos click, podemos ver que se trata de una armadura plateada. Este es un bonito océano. Este es un hacha de oro que no
podemos usar, no podemos cerrar, pero están ahí para que lo utilicemos. Entonces, no perdamos más tiempo y empecemos. Ah, está bien, entonces el último botón que queremos usar es el botón de uso Items. Entonces sigamos adelante e implementemos esto en nuestro código. Vamos a, en primer lugar, disculparme, antes de implementar esto en nuestro código, vamos a crear el menú para ello. Entonces lo que haremos es entrar al lienzo y a los ítems Menú y resistir donde visitar el panel de elementos. Y simplemente vamos a duplicar este panel. Vamos a arrastrarlo todo el camino a la batalla Lienzo aquí. De acuerdo, entonces vamos a encender esto y luego vamos a hacer un par de cambios aquí. Entonces lo primero es que no vamos a tener tan grande porque siento como si vamos a dar click aquí. Y ya veremos, llamaremos a esto el panel de artículos de uso. Y vamos a cambiar un par de cosas aquí. Vamos a subir esto. Y algunos de los artículos aquí dentro necesitan ser arreglados. Entonces voy a hacer esto uno por uno y tal vez te vea después de terminar de reorganizar todo. Ay, kay, bienvenido de nuevo. Entonces, ¿qué he hecho aquí? En primer lugar, he cambiado el diseño de los artículos de la misma. Cambié el artículo aquí, el botón de elemento. Entonces voy a eliminar todos estos es que estamos solo para poder diseñar la cuadrícula correctamente. He hecho este artículo 0.7 en la báscula justo aquí en la Transformada Rect. Y voy a prefabricar esto. Entonces voy a entrar a los Prefabs. ¿ Y dónde deberíamos estar salvando esto? ¿ Dónde salvamos el anterior? Vamos a guardarlo dentro de la batalla. A lo mejor. Cambiemos esto de personajes de batalla dos, o vamos a guardarlo y objetos tal vez. No lo sé. Dentro de los personajes de batalla, voy a renombrar esto a los prefabs de batalla. Prefabs de batalla. Y solo voy a usar este artículo aquí. Voy a crear un prefab original. Y se va a llamar el botón
Elementos de batalla porque vamos a estar instanciando cada vez. Y este va a ser el pero Items. Botón. Golpear, Enter. Ahí vamos. Eso lo guardamos. ¿ Qué más hice? Cambié un poco el panel de elección de personajes, así que me aseguré de que todo se alinea en este menú más pequeño. Voy a apagar esto. Mantenemos todo igual. Pero tal vez más adelante deberíamos quitar el onclick. Y aquí, ya sabes qué, vamos a quitarlos por ahora. Valores únicos, objetos diferentes, perdidos. No se preocupe por eso. Solo eliminemos esto en click porque estos van a usar diferentes métodos, estoy seguro. ¿ Y qué más hicimos? Déjame apagar esto. En el panel de exhibición de artículos, hice un poco más pequeño solo para que pueda caber dentro de este lugar o del lugar que tiene. El botón de Estados Unidos. También eliminé el onclick. Sigue siendo lo mismo. Acabo de cambiar el tamaño de la misma. Cambié el botón de descarte por el botón de cerrar, porque ahora vamos a usar esto para cerrar el menú. Si ya no queremos usar los artículos, podríamos haber usado los artículos aquí, pero no hay preocupaciones por eso. El nombre y valor de los artículos y la descripción, todos ellos están configurados para ser 0.8 en la escala y simplemente posicionados de manera diferente. Y creo que eso es todo lo que sí lo creo. Entonces ahí vamos. Creo que eso es todo lo que cambié. Y este uso de artículos panel para las batallas. Ahora, volvamos atrás y empecemos a codificar. Entonces lo primero que vamos a hacer es en el manager de batalla, vamos a subir y vamos a conseguir una referencia a todas las cosas nuevas que hemos creado. En primer lugar, vamos a crear un objeto de juego público, que van a ser los ítems a usar menú, supongo que podemos llamarlo o panel, llamarlo como quieras. Entonces vamos a crear un campo serializado, que va a ser de tipo item manager. Y va a ser el elemento seleccionado. Por lo que es casi lo mismo que
cuando creamos el inventario y los artículos en el Lienzo normal. Ya verás que incluso usamos el mismo método. Por lo que la segunda o tercera referencia es el contenedor de ranura de artículo. Y aquí es donde pondremos todos los artículos. Pondremos todos los artículos. Es decir, este es el botón Items que vamos a estar instanciando. Este, que va a ser una transformación, va a ser el padre contenedor de ranura de artículo. Y por último, vamos a obtener el nombre y la descripción de los artículos. Entonces el campo serializado que se va a gravar mucho pro y con para ser el ítem, nombre, ítem, corrupción. Ahí vamos. Lo siguiente que tenemos que hacer es crear una actualización de artículos en inventario. Por lo que vamos a actualizar artículos en inventario. Debería tener, en primer lugar,
asegurarme de que digamos vacío público. Y entonces simplemente vamos a entrar a nuestro gestor de Canvas. ¿ Cuál era el nombre? Mira cuántos guiones tenemos. Entonces voy a entrar al gestor de menús o es, um, bien, así que vamos al guión desde nuestra espera de que esto combine el gestor de menús de lona. También se le llamó Administrador de Menús. Entonces aquí, en algún lugar tenemos los ítems de actualización, así que sólo vamos a copiar esto porque lo he copiado, lo
copiaré con el nombre o va a copiar. Vamos a entrar a nuestro gestor de batalla y lo pegamos aquí. Por lo que el contenedor ranura artículo. Copia. Ahí vamos. Guarde eso porque este es exactamente el mismo método lo que estamos haciendo. Estamos destruyendo todos los artículos previamente retenidos o aparecidos. Después pasamos por cada uno de ellos. Nosotros ¿qué hacemos con instanciar? Establecemos la imagen, establecemos el impuesto, el monto y el último, que es el ítem en la parte inferior. Está bien, genial. Ahora lo siguiente que queremos hacer es que queremos usar el ítem seleccionado para eso. Tenemos que seguir adelante y emitirte un reto. Por lo que tu reto es seleccionar el artículo que necesitas. Por lo que necesitarás crear un método llamado elemento seleccionado para utilizarlo con un argumento o parámetro del elemento que queremos utilizar. Entonces la energía necesitará establecer el elemento seleccionado e imprimir el nombre y la descripción. Con eso, pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Entonces aquí vamos a seguir adelante y crear un vacío público elemento seleccionado para usar. Y va a tomar N y item manager para usar. Y aquí vamos a establecer el ítem seleccionado como el ítem a utilizar OKR. Entonces para eso porque hemos escrito artículos no ítem, entonces el nombre del ítem es go dot txt va a ser igual a lo que sea el ítem a usar o podemos usar el ítem seleccionado. Por lo que el elemento a utilizar el nombre del elemento punto, entonces el texto de la descripción del elemento sería igual al elemento. Para utilizar esa descripción del artículo. Ahí vamos, guarde eso. Ahora. Tenemos que utilizar el método de prensa que tenemos en nuestros botones. Entonces aquí, déjame mostrarte. Podemos ver eso en la prefabricada que hemos creado, que está en la batalla. Aquí puedes ver que tenemos la batalla. Entonces abre el guión para el botón. Entonces en la parte inferior justo aquí tenemos el script del botón Items y vamos a usar esto. Por lo que vamos a hacer doble clic en el botón Elementos. Y aquí si recuerdas, tenemos el método de prensa, pero ahora vamos a añadir otra condición. Entonces primero, usamos los dos. Si tenemos el menú activo que si tenemos el menú de la tienda activo. Ahora si tenemos el fondo activo, así que vamos a comprobar si en la instancia de punto del gestor de batalla, punto, menú de
elementos o los elementos a utilizar menú, punto está activo en la jerarquía. Entonces aquí vamos a acceder a la instancia de punto de manager de batalla, punto punto seleccionado elemento para usar. Y lo vamos a poner como el elemento en el botón. Elemento en botón, guarde eso. Ahí vamos. Y ahora para probar esto, voy a volver a Unidad. Voy a salir del prefab o se debe ajustar el elemento en los botones. Y aquí, ya hemos creado todo eso. Voy a volver. Voy a seguir adelante y añadir un par de artículos en el suelo. Yo también quería hacer algo aquí dentro. Ah, ¿Volteado de lo que deberíamos estar apagando? El panel de artículos? Sí. Ahí vamos. Tenemos que asegurarnos de que esto esté apagado. Y tenemos que poner un par de cosas aquí. Sí, eso es lo que tenemos que hacer. Entonces abriremos el panel de Estados Unidos. Entonces, en primer lugar, necesitamos los artículos para usar objeto de juego. Ahí vamos. El ítem seleccionado el cual se establecerá por sí mismo. Esto podría haber sido privado, pero lo usamos en diferentes lugares. Entonces el contenedor de ranura de artículo, y este va a ser el prefabs on para dar click aquí. Ve a las Prefabs, ve a la batalla marítima. Y este será el contenedor de ranura de artículo. Tendremos el panel de exhibición de artículos, que debería estar aquí, el padre contenedor. Tenemos el nombre del artículo. Entonces si abrimos la descripción del artículo, Esto probablemente debería tener un mejor nombre, el valor. Y el valor. Y creo que eso es todo. Vamos a salvar todo eso. Vamos a cerrar la escena de batalla. El escenario de batalla. Guarda eso. Abre esto. Y antes de que nos
olvidemos, sólo vamos a acercar al jugador en un par de artículos aquí dentro. Entonces si vamos a los Prefabs, los artículos, vamos a añadir la x, la porción, dos porciones, la armadura y la plata. Entonces correremos nuestro juego. Vamos a seguir adelante y recoger los artículos. Ahí vamos, hemos recogido todos los artículos. Ahora vamos a iniciar la batalla. Vamos a abrir los ítems Menú y no está funcionando. ¿Por qué es eso? Porque obviamente no pusimos el botón de artículos para hacer nada. Por lo que estos son pasos muy cruciales que sigo olvidando. Entonces en el ítem de EU, ¿
qué hacemos aquí? Tenemos que llamar a un método aquí, pero ese método,
que son los elementos de actualización, también
debería establecer el menú de elementos para que se abra. Por lo que vamos a escribir aquí los ítems a utilizar conjunto de puntos manual, activo a verdadero. Eso lo ahorraremos. Y probablemente necesitemos volver aquí y cambiar un par de cosas. Entonces, por ahora, solo agreguemos al gestor de batalla. Los jefes de batalla deben actualizar los artículos en el inventario. Eso lo salvaremos. Ahora cuando ejecutemos el juego, vamos a recoger estos objetos, iniciar la batalla. Y como pueden ver, porque estábamos caminando, seguimos adelante. De todos modos, vamos a golpear los artículos y ahí vamos. Al hacer click en los Ítems, podemos ver la descripción y su nombre abajo. Ahora no podemos cerrar, no podemos usar, haremos esas todas esas cosas más adelante a medida que avancemos. Si quieres, puedes seguir adelante y cerrar este menú, pero no sólo eso en el siguiente video, también
vamos a poder elegir en qué reproductor queremos usar ese elemento. Entonces te veré entonces.
113. Selección de jugador para utilizar el artículo: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, en realidad sabemos en qué sobre quién vamos a estar usando el artículo. Entonces recogemos los artículos, entramos en batalla. Y vamos a ver, elegimos lo sombrío. Ya probamos esto en el gramo para los HP que golpean en el mono, así que lo pondremos a 20, 10, 0. Tenemos que quitar el modelo actual, por lo que lo pondremos en 20. No vamos a salvar eso. Ir a los artículos seleccionados monopole ocean, ¿a quién deberíamos usarlo? usaremos en el gramo. Así que mantente atento al maná actual y aquí y sus estadísticas de jugador. Entonces usamos el gramo. Ahí vamos. Aumentamos un poco la demanda. Pero como puedes ver, cada vez que usamos un objeto, actualizamos las estadísticas de los jugadores. Entonces ahí lo tienes. Esto lo hemos actualizado y podemos cerrar el menú y continuar la batalla. Entonces, no perdamos más tiempo. Y empecemos. De acuerdo, así que ahora es el momento de empezar a elegir en qué jugador queremos usar los artículos. Entonces, lo primero es que queremos conseguir una referencia
al panel de elección de personajes o ¿cómo lo llamamos aquí? El gestor de batalla pero Lienzo, tareas de
carácter, panel, Yep, es panel de elección de personajes. Y luego conseguir una referencia a los tres nombres que tenemos aquí y encenderlos y apagarlos. Entonces abramos nuestros guiones. Y aquí dentro en el gestor de batalla, voy a subir arriba. Y voy a conseguir una referencia en primer lugar, al objeto del juego, que es el del panel. Entonces objeto de juego, el panel de elección de personajes. Y luego voy a conseguir una referencia a todos los textos que hay. Y ahora voy a seguir adelante y te emitiré un reto, que es crear el menú de personajes abiertos. Por lo que es muy similar al que se utiliza en el gestor de menús. Pero en lugar de simplemente hacer un bucle a través de las estadísticas de los jugadores, necesitamos recorrer el acto de los personajes. Y también tenemos que asegurarnos de que estos personajes activos sean los jugadores, no los enemigos. Con eso dicho, pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Entonces voy a desplazarme todo el camino hacia abajo y voy
a crear un método aquí dentro el cual va a ser el vacío público, caracteres
abierto o menú de caracteres o lo que quieras. Y luego vamos a comprobar si tenemos un artículo seleccionado. Si lo hacemos, vamos a seguir adelante y en primer lugar,
comprobar 40 opción de caracteres, panel, opción, panel dot set activo a true. Por lo que ahora podemos empezar a elegir. Entonces vamos a recorrer el conteo de puntos de los personajes activos V. Y por supuesto vamos a estar agregando sólo uno. Entonces vamos a comprobar si ese es un jugador o no. Entonces porque no queremos agregar nada a nuestros enemigos. Entonces si los personajes activos en posición que pensé es un jugador, entonces aquí dentro vamos a seguir adelante y acceder a estadísticas de
los jugadores fueron primero crear un método. Así que las estadísticas de los jugadores, jugador activo. Y va a ser igual al objeto del juego o gestor del juego. Me refiero a instancia de punto, estadísticas de jugador de puntos. En el puesto I. Entonces vamos a acceder al nombre del jugador. Y la posición yo que hemos referenciado allá arriba. El texto es igual y que yo hago textos. Es sonda de malla de texto. Entonces ahí ves, he aprendido de mis errores a sólo me
llevó tres o cuatro veces el acto del jugador dot nombre del jugador. Y luego vamos a encenderlo y apagarlo. Entonces crearemos un booleano. Entonces lo llamaremos el jugador activo en jerarquía. Y quería que esto evitara tener que escribir un nombre largo. Y al parecer volví a escribir un nombre largo. Por lo que juego objeto punto activo y jerarquía. Y aquí dentro vamos a acceder a los jugadores. Nombres en la posición I dot transform, dot parent, juego objeto dot set activo. Y estará activo en base a si el jugador activo y la jerarquía, vamos a guardar eso. Y por último, si no tenemos un artículo seleccionado, podemos enviar una notificación. Si quieres. Podemos utilizar el panel de notificaciones. Pero por ahora simplemente imprimiremos ningún artículo para el artículo seleccionado. Guarda eso. Lo siguiente que tenemos que hacer es que necesitamos usar este ítem. Para eso, necesitamos poder cambiar características en el personaje del jugador o personaje anti batalla. Entonces vamos a encontrar a los personajes de batalla. Nosotros los llamamos, pero ahí vamos, personajes de batalla. Y aquí dentro vamos a crear un par de métodos distintos del daño de toma. Vamos a permitir que él o ella o quien sea utilice el objeto en batalla. Y va a ser un, Va a usar un parámetro que es el ítem para usar el gestor de ítems. Entonces vamos a comprobar si el artículo a usar punto es ítem. O podemos comprobar si ese es el caso. Si volvemos a los artículos de aquí,
en el Gestor de
artículos, Encargado de artículos aquí arriba, necesitamos comprobar el 0,
vale, entonces el tipo de ítem. Por lo que volveremos a nuestros personajes de batalla ítem para usar dot item pipe es igual
al item manager dot item type dot item. Ahí vamos. Entonces si ese elemento como un elemento y si el ítem a usar tipo de efecto punto es igual al gestor de ítems. Entonces esto es un poco molestia, no el elemento tipo de efecto punto punto punto HB. Entonces vamos a sumar HP. Obviamente no tenemos el método para agregar cada cuenta, pero lo crearemos aquí abajo. Entonces si lo contrario, si vamos a simplemente copiar esta línea, modelo de efecto punto de línea
larga, larga. Podríamos haber usado lo más, pero eso no es alejarnos de nosotros mismos. Entonces agrega mono, y vamos a crear este método aquí. Entonces sigamos adelante y creemos ambos, ambos. Y podríamos haberla generado. Y lo que eso significa, manda esto al ítem dos efecto punto U, cantidad de efecto y elemento para usar cantidad de punto de hecho. Adelante y generemos primero el mono. Y aquí simplemente vamos a conseguir el actual Mano plus igual a la cantidad de hecho. Y aquí también vamos a hacer clic derecho al método Acciones y refactorización generar, el 0 actual HB más equivale a cantidad de efecto. Guarda eso. Ahora de vuelta en el gestor de batalla, ¿qué debemos hacer aquí? El último momento es cuando en realidad seleccionamos a un jugador. Entonces, ¿qué va a ser un vacío público? Usar el botón de elemento. Entonces es cuando en realidad hacemos clic en el jugador, o podríamos haber llamado a esto el personaje estadounidense o elegir al jugador. Vamos a mantenerlo en eso. Por lo tanto ent jugador seleccionado. Y no creo que este sea un buen nombre. No estoy llenando. Mi intuición me dice que este no es un buen nombre. De todos modos, el personaje activo en el punto jugador seleccionado usa ítem n, batalla por el objeto seleccionado. Ahí vamos. Y luego vamos a entrar a la instancia de dólar de inventario y vamos a quitar ese artículo, que es el artículo seleccionado. Vamos a actualizar las estadísticas de los jugadores. Porque obviamente tal vez hemos añadido un poco de maná, digamos. Entonces vamos a actualizar las estadísticas de los jugadores. ¿ Dónde está la actualización de las estadísticas de los jugadores? Actualizar las estadísticas de los jugadores. Y luego vamos a cerrar el menú de personajes. Entonces vamos a crear ese método aquí. Tan vacío público, sé que estos son muchos métodos que hemos creado, pero son muy básicos porque ya hemos hecho esto previamente en otros lugares o cuando queríamos elegir un artículo o usar un elemento durante la jugabilidad. Entonces todos estos son muy, muy similares. Por eso no voy a entrar demasiado en detalle. No creo que haya mucho que decir que creamos para usar ítem. Simplemente comprueba si es un artículo o no, y así sucesivamente. Entonces aquí dentro vamos a acceder al panel de elección de personajes, conjunto de puntos activo. Eso va a ser falso. Y por último el menú de artículos. O tal vez no deberíamos cerrar los artículos de manera usada solo por ahora, o podemos cerrarlo. Creo que es mejor si se cierra. Por lo que los elementos a utilizar manual que establecen falso activo. Entonces aquí vamos a cerrar la elección del personaje. Y finalmente vamos a abrir nuevamente el menú. Entonces, ¿por qué estamos haciendo esto? Les diré solo que lo abran el ¿dónde está? Está bien. Entonces es actualizar artículos en inventario porque esto es lo que nos da el artículo, guarde eso. Entonces, ¿por qué estamos haciendo esto? Simplemente queremos asegurarnos de que no podemos usar ese artículo. ¿ Por qué lo cerramos aquí y luego lo abrimos? Bueno, porque queremos actualizarlo de nuevo. Entonces vamos a salvar todo eso. Vamos a volver a Unidad. Hay muchas cosas que tenemos que sumar aquí. Espero que no te olvides de nada. Espere a que esto se compile. Por lo que los jefes de batalla se desplazan por el panel de elección de personajes Ahí vamos, los nombres de los jugadores. Ir a cerrar sesión, elegir las opciones de jugador, agréguelas aquí. No podemos porque es un tipo de texto Mesh pro. Ahí vamos. Hemos añadido que se guardaron que tenemos que hacer clic en los botones de aquí. Y cada uno de esos debe tener algún tipo de entrada OnClick y cuál es. Entonces, antes que nada, manejemos el botón estadounidense y el botón de cerrar. Entonces, ¿qué hace el botón estadounidense? Agregaremos el gestor de batalla aquí, buscaremos a través del gestor de batalla y necesitaremos abrir los personajes. Por lo que abre el menú de caracteres, el botón de cerrar. Si arrastramos hacia abajo, cerraremos. ¿ Dónde está? Albercas cerradas, cerradas, elección de carácter cerrado. Veo algo bien, abierto. Por lo tanto, cerraremos la elección del personaje, que cerrará el panel de elección del personaje y los elementos. Podría haber evitado este registro de cambiar el nombre, pero no se preocupe por eso. Lo estamos usando en dos lugares para dos propósitos diferentes, no va a dañar nada. Y por último, tenemos que hacerlo, hemos añadido el botón de Estados Unidos. Tenemos que asegurarnos de que el botón de elección del jugador haga algo. Por lo que aquí vamos a sumar el gestor de batalla. Vamos a ir al gestor de batalla y usar el botón de artículo. Entonces esto es lo que quise decir. Display player será 0. Estos dos también tienen el mismo gestor de batalla. Con el gestor de batalla use el elemento de botón y será el jugador uno y el jugador 2. Vamos a salvar todo eso. Vamos a correr nuestro juego y ojalá no hayamos olvidado nada. Entonces vamos a recoger un par de artículos y ya sabes qué, déjame añadir una porción más aquí para el mono para que sepamos que funciona. Prefabs. ¿ Dónde están los artículos? Añadamos una porción aquí. A ver si eso. Vamos a ejecutar el juego. Adelante y recojamos los artículos. Tenía el apicultor vamos a ver, a ver si podemos derribar. Acude al gramo Eso es quitar capaz
del HP actual y tal vez ponerlo en 50. Ahí vamos. Hit enter. Ahora si vamos a los artículos, vamos a usar la porción HP, teníamos la clave estadounidense. Podemos elegir si queremos que el sombrío Draco o Jimmy lo tenga. Entonces vamos a dárselas al gramo. Y ahí vamos. Hemos añadido 50 HP. Esto te dará HP. Ahí vamos. Podemos verlo aquí y podemos verlo actualizado y las estadísticas de los jugadores. ¿ Qué tan guay es eso? No hemos agregado la capacidad de usar la armadura, por cierto, para añadirlas a Drake o Jimmy durante la batalla. No estoy seguro de cómo eso va a afectar nuestra jugabilidad. O en realidad, no estoy seguro si foo debería estar agregando un durante la batalla, pero es bastante fácil. Podemos seguir adelante en los personajes de batalla. Aquí, te daré este reto fuera del ámbito de nuestra jugabilidad, puedes añadirlo aquí. Entonces si no es un artículo típico que afecte ni a HP ni a mono, puedes comprobar si es una armadura o si es una espada, y luego puedes agregarla a los solteros. Y aquí, a pesar de que cambiamos el poder del arma, en realidad no es necesario agregar el elemento a ese personaje. Simplemente cambia el poder de las armas y la defensa de las armas. Pero con eso, espero que lo disfruten. Espero que resuelvan la complejidad de la que necesitábamos utilizar artículos en nuestros personajes. Fue realmente divertido. Fue un código realmente complicado, que es muy bonito. Si no estás seguro de cómo funciona todo eso, solo tienes que seguir el código, pasa otra vez por el código, una o dos veces, asegúrate de entender cómo cada uno de esos está siendo afectado, cómo todo está cambiando, y espero que lo disfruten y nos vemos en el próximo.
114. Sección 17: cómo gestionar con los jugadores muertos: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. Por último, en este video, llegamos a matar a nuestros jugadores. Sí. Entonces ahora empezamos. Atacemos un poco. Entonces esperemos a que uno de ellos muera. Entonces Jacob muere. Como puedes ver, tenemos efectos de partículas y sueño costero Draco, Eso es estrategico, otro de un gramo. Entonces cuando el sombrío
muere, también obtiene este efecto de partículas de aspecto fresco. Bueno, no hace tanto frío, pero también se arrodilla y muere, y Jimmy también muere. Pero desafortunadamente, no podremos verlo porque, uh, porque, bueno, él muere por el ataque de uno de los enemigos y paramos la batalla. Pero como viste, todo está funcionando bien. Entonces, no perdamos más tiempo. Y empecemos. Ah, así que por el momento, nuestros jugadores no mueren, pero ya no tienen ningún HP. Ya no tienen giro, pero no mueren. Y en realidad tenemos un lugar para manejar a los jugadores muriendo. Aquí Es cuando el personaje activo tiene un HP que es igual a 0. Entonces sigamos adelante e implementemos eso. ¿ Cómo vamos a hacer esto? Bueno, van a haber dos cosas que tenemos que hacer
a la muerte de uno de nuestros personajes. Una, vamos a hacer que aparezca una partícula, así que algún tipo de humo como ser un explotado. Y el segundo es que vamos a cambiar este orgullo cuando eso suceda. Entonces si sí tenemos, o si tu personaje sí tiene uno de estos sprites donde está muerto, como por ejemplo, el esqueleto. Y aquí si abrimos esto, podemos ver que tal vez sí tiene uno de los sprites muertos, por ejemplo. Digamos que podríamos pasar esto como un esqueleto muerto. Pero para Jimmy, No hay ese sprite. Dondequiera que miremos, vamos a tener que ser un poco creativos al respecto, y te voy a mostrar cómo vamos a hacer eso. Pero antes que nada, sigamos adelante y creemos un sistema de partículas. Ahora, siempre te animo a que vayas a crear las tuyas propias. Ya tengo uno preparado que voy a usar, que es la muerte del jugador afecta esto podría haber sido nombrado los personajes que efecto. No importa. Puedes ponerle el nombre que quieras. Lo vamos a utilizar también en los personajes. Entonces voy a cambiar esto por el personaje que afecta ese hecho. Y voy a arrastrar esto justo aquí y los activos. Y como ya he dicho, ¿
y qué debemos hacer aquí? Voy a importar esto y vamos a tener una carpeta diferente y las prefabs. Entonces prefabs, así que voy a poner esto en un lugar diferente. Creo que este es un buen lugar para ponerlo. Entonces voy a arrastrar el efecto personaje. Y al jugador. ¿ Qué es esta prefabs de batalla? Voy a eliminar los hechos de la carpeta. No lo necesitamos. De acuerdo, entonces ahora tenemos los efectos. A continuación necesitamos los sprites y ¿cómo vamos a hacer los sprites para eso vamos a usar? Y yo voy a hacer lo mismo por el soldado oscuro. Y el esqueleto ya tendrá su propio ese sprite, que será uno de los que estaremos usando más adelante. Pero de todos modos, ahora sabes cómo puedes crear esos sprites aunque no tengas eso. De acuerdo, Entonces lo siguiente es que vamos a conseguir una referencia a esto. Entonces voy a entrar en nuestro personaje de batalla. Entonces personajes de batalla. Y aquí dentro voy a asegurarme de que sea público. Y luego crearemos un renderizador sprite. Ups. Un renderizador sprite, porque éste será el sprite. Y otro sistema público de partículas, que van a ser las partículas de muerte. Ahí vamos. Y ahora necesitamos fijar el precio del escritorio y esa partícula. Entonces voy a volver aquí. Voy a salvar esto,
guardar esto de nuevo aquí en los jugadores de batalla prefabs de batalla, Vamos a ver, Jimmy ahora tiene una referencia a las partículas de la muerte. Voy a encerrarlo. En realidad, voy a elegir todo. Solo mantengamos la pierna de Jimmy cerrada por ahora. Y estas son las partículas de muerte, creo. Y lo voy a agregar a las partículas de la muerte. Entonces efecto muerte personaje y los sprites, voy a entrar en el jugador, la muerte. Y yo voy a elegir este. Y por alguna razón no me está permitiendo agregarla. A lo mejor deberíamos hacer de esto un sprite. Ahí vamos sprite. Y ahora esto debería estar funcionando bien donde vaya Jimmy prefab. Entonces por alguna razón esto no funcionaba, pero de todos modos, sin preocupaciones, volveremos. Usaremos el sprite, salvaremos todo eso. Y ahora tenemos el sprite y las partículas sordas en Jimmy, y eso es todo. Entonces vamos a volver a los Prefabs en el jugador. Voy a elegir Draco y lo sombrío. Voy a entrar a las partículas de batalla y voy
a añadir las partículas a ellas y eso ha traído también se debe crear. Pero por ahora, te voy a emitir un reto. Y tu reto es cambiar estos productos. Por lo que en primer lugar, necesitarás crear un jugador de matar método. Entonces necesitarás facturarlo. Si hay un sprite de deuda disponible, necesitarás acceder
al componente de renderizador sprite en el jugador y cambiar al orgullo de deudas, necesitarás instanciar a las partículas sordas. Y por último, necesitarás cambiarlo. ¿ Eso es cierto? Por lo que necesitarás cambiar los personajes es esa variable para asegurarte de que él sea eso a cierto. Así que pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Entonces vamos a desplazarnos aquí abajo y vamos a crear un jugador de matar vacío público. Y aquí dentro vamos a comprobar si tenemos un sprite. Si lo hacemos, entonces vamos a conseguir el componente,
el renderizador sprite, el renderizador sprite. Y vamos a conseguir el sprite en el renderizador sprite. Y luego lo vamos a poner al sprite de la deuda. Entonces instanciaremos a las partículas sordas. Nosotros los llamamos. De acuerdo, eso son partículas. Entonces las partículas, vamos a instanciarlas en la posición de punto de transformación, así que exactamente en el personaje y la rotación será la misma. Entonces transforma la rotación de puntos. Eso lo ahorraremos. Y por último, vamos a asegurarnos de que eso es eso es cierto. Eso lo ahorraremos. Y ahora tendremos que llamar a esto en la batalla de actualización. Entonces vamos a ir al encargado de batalla. Y aquí en lugar de simplemente tener este comentario, en realidad
vamos a comprobar si tenemos al personaje activo en la posición yo como jugador. Y el personaje activo no ha estado muerto ya. Entonces esto significa que si él es ese entonces éste es falso, entonces no vamos a acceder al método. Vamos a llamar a la capa de algas en el personaje de batalla. Entonces como pueden ver, comprobamos que en realidad es un jugador y que ya no lo es. Íbamos a matarlo. Entonces, ¿quién se hizo eso? Eso lo ahorraremos. Volveremos a Unidad. Y voy a usar la magia de editar y crear sprites para que ese Draco y que se ejecute. Entonces te veré en solo un rato. De acuerdo, bienvenido de nuevo. Entonces he dicho el esqueleto, ese sprite. Ya he dicho 14 Draco. Entonces y aquí vas. Para que se vea el sprite, lo que hice con Jericho como lo hice con el demonio o Jimmy, también
roté el sprite y me aseguré de que esté muerto. Entonces ahora todo debería estar listo. Entonces vamos a salvar todo eso. Vamos a ejecutar nuestro juego. Y antes de hacer eso, necesitamos asegurarnos de que la pantalla y aquí en el juego fuera un 1920 por 1080. Ahora estamos en el juego. Empezamos la batalla. Simplemente vamos a estar atacando, atacando, atacando. Y vamos a esperar a que uno de ellos muera. Ataque, ataque, ataque. Ojalá uno de ellos muera. De acuerdo, así como puedes ver, nuestro personaje acaba de morir, pero no vimos las partículas porque creo que la capa de clasificación era mala. Probemos esto en otros personajes. Ahí vas. Por lo que Draco murió también. Y finalmente tenemos a Jimmy también. Creo que nuestros enemigos también han muerto. Entonces ahí vamos. Ni siquiera vimos morir a Jimmy. Entonces lo último que tenemos que hacer es que tenemos que entrar a los Prefabs aquí y puedes revisar todo lo que hice. No es demasiado duro. E incluso podemos fijar las posiciones aquí dentro para que sean todas 0. Guarda eso. Y tal vez podamos mover este sprite
del Draco si no te gusta la forma en que se instaló ahí, ¿dónde está el renderizador? Las capas, la capa de clasificación estará en los personajes de batalla. En el nivel uno. Eso lo ahorraremos. Ahora intentemos matar de nuevo a uno de nuestros jugadores. Estar bien, así que uno de ellos murió. Otra vez. Ahí vamos. Estas son las partículas, solo las resuelves. Podemos hacerlos un poco más grandes. mejor, quizá aumente la escala a dos por dos. Y creo que quizá los haga un poco blancos. Por lo que esto podría diferenciar entre cuándo los ataques y cuándo uno muere. Y eso es todo, eso es todo lo que tienes que hacer. Espero que hayan disfrutado de este video. Espero que también estés matando a tu jugador. Y realmente espero que estés usando tus propios sprites,
tus propios efectos de partículas, tus propios efectos de partículas, profundizando profundamente porque las partículas o los hechos son realmente divertidos, sobre todo cuando llegas a saber qué hacen cada uno de estos componentes. Entonces por ejemplo, la fuerza a lo largo de toda la vida, que agregué en la y. entonces se mueve un poco hacia arriba, como se puede ver, cuando uno de ellos muere,
cuando, cuando se instancian. Entonces te veré en el próximo.
115. Cómo abordar los Enemies: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos en este video, cuando ejecutamos el juego, teníamos la llave grande. Usamos magia, relámpago en el caudillo, tentáculos
mágicos en la guerra Locke. Y como pueden ver, lentamente se desvanece porque acaba de morir. Pero no sólo eso ahora cuando tratamos de atacar con Jimmy, usamos los tentáculos morados. Sólo tenemos una opción para atacar al maestro mayor porque
no podemos atacar a los Brujos porque está muerto. Entonces atacamos al mago. Lo matamos con un golpe. Fuimos y no tenemos ninguna victoria, lo
haremos más adelante. Pero por ahora manejemos la muerte de nuestros enemigos. Te veré interesado. De acuerdo, entonces ahora hemos manejado la muerte de nuestro jugador. Es hora de manejar el tiempo de nuestros enemigos. ¿ Qué vamos a hacer con nuestros enemigos? Queremos tener algo un poco diferente a lo que hacemos por el jugador. Entonces lo que haremos es que vamos a cambiar el color de nuestros enemigos. Déjame mostrarte lo que quiero decir. Si voy y elijo a Draco, por ejemplo, o elijamos a Jimmy, el jugador. Si voy al renderizador sprite y aquí y elijo los colores, puedes ver que puedo manipular los colores que tengo. Entonces si hago clic aquí, se
puede ver que puedo cambiar el rojo, lo que los hace muy cool. Por cierto, puedo cambiar el verde y puedo cambiar el azul para poder jugar. Entonces, por ejemplo, si lo hago todo el camino rojo, se
pone más rojo. Y finalmente, puedo cambiar el alfa sobre él. Por lo que vamos a manipular estos tres colores y el Alfa con el fin de cambiar lentamente, el color de nuestros enemigos para leer y hacerlos también se desvanecen lentamente. ¿ Cómo vamos a hacer esto? ¿ Cómo vamos a movernos hacia el color rojo y el desvanecimiento? Bueno, por suerte tenemos un método muy ingenioso, que es el movimiento hacia, y se puede ver aquí en la descripción que calcula una posición entre dos puntos, pero también podemos usarlo. Y este es el vector 3. Podemos establecer la posición actual, el objetivo al que queremos mover, pasar. Y finalmente la distancia máxima Delta. Y es la distancia para moverse corriente por llamada. Eso significa que lo llamamos actualización. Y a medida que se mueve, lentamente
nos movemos hacia esto, si quieres, es la velocidad en la que avanzamos hacia ese objetivo. Entonces déjame dejar de hablar y empecemos a implementar. Vamos a abrir los personajes de batalla,
mientras que los personajes de batalla, personajes de metal. Y la forma en que vamos a implementar esto es una actualización. Por lo que vamos a crear actualización aquí otra vez. Y vamos a comprobar si no somos jugador. Y somos que esto significa que vamos a desvanecernos a nuestro enemigo. Entonces voy a escribir desvanecerse enemigo. Y voy a crear este método aquí. Entonces genere el método. ¿ Qué vamos a hacer aquí dentro? En primer lugar, vamos a obtener una referencia al componente de renderizador sprite. Entonces vamos a conseguir componente, el renderizador sprite. Entonces vamos a acceder al color en el color. Y entonces vamos a ponerlo a un nuevo color. Vamos a abrir los corchetes. Vamos a golpear Enter. Y aquí dentro vamos a seguir adelante y acceder a punto matemático, avanzar hacia. Entonces como pueden ver, tenemos la corriente, el objetivo, y el delta máximo. Vamos a abrir esto. Y aquí dentro vamos a acceder de nuevo al sprite, componente
de este orgullo. Entonces voy a copiar esto. Yo lo voy a pegar aquí. Oops, lo voy a pegar aquí. Y desde el color, también
voy a acceder a la r. Así que con esto se asegurará de que accedamos al componente rojo en el color. Como se puede leer aquí, esta será la corriente. Por lo que actualmente estamos en el color o que es normal para nuestro jugador. El objetivo será V1 F. ¿Por qué lo estamos poniendo a una f? Bueno, porque aquí resolvimos que cuando es rojo, está completamente a la derecha. Entonces de vuelta en nuestro código. Y entonces vamos a tener algún tipo de velocidad en la que se mueve el color. Vamos a probar 0.3 F. Y lo vamos a multiplicar por tiempo punto delta tiempo. Y si no recuerdas a qué hora.Deltatime lo hace en realidad, ahí tienes. El tiempo de finalización en segundos desde el último fotograma. Entonces porque lo estamos agregando y la actualización, eso significa que se le está llamando cada fotograma. Si tienes un PC muy fuerte, la velocidad de fotogramas será mayor, por lo que el desvanecimiento podría ser más rápido y viceversa cuando el PC está mal, la velocidad de fotogramas es baja. El movimiento hacia donde trabaja más despacio. Entonces lo que haremos es usar el tiempo.Deltatime. Entonces es lo mismo en todas las PC. Y esto es muy importante de hacer porque
cuando construyes tu juego y otros jugadores lo usan, no todas las PC van a ser iguales. Por lo que debes asegurarte siempre cuando muevas algo, un jugador o el color o cualquier cosa dentro de la actualización para
asegurarte siempre de usar time.Deltatime o de usar actualización fija. Pero por ahora usaremos el tiempo.Deltatime. Voy a duplicar todas estas líneas aquí. Vamos a cambiar del rojo al verde y al azul. Y finalmente la a, que es el Alfa. Y actualmente tenemos el objetivo aquí para la rata como uno, el azul será 0. Quiero decir que el verde será 0, el azul también será 0 y el alfa será 0. Mantendremos las velocidades igual. Y se puede ver que necesitamos quitar la última coma. Ahí vamos. Eso lo guardamos, y estamos bien para ir. Pero también necesitamos hacer una cosa más. Y eso es que queremos realmente apagar el componente sobre el enemigo. Entonces vamos a comprobar si el componente dot sprite dot color punto a es igual a 0. Y recuerden a esto se le está llamando cada fotograma. Por lo que lentamente nos movemos hacia 0 y este componente es diferente a 0 hasta que termine el movimiento hacia aquí. Entonces cuando se convierta en 0 y aquí se juego objeto dot set activo será falso. Eso lo vamos a salvar. Y por último, vamos a crear aquí un método para matar al enemigo. Tan vacío público, matar enemigo. Y esto sólo va a poner eso en realidad. Ahí vamos. Y es ahí donde está también? ¿ Eso es público? No se preocupe por eso. Lo estableceremos en verdadero usando un método. Es más limpio usar siempre métodos. Entonces ahora de vuelta en el gestor de batalla, ¿
dónde revisamos y actualizamos la batalla? Entonces vamos a buscar batallas de actualización. Entonces aquí, comprobamos si es un jugador y estamos en deuda, entonces llamamos al jugador. Y si no somos jugador, acabo de copiar esta línea aquí. Entonces uno de los personajes tiene un HP de 0 y no es jugador y no está ya muerto. Entonces vamos a ir al punto de los personajes activos I, y vamos a matar al enemigo. Eso significa que lo estamos poniendo a morir. Entonces vamos a salvar todo eso. Vamos a volver a nuestro juego ahora todavía hay un pequeño problema aquí, pero lo arreglaré cuando lo veamos. Entonces voy a correr el juego. Voy a empezar la batalla. Voy a usar magia para atacar o usar rayos para atacar. A quién deberíamos matar la guerra Locke, creo que su salud más pequeña. Magia, azul. Brujos. Déjame hacer esto más grande. Magia. Relámpago, guerra Locke. Y ahí vamos. Como viste, se desvaneció. Qué guay es que ya no se juega una historia, por lo que sólo los ataques mayores. Pero el problema del que estaba hablando es que cuando vamos adelante a atacar, como pueden ver, tenemos la opción de atacar el muro OK, y dar click sobre él. Volvemos a atacar, lo cual es muy, muy malo si tratamos de usar magia, también
podemos afectar a los Brujos, lo cual es de nuevo, muy, muy malo. Entonces tendremos que ir a arreglar eso. ¿ Cómo vamos a hacer esto? Bueno, vamos a ir donde abramos el menú de personajes o donde abrimos el menú de blancos en realidad. Y aquí dentro comprobamos si el conteo enemigo es mayor que I. Y si el personaje activo sobre el enemigo está en la posición r, Porque recuerda, y aquí estamos pasando por los enemigos. Hemos creado la lista de enemigos aquí mismo, que es una lista de enteros. que podamos comprobar por los enemigos en el acto de personajes. Entonces aquí, enemigos en la posición I, el HP actual debería ser mayor a 0. Bueno, eso lo ahorraremos. Volveremos a probar esto. Déjame maximizar en juego este juego es mejor cuando es pantalla completa, porque las palabras son un poco pequeñas. Entonces caminamos por ahí. Teníamos la magia BP, rayo, guerra Locke, tentáculos mágicos guerra Locke. Y ahí vamos, Él muere. Entonces ahora cuando vamos a usar láser mágico, todavía
podemos ver la guerra Locke. No ataca, pero aún podemos ver la suerte mundial. ¿ Por qué es eso? Y eso es porque después de que lo pusimos a verdad aquí dentro, se mantiene cierto a medida que avanzamos. Por lo que no lo volvemos a falso. No apagamos el botón. Entonces lo que haremos es aquí dentro vamos a crear otra. Entonces si no tenemos un personaje activo o el conteo no es mayor, entonces vamos a conseguir que el punto objetivo GameObject set active y vamos a ponerlo en falso. Entonces vamos a guardar eso, volver a nuestro juego. Entonces como puedes ver, el desarrollo de
juegos es un proceso de construcción. No lo consigues todo. primera vez que
ejecutamos el juego, teníamos llave dB, magia, rayo, guerra bloqueada, magia, tentáculos, brujos, muere, láser mágico. Ya no vemos el tipo de guerra. Atacamos sólo la página principal. Entonces espero que hayan disfrutado de este video. Espero que por fin estén satisfechos de que estamos matando a nuestros enemigos, destruyéndolos, matando a nuestros jugadores, destruyéndolos. Y en el siguiente video vamos a estar terminando la batalla y la victoria. Por lo que vamos a sumar a esa satisfacción que ya tienes. Entonces te veré en el próximo.
116. Victoria en la batalla: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos en este video, cuando ejecutamos nuestro juego, comenzamos una batalla. Hacemos algo de magia en los Brujos, en, magia en, bien, tan genial, murió. Algo de magia en el maestro mayor. Nuevamente, algo de magia en el maestro mayor. Tratemos de llamarlo para que muera. Ganamos. Nosotros salimos. Podemos ver que si volvemos a empezar la batalla, notaremos en primer lugar, que destruimos todo previamente y también tenemos el maná aquí ya utilizado. Entonces estamos guardando todo. Estamos terminando la batalla correctamente. Entonces, no perdamos más tiempo y empecemos. Oh, bien, ¿entonces tiempo para cuándo? Hora de alguna victoria. Adelante y terminemos la batalla. Entonces vamos a volver y aquí vamos a desplazarnos hacia abajo y vamos a crear un nuevo método que va
a ser un I y numerador o un revestimiento. Entonces va a ser un enumerador de ojos públicos. Y esta será la batalla y 14. Y aquí dentro vamos a hacer un par de cosas. Entonces, ¿qué vamos a hacer? En primer lugar, la batalla que está activa debe fijarse en falsa. Entonces, ¿está activa la batalla? No, no lo es. Es falso. Entonces necesitamos apagar todo lo que aún pudiera estar ahí dentro. Entonces, por ejemplo, el titular del botón de la interfaz de usuario punto psicoactivo a falso. Vamos a duplicar esto, el menú de destino. Entonces objetivo, ¿de dónde obtiene 0 objetivo. Botones, puntos selectivos. Entonces no es un objeto de juego. Panel objetivo enemigo, falso. Después el menú mágico, el panel de elección mágica, los motores de batalla. Entonces si tenemos alguna batalla, nota, vamos a ponerla o poner el texto en este caso para que sea NOSOTROS uno. Entonces esto será cuando terminemos en victoria y vamos a activar la batalla. Aviso. Aviso de batalla punto activo, Activar. Ahí vamos. Ahora vamos a ceder un par de segundos. Por lo que rendiremos retorno. Nuevo, espera cuatro segundos. Y van a ser tres segundos. Supongo que es bueno. A continuación, queremos actualizar las estadísticas de los jugadores en el gestor de juegos. Entonces, por ejemplo, digamos que desperdiciamos un poco de Salud, capaces de HP, un poco de maná, y así sucesivamente. Nosotros lo vamos a cambiar. Por lo que vamos a crear un para cada bucle aquí dentro. Vamos a pasar por los personajes de batalla, jugador. En batalla, Llamaremos a esta variable en el acto de personajes. Entonces vamos a comprobar si el jugador en batalla como jugador. Y luego vamos a volver a mirar a través de las estadísticas de los jugadores y el gestor del juego. Entonces para cada estadísticas de jugador, Ese es el tipo. Y el jugador con estadísticas en gestor de juegos, instancia de
punto, estadísticas de capa de puntos, así que consigue estadísticas de jugador. Y luego aquí dentro vamos a comparar los nombres. Entonces si el jugador en Battle dot nombre del personaje es igual al jugador con estadísticas, ¿dónde está el, dónde está el jugador con estadísticas? Con estadísticas? Nombre del jugador de punto. Sí, ahí vamos. Entonces vamos a establecer las estadísticas del jugador o el jugador con estadísticas con estadísticas puntos HP actuales para ser iguales al jugador y estadísticas en batalla. De acuerdo, entonces ahí vamos, declaramos en batalla, estos nombres variables son muy confusos. Probablemente debí haberlos cambiado. Por lo que ahora
dijimos el HP, también podemos establecer la mannose para que la manera actual con la forma actual que tenemos. A continuación, necesitaremos después de terminar el para cada uno aquí dentro, vamos a seguir adelante y apagar la escena de batalla. Por lo que el punto de la escena de batalla se puso activo en falso. Y eso es casi todo lo que tenemos que hacer. Pero también tenemos que asegurarnos de que destruyamos a los personajes restantes. Entonces como recuerdan, cuando terminamos la batalla, cuando vamos a una, otra batalla, que es la misma, podemos ver que los enemigos anteriores
siguen ahí y a veces tal vez puedan atacar. A lo mejor se suman a la lista para que tengan un giro y realmente estropea nuestras batallas. Entonces lo que haremos es despejar a estos enemigos de la lista emitiéndote un reto. Entonces tu reto es destruir a todos los enemigos. Así que asegúrate de que los enemigos sean destruidos cuando termine la batalla. Y puedes asegurarte de despejar o asegurarte de despejar. Esta es una pista, la lista de enemigos para evitar luego volver y la siguiente batalla. Así que pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Entonces aquí, en primer lugar, vamos a acceder a los personajes activos y vamos a despejar todos ellos. Ahí vamos. Entonces despejamos todo el acto de personajes, pero esto no es suficiente. Tenemos que entrar aquí y necesitamos destruir a todos los jugadores en batalla. Entonces estamos destruyendo a todos los jugadores en batalla. Y por último, antes de terminar, necesitamos fijar el término actual en 0. Y también debemos acudir al gerente del juego y asegurarnos de que nuestro jugador pueda caminar de nuevo. Por lo que de nuevo, el manager dot instance dot battle está activo y es igual a false. Guarda eso. Y por último, necesitamos llamar a este método. ¿ Y cuándo lo vamos a llamar? Si bien lo llamamos en un par de lugares? Y quizá deban cambiarse las notas de texto que queremos. A lo mejor no debería ser así. Pero en actualización. Entonces en lugar de imprimir, ganamos, vamos a empezar una co-rutina. Y ese equipo central va a ser la co-rutina de batalla. Y también cuando huimos. Entonces, ¿dónde está la huida? Cerrar. Siguiente turno, huyendo. Déjame darle el tiro de llave F. Pongamos la carrera. De acuerdo, ahí vamos, The Runaway. Entonces aquí vamos a seguir adelante e iniciar la corutina. Y debido a que dijimos la batalla a falso y apagamos la escena de batalla, simplemente
vamos a quitar a esos dos. Y en cambio vamos a iniciar una corutina. Y va a ser la calidad de batalla final. Ahí vamos. Eso lo guardamos. Ahora de vuelta en nuestro juego. Cuando corremos, vamos a tratar de matar a todos nuestros enemigos. En la llave B, magia, rayo, guerra, tentáculos mágicos de
registro, brujos. ¿ Eso es magia? Tentáculos, el maestro mayor. Ahí vamos. Y para algo cuando no del todo bien, vamos a rechazar, vamos a ver si alguna de nuestras estadísticas ha cambiado. Por lo que atacamos con el Grimm. Ahí vamos. El actual Mano cambió. Atacamos con Draco, la actual Mano cambió y el jugador. que capa profunda mientras que el jugador, bien, Así que es de hecho no destruir, tiene dinero. Actual Mano también cambió. Pero por alguna razón el máximo es de 30, apenas 30. Algo raro en eso. De todas formas, detengámonos aquí. Es necesario asegurarse de que el monarca actual sea 1, 0, 0, 0. Esto es un gran error, grande no-no. Eso lo ahorraremos. También iremos quizá al jugador y aplicaremos los cambios. De acuerdo, entonces el problema aquí dentro es que no teníamos una co-rutina. Entonces tal vez no deberíamos apagar escena de batalla como apagarse prematuramente. De acuerdo, bienvenidos de nuevo, mis compañeros desarrolladores, desarrolladores de juegos. En primer lugar, deberíamos habernos asegurado de que no sólo destruyamos al jugador en batalla, porque esto sólo destruirá el guión de personaje de batalla en nuestros jugadores y enemigos. Por lo que necesitamos asegurarnos de escribir jugador en juego de batalla objeto para destruir. Esto destruirá todo el objeto del juego. Segundo, tenemos que asegurarnos de que he estado aquí. Comenté todo el registro de depuración por los daños porque estaba usando los bugs. Y la India, tenemos que asegurarnos de que estamos en batalla de actualización. Cuando iniciamos la corutina, teníamos aquí estas tres líneas que ponían todo en falso, pero ya lo hacemos aquí en la corutina final de batalla. Entonces ahí vamos. Tenemos que asegurarnos de establecer esto en falso. Ahora, otra cosa que noté al huir, recibimos este mensaje que queremos, y no queremos tener eso cuando huimos. Entonces aquí dentro, voy a quitar estas dos líneas. O sabes qué, tal vez más adelante vamos a comprobar que el se está escapando también. Tenemos una, tenemos una variable aquí para el está huyendo. Oh, no lo hacemos. Entonces tal vez más adelante crearemos una variable que se está escapando. Nosotros lo ponemos a la verdad. Y aquí. Y si es cierto, entonces no imprimimos lo que queremos y haremos también cosas diferentes aquí. Entonces espero que hayan disfrutado todo está funcionando ahora volvamos a nuestro juego. Corremos el juego. Empezamos la batalla. Y vamos a ver, usamos el aligeramiento mágico en la magia de los Brujos. Ah, murió. Eso es genial. Entonces vamos a usar en el mago maestro, otra vez tentáculos mágicos, edad Nystrom, muere. Nosotros queremos, nos vamos. Se puede ver que todos los personajes están destruidos. Volvemos a empezar la batalla. No tenemos tanto dinero como teníamos. Entonces magia, relámpago, guerra Locke, y no murió esta vez tal vez anteriormente eso fue un golpe crítico. Por lo que los rayos hacen amo a ellos, atácanos. Atacemos solo. Nos atacan. Ahí vas. Draco muere. Éste muere. Tratemos de huir. No hay escape. Vuelve a escapar, no hay error. Nos atacan, estamos casi ciegos. Por favor, huye. No hay escape, y todos lo compramos y nos perdemos. Pero aún no tenemos ningún juego sobre los mensajes, pero lo haremos en el próximo video. Entonces espero que lo disfruten y nos vemos en el próximo.
117. Crear juego sobre la pantalla: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. En este video, vamos a estar creando nuestro juego sobre escena, y vamos a ir hacia él siempre que todos nuestros jugadores tuvieran dy. Entonces, no perdamos más tiempo y empecemos. Ah, vale, así que ahora tenemos que lidiar con el hecho de que todos nuestros jugadores mueren, no nuestros enemigos son jugadores y perdemos el juego. Por lo que necesitaremos una escena Game Over y un juego sobre pantalla. Vamos primero que nada y a nuestro código y al gestor de batalla. Voy a cerrar todo a medida que me muevo hacia arriba. Mantengamos esto abierto. Esto cerraremos esto,
cerraremos y todo lo demás. Y vamos a crear una referencia aquí, que va a ser un campo serializado de tipo string. Y va a ser el juego sobre escena. Guarda eso. Ahora vamos a desplazarnos hacia abajo y crear un equipo central que sea similar a la corutina de batalla final. Entonces va a ser un público en numerador y la ganancia, ganar sobre coroutine. Y aquí dentro, en primer lugar, vamos a crear un aviso de batalla dot SetText. Ahí vamos a estar perdidos. Entonces vamos a acceder a ese aviso de batalla punto Activar. Ahí vamos. Entonces vamos a esperar tres segundos. Por lo que rendimos retorno y la nueva forma por segundos, y volveremos a esperar unos tres segundos. Por último, vamos a poner activa la batalla en falsa. Y vamos a acceder al encargado de escena. ¿ Tenemos acceso al encargado de escena? No, no lo hacemos. Entonces sigamos adelante y lo sumamos aquí. Por lo que Unity motor, gestión de escenas, guarda ese desplazamiento de vuelta hacia abajo. Entonces Encargado de Escena pensó cargar escena, yo quería ir a la instancia. Estoy tan acostumbrado a tener siempre una instancia después de un gerente. Entonces carga vista y vamos a cargar el juego sobre escena. Eso lo ahorraremos. Y vamos a llamar a esto cuando todos nuestros jugadores estén muertos. Entonces en lugar de que
perdimos, vamos a empezar una co-rutina. Empezar la co-rutina. Y como el juego sobre escena. Y estoy bastante seguro de que nos habríamos olvidado un par de cosas aquí. Ah, así que juego sobre eso. Tenía el juego por cortejar. Perdón por eso. Podemos eliminar esas tres líneas o puedes guardarlas como un recordatorio de cómo progresamos lentamente utilizando nuestro código. Entonces realmente me encantan estas tres secciones
ahora mismo los jugadores están empezando batalla, el enemigo, o las cuatro secciones y la batalla final porque realmente muestra cómo nosotros, no
se trata de simplemente tirar del código y hacer que funcione y eso es todo. No, se trata del proceso siempre de manera lenta pero segura actualizamos nuestro código, agregamos nuevos métodos, utilizamos nuevas técnicas, y también emitimos nuevos retos. Y tu reto va a ser crear un juego sobre escena. Así que crea una escena para el juego encima en un lienzo con un poco de texto y fondo, tal vez a tres botones para la carga menos Guardar Menú Principal y salir del juego, y eso es todo lo que tienes que hacer. Así que pausa el video ahora mismo y ve a hacer el reto. Y volveré con todo ya listo porque, bueno, no es muy divertido verme hacer esto cada vez. Entonces te veré en solo un rato. Oh, hey, bienvenido de nuevo. Entonces, ¿cómo conseguiste todo eso? Por lo que acabo de crear de nuevo sobre establecer algún fondo, agregué estos tres botones de aspecto fresco. Y puedo decir el, digamos realmente bonito juego sobre pantalla. Entonces ahora lo siguiente que tenemos que hacer es seguir adelante y crear un guión de manager de escena aquí. Entonces vamos a ir a scrip y ¿dónde vamos a crear el juego? De acuerdo, En los gerentes. Por lo que el guión C-sharp va a ser un juego sobre manager en Enter. Espere a que se compile. No, por favor no abras esto. Por alguna razón, se abre automáticamente cada vez, por lo que se acabó. Lo agregaremos al lienzo. Podemos agregarla donde queramos. Eso lo ahorraremos. Vamos a abrir el guión. Y veamos qué vamos a hacer aquí dentro. Y antes de que me olvide el Lienzo en cualquier parte, ¿dónde está? De acuerdo, Así que escala con tamaño de pantalla y vamos a hacerlo 1920 por 1080. Y ahí vamos. Eso lo ahorraremos. De acuerdo, entonces vamos a abrir el guión del juego otra vez, ¿
y qué vamos a estar haciendo aquí? Bueno, antes que nada,
empezamos, vamos a tocar una canción diferente. Vamos a apagar el controlador de jugador y todo eso. Entonces para acceder a todo esto, vamos a volver atrás y necesitamos sumar un par de directivos aquí que ya hemos configurado. Por lo que en las prefabs, el viejo yo AudioManager, el gestor de juegos, el gestor de jugadores de aquí en algún lugar deberían estar fijados. Entonces veamos el nivel de artículos. No, no necesitamos eso. A lo mejor el Lienzo podría ser usado aquí. Y este es uno de campus. Cambiar nombres. ¿ Dónde están los prefabs? Todavía necesitamos el controlador del jugador, por lo que agregaremos el jugador. Y creo que eso es todo lo que tenemos que hacer. Eso lo vamos a salvar. Y ahora entremos aquí. Y al inicio vamos a acceder a la antigua instancia yo manager dot, dot play música de fondo. ¿ Y qué música de fondo deberíamos estar tocando? Veamos en la música. Veamos aquí abajo el tema de la cueva. Y claro, juguemos el amuleto oscuro. Creo que el 44 es lo suficientemente bueno. Ahí vamos. Mientras cambie, nos importa lo que sea. El jugador dot instance dot game object se establecerá en false, el gestor de menús. De acuerdo, así que poned activo en falso, falso. El gestor de menús seleccionó false. El gestor de batalla, manager dot GameObject, punto triste, activo a falso. Y luego tendremos que crear los dos o los tres métodos aquí dentro. Quitaremos actualización. Vamos a crear un vacío público, Kohut al menú principal. Vamos a crear una carga menos segura palabra pública, baja, última, Guardar. Y vamos a crear un método final que va a ser la sesión de juego destructor. Y lo llenaremos más adelante. Va a ser una estática privada porque no queremos que cambie en ningún lado y
sea lo mismo cada vez que se destruye sesión de juego. Y aquí dentro haremos un par de cosas. Entonces con eso hecho, te
veré en el siguiente video donde estaremos llenando todos estos métodos si quieres empezar por tu cuenta,
sí te recomiendo que hagas esto. Y por último, no olvides asegurarnos de que siempre cometemos nuestros cambios. Por lo que ahora los enemigos se desvanecen. Como pueden ver, me olvidé de cometer uno de mis cambios anteriores, así que qué puedo hacer. Entonces cuál fue el video anterior donde estábamos terminando la batalla en la victoria. Entonces eso significa que no queremos salvar todos estos. Simplemente salvamos a estos tres. Ponemos en escena a los seleccionados. Entonces esto no es 100% preciso, pero eso es todo lo que necesitas hacer siempre que te olvides de cometer tus cambios. Entonces ahora nosotros, y la batalla y la victoria con un par de signos de exclamación, cometemos los cambios ahora escenificamos todos. Pero porque en el siguiente video estaremos haciendo más cosas y terminando el juego. No voy a cometer los cambios en este momento. Y te veré en el siguiente video.
118. Cargar el último salto en el juego: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. En este video, finalmente terminamos de crear nuestro juego más. Entonces ahora ejecutamos nuestro juego. Podemos ir al menú principal, podemos salir, pero no funciona. Déjame mostrarte los otros botones. Entonces podemos dejar el juego, pero sólo tenemos juego líquido y podemos cargar el último guardado que éramos n. Así que ahí vamos. Y no sólo eso, como se puede ver, nuestra cámara de seguimiento ahora funciona perfectamente. No sólo se queda por ahí. Entonces incluso cuando vamos a otra escena, Ahí vamos. Entonces esto está funcionando. Nuestra cámara siempre está siguiendo a nuestro jugador, así que te veré en solo un poco. Oh, bien, así que sigamos con nuestro juego terminado. Entonces voy a volver aquí y vamos a primero,
llenar la sesión de juego de paja porque es el método más importante que estaremos usando en el principal y así sucesivamente. Por lo que vamos a destruir, en primer lugar,
el gestor de juegos dot instance dot game object. Ahora, sé que lo hemos dicho todo aquí, pero recuerda cuando salgamos del campo de batalla e vayamos a otra escena, todos nuestros gerentes están destruidos y pasan al juego sobre escena. Y también son un patrón de singleton. Por lo que acabo de agregar esto aquí solo para entender que estos estarán en la escena y necesitamos destruirlos. Entonces voy a volver y vamos a destruir a los otros directivos. Entonces vamos a destruir el controlador del jugador. Por lo que el script ya jugador, otra vez objeto. Voy a duplicar este también voy a destruir el gestor de menús. Y por último, también vamos a destruir al gestor de batalla. Vamos a salvar todo eso. Ahora sigamos adelante y creamos el menú rápido. Entonces aquí vamos a destruir la sesión de juego en su totalidad. Y luego el encargado de escena, donde va al encargado de escena, no tenemos bien, así que no tenemos eso. Gestión de escena. Guarde eso. Entonces Encargado de Escena, punto bajo visto, y ¿qué deberíamos estar cargando cuando renunciamos al Menú Principal? Bueno, vamos a conseguir una referencia. Entonces en escenas, el menú principal, vamos a copiar eso, volver aquí, pegarlo. Entonces como puedes ver, traté de escribir menú principal con agregar espacio mientras no debería, así que no hubiera funcionado y no tendríamos idea de por qué. Y finalmente vamos a hacer la carga last save. Entonces vamos a destruir la sesión de juego aquí también, y también vamos a destruir o ya hemos destruido, quería decir destruir al gestor de batalla. Vamos a cargar Encargado de Escena, Cargar visto, y vamos a estar cargando la escena de carga. Entonces, ¿cuál es su nombre? Vamos a copiarlo. Copia este. Pégala aquí, agrega un punto y coma, guarda eso. Y asegurémonos de que tengamos todo en lo construido. Entonces vamos a ir a la Configuración de compilación. Tenemos el menú principal cargando escena. Añadamos el juego terminado. ¿ Y qué más deberíamos estar agregando? Creo que eso es todo lo que necesitamos. Qué es esto, el juego sobre escena o acabamos de agregarlo. Está bien, genial. También podemos agregar la mazmorra, pero no creamos una forma de entrar a ella desde la Francine, así que no se preocupe por eso. O sabes qué, creo que sí necesitamos agregarla si morimos durante el juego. Por lo que BuildSettings. Añadamos el calabozo también aquí, guarde eso, retrocedamos. Y vamos a probar esto un poco. Entonces voy a entrar en el Lienzo. Y aquí, ¿tenemos alguna variable que necesitamos establecer? No, todo debería estar funcionando bien. Entonces voy a guardar eso. Voy a volver. Yo voy a correr el juego. Entonces primero empezamos. No nos limitamos a ir. De acuerdo, así que como puedes ver, tenemos algo de música genial tocando. ¿ Qué tenemos en la consola? Tenemos una referencia que falta, que es el gestor de batalla porque no
hemos agregado al manager de batalla o lo hemos apagado. Por lo que podemos sumar el gestor de batalla aquí. Y como ya he dicho, esto es sólo para probar el juego terminado. En realidad no necesitamos tener aquí a estos gerentes porque cuando
morimos, vamos al juego sobre ninguno de estos objetos del juego se destruyen. ¿Recuerdas eso? Entonces voy a encontrar los prefabs,
el juego, el juego de manager de batalla. Ah, ahora sólo recuerdo que en el calabozo, no
hemos informado a nuestro gerente de batalla y lo estoy buscando y no lo podemos encontrar. Entonces voy a Prefab los jefes de batalla, guarde eso. Vuelve a nuestras escenas a GameOver. Acude a las prefabs en la batalla el manager en eso, si eso ganó el juego. Y ahí vamos. Entonces ahora no tenemos ningún error. Entonces tratemos de dejar el juego. Esto no hace nada. Ah, ni siquiera hemos asignado los botones. Está bien. Entonces Canvas, Vamos a ver el botón MainMenu, pero lo hace para darle el campus que acabamos de crear el juego sobre manager, y este es el manual principal. Entonces vamos a dejar de fumar al menú principal. Y luego vamos a usar el juego rápido. Necesitamos un pequeño método aquí que solo imprime. Así que juego vacío público. Y sólo vamos a depurar el manto. Hemos dejado el juego. Guarde eso. Y aquí vamos a aplicación.rb renunciar. Pero obviamente esto no va a funcionar porque en realidad no estamos en el juego. Entonces voy a volver a Unidad. Voy a dar el lienzo aquí dentro. Juego rápido. Y finalmente la carga. Voy a seguir adelante y asignar el Lienzo. acercó manager salir de dos menú principal o no, esto es cargar último guardar. Perdón por esa carga última
guardar, guardar todo eso, ejecutar el juego. Y ahora podemos dejar el juego. Entonces hemos dejado el juego. Obviamente esto no funciona porque aún no lo hemos construido. Entonces intentemos ir al menú principal. Ahí vamos. Estamos en el menú principal. Si queremos continuar. Ahí vamos. Entonces empezamos, pero obviamente se puede ver que no tenemos la cámara moviéndose con nosotros. Pero vamos a probar la carga. Vamos a ahorrar. Debería ser más o menos lo mismo. Entonces cargamos, vamos a ahorrar. Ahí vamos. Pero de nuevo, la cámara no está funcionando y esto ha sido un problema a lo largo de todo el curso. ¿ Cómo vamos a arreglar esto? Bueno, vamos a entrar al controlador de cámara. Entonces, ¿dónde está el controlador de la cámara y una actualización? Entonces, ¿dónde tenemos actualización? Vamos a comprobar, y aquí vamos a crear un bucle while. Y este while loop va a comprobar si tenemos un objetivo de jugador. Y si ese objetivo de jugador es nulo, entonces vamos a seguir buscando objetivos de un jugador. Por lo que el objetivo declarado va a ser igual para encontrar objeto de tipo el jugador. Por lo que seguirá buscando un jugador. Y si sí tenemos una cámara virtual, entonces vamos a poner el seguimiento en la cámara virtual. Dot follow igual a la transformada de punto objetivo jugador porque sigue una determinada posición. Vamos a ahorrar que todo está bien. Vamos a volver. Vamos a ejecutar el juego. Y ahora cuando cargamos menos seguros, deberíamos tener nuestra cámara siguiendo al jugador. Ahí vamos. Arreglamos un problema que ha existido desde que iniciamos el curso. Te prometí que lo arreglaremos. Sí lo arreglamos. Siempre me aseguro de cumplir mis promesas. Espero que estés disfrutando de este curso. Espero que te guste como instructor. Espero que te guste la forma en que estamos construyendo todo esto. Podemos finalmente poner fin a nuestro juego. Etapa todos comprometen nuestros cambios. Y si tienes el tiempo y si aún no lo has hecho, por favor déjame una reseña. Me ayuda mucho y te veré en el siguiente video.
119. Recompensas de batalla: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos y este video, cuando ejecutamos nuestro juego, si golpeamos la tecla Y, se
puede ver que hemos experimentado ganado, que es 15000. Y luego tenemos la recompensa de objetos, que es un hacha de oro, una armadura dorada, y algún océano HB. Entonces, no perdamos más tiempo. Incluso tenemos el botón de cierre funcionando. Y empecemos. 0 caso. Por lo que ahora iniciamos batallas. Hacemos frente a jugadores, matamos enemigos, terminamos las batallas. Tenemos juego terminado, tenemos victoria, tenemos todo. Pero ¿Cuál es el incentivo para ir realmente a pelear? El incentivo es, en primer lugar, terminar algún tipo de búsqueda y en segundo lugar, conseguir experiencia y un par de nuevos artículos cool. Entonces eso es lo que vamos a hacer. Entonces vamos a entrar en el Lienzo. Vamos a abrir la escena. Y aquí voy a hacer clic derecho y crear un nuevo panel. Entonces panel, y este panel van a ser las recompensas de batalla, recompensas. Voy a hacerlo opaco hasta el final. Entonces ahí vamos, y vamos a sumar el fondo que estamos usando. Entonces voy a ir a los sprites, ustedes son elementos y agregar el que estamos usando todo el tiempo. Yo lo voy a hacer un poco más pequeño y voy a encogerlo hacia abajo a sólo sí grande. Voy a añadir un botón aquí para cerrar todo. Entonces ve a tu ojo y un botón. Este botón será el botón de cerrar. Al trabajar contigo, prefiero asegurarme siempre de llamar a cerrar botón. Entonces sabemos que en realidad es un botón aquí dentro. Mirando a la jerarquía. Voy a añadir un texto Mesh Pro y aquí, y vamos a hacer de este botón un poco más grande, así como eso de eso. Entonces el impuesto, vamos a hacerlo lo más grande que podamos. Acude al botón como fondo. Estás bastante familiarizado con todo lo que estoy haciendo. Entonces mantén perspectiva. Hazlo un poco más grande. Ahí vamos. Establece esto para que esté en el medio. Y voy a encogerme el texto para caber en la cajita aquí mismo. Entonces ahí vamos, eso es todo. Vamos a cambiar la fuente por alguna razón. Siempre lo hace. Esto no me permite elegir desde la primera vez. Hazlo audaz, hazlo negro. Asegúrese de que esto esté cerca. Hazlo más grande, lo más grande que podamos. A lo mejor en el fondo es un poco demasiado grande. Entonces lo voy a encogerlo hasta casi el tamaño y hacer que el texto sea del tamaño. Entonces ahí vamos, tenemos un botón de cierre. A continuación queremos configurar dos etiquetas o textos o lo que sea para indicar lo que obtenemos. Entonces, ¿qué obtenemos de una batalla? Podemos conseguir un montón de cosas, pero por ahora, vamos a hacerlo, lo primero que vamos a conseguir es la experiencia y los artículos. Entonces sigamos adelante y creemos un texto muy probado aquí, que va a ser la fiesta medieval. Negro audaz. Y esto va a ser las recompensas de experiencia o recompensa de XP. Voy a hacer esto más grande. Y la fuente enorme media. Consíguelo aquí. A lo mejor no tan enorme de una fuente. Va a hacer esto un poco más pequeño. Voy a seguir adelante y llamar a esto la etiqueta de texto XP. Voy a duplicarlo y poner bien, no
duplicé eso. Yo lo voy a duplicar. Gracias. Y luego voy a poner 14 los artículos aquí dentro. Por lo que esta será la recompensa de los artículos. Ahí vamos. Eso encaja perfectamente. Y esta será la etiqueta de texto de los ítems. Voy a quitar esto. Vamos a duplicar esto una vez más. Y voy a hacer esto mucho más grande. Ahí vamos. Y aquí dentro vamos a asegurarnos de que sí debemos ser auto dimensionamiento? Yo no lo creo. No todos tamaño. Hagámoslo más pequeño. Ahí vamos. Y esta será la, digamos XP ganada. O simplemente lo probaremos aquí dentro. Por ejemplo, 99, 99, XP. Ahí vamos. Ponga un espacio aquí y el valor de texto XP. Hagámoslo un poco más grande. Y luego voy a duplicar el valor exp x. Y aquí, y estos serán los artículos. El siguiente valor. Ahora, estaba pensando en tal vez poner aquí a este precio de los artículos que obtenemos, que creo que es un enfoque mucho mejor para esto. Te documentaré que hagas eso, pero se necesita un poco más de trabajo. Queremos asegurarnos de que tenemos los fundamentos abajo por ahora para que conozcamos los ítems que obtenemos. Pero como ya he dicho, sí les recomiendo que sigan adelante e implementen imágenes aquí. Entonces sólo voy a escribir actos de oro, actos plata, y porción de HB. Entonces ahí vamos. Estos son nuestros artículos. Voy a asegurarme de encajar auto size y esto porque podríamos tener varios artículos y podrían ser demasiado blandos, demasiado grandes para nuestro lienzo. Voy a hacer esto un poco más grande. De acuerdo, Entonces ahí vamos, Eso es todo lo que necesitamos. Ahora necesitamos crear un script para manipular esto. Entonces voy a entrar a los guiones. Voy a ir ¿qué carpeta debemos guardar esto en personajes de diálogo? Guardémoslo en el sistema de batalla. ¿ Es parte del sistema de batalla? Sí, seguramente esto. Entonces voy a crear un guión C-sharp y va a ser el manejador de recompensas de batalla. Entrar. Espere a que eso se compile. No, gracias. Vamos a agregar que están adjuntas al lienzo principal que tenemos. Y entonces vamos a abrir el guión aquí dentro. Lo primero que haremos es que vamos a necesitar una instancia. Tan pública, instancia estática o perdón,
batalla, instancia de manejador de recompensas. Y vamos a serializar un campo porque necesitamos el, el impuesto XP y
el texto de ítems. Entonces necesitaremos la libertad condicional de TMP. Entonces todo lo que estoy haciendo aquí, lo
estoy pasando un poco rápido porque si bien
sabemos todo que estos no son nada demasiado especiales, texto Mesh Pro, ya hemos hecho todo esto. Por lo que XB, texto y elementos texto. Después tenemos otro campo serializado de tipo objeto de juego para la pantalla de recompensa real. Y no quise duplicar eso. Después tenemos un campo serializado para los ítems. Ella tiene los artículos de recompensa. Así de tipos, Encargado de artículos. Y es una matriz porque tenemos varios de estos artículos y los artículos de recompensa. Y finalmente tenemos un entero, que es la experiencia que obtenemos. Entonces y XP, o recompensa. Ahí vamos. Entonces ahora necesitamos un método para abrir la pantalla de recompensas. Entonces voy a quitar el inicio y la actualización, y voy a crear una pantalla de recompensas abierta del vacío público. Vamos a llamarlo. Y vamos a tomar dos parámetros. Y aquí, uno será el entero para la XP y el otro será
una matriz de gestor de artículos, que son los artículos ganados, llamémoslos, y eso se llama así la XP ganada. Entonces aquí dentro vamos a establecer la recompensa de XP como la XP ganada. Y en realidad no vamos a establecer cada batalla desde la lona. Vamos a llamar aquí a este método y establecer el entero y los ítems desde dependiendo de qué pelea nos consigamos. Y veremos más adelante en los próximos videos cómo realidad
iniciamos batallas que tienen sus propios enemigos, que tienen múltiples tipos de batallas en ellos. Entonces tal vez tengamos diferentes combinaciones de enemigos en esa batalla con diferentes recompensas y diferentes objetos ganados. Entonces sigamos adelante. Yo sólo quería poner el estado de ánimo aquí. A lo mejor no entiendo por qué en realidad tenemos este tipo de configuración. Y aquí veremos más adelante todo tendrá sentido. Entonces vamos a tener los artículos de recompensa como los artículos ganados. Y luego tendremos la XP gravada. Impuesto para ser igual al experimento ganado, pero bien concatenado con espacio XP, XP. Suficientemente bueno. Ahí está esto nos molesta? No, no lo hace. Y ahora queremos establecer las pilas de artículos, pero antes que nada, queremos asegurarnos de que esté vacío. Por lo que los elementos, texto, el texto es igual a vacío. ¿ Por qué estoy diciendo eso? Porque vamos a recorrer todos los ítems, conseguir sus nombres, y concatenarlos al texto. ¿ A qué me refiero con eso? Entonces voy a crear un ForEach. Esto para cada uno, va a mirar a través de cadenas, el artículo de recompensa,
texto, y artículos de recompensa punto punto elemento B gestor de ítem. Y ahora aquí dentro vamos a establecer el texto de los ítems, texto para tener un plus igual. Entonces debido a que tenemos múltiples artículos, necesitamos agregar el plus igual para que todos concatenen, por lo que los artículos de recompensa. Y lo vamos a concatenar con una coma. Entonces, ¿cómo funcionará esto? A lo mejor deberíamos añadir la coma de antemano. Tratemos de añadirlo de antemano. O saber qué. Vamos a añadir una barra inclinada hacia atrás t.
Y barra inclinada hacia atrás d significa pestaña de barra inclinada hacia atrás. Entonces esto será algún tipo de espacio, una especie de, pero un poco más grande o simplemente agregaremos un espacio. ¿ Por qué no? Ahí vamos, guardamos eso. Vayamos a Unidad. Pero antes de que hagamos eso, bueno, necesitamos una manera de realmente probar esto. Entonces voy a emitir un reto. Y tu reto es abrir la pantalla de recompensas. Por lo tanto, crea una entrada y actualiza, comprueba si hay una clave. Cuando se presiona, abre la ventana de recompensa y con los argumentos apropiados. Por lo que este es un reto muy básico. Pausa el video ahora mismo y ve y hazlo. De acuerdo, bienvenido de nuevo. Entonces siempre elimino la actualización, pero eso es sólo porque en realidad no la necesitamos. Nosotros sólo queremos probar esto. Entonces voy a comprobar si el punto de entrada baja la tecla. Usando el código clave. Qué código de tecla, que él clave clave que usamos y, o sonido scape, usamos la tecla Y. Yo no lo creo. Entonces voy a usar la tecla Y y voy a abrir la pantalla de recompensas. La experiencia con la que voy a ser recompensada como 50 mil. Esa es cantidad muy generosa. Y los objetos de recompensa van a ser los objetos de recompensa que vamos a establecer. Y aquí por el campus. Ahora más tarde deberíamos hacer esto privado, pero por ahora sólo vamos a salvar esto. Lo estableceremos manualmente aquí. Entonces voy a volver a nuestro juego. Voy a ir al Lienzo. Voy a, whoa, tenemos tanto ahora mismo para cerrar todo esto. Entonces voy a dar el valor del texto XP, el valor del texto de los artículos, la pantalla de recompensas, que es la batalla. Recompensas. El ganado se establecerá por su cuenta y luego recompensará los artículos. Voy a sumar tres artículos aquí,
entrar en un encierro, vamos a entrar en los artículos de Prefabs y ¿qué debemos conseguir? Obtenemos un hacha de oro, obtenemos una armadura dorada, y obtenemos alguna porción de HP. Voy a guardar todo eso. Voy a sacar las recompensas de batalla. Yo voy a correr el juego. Y ahora nos movemos. Hagamos esto más grande. Tenía la Y bien, la y no está funcionando. ¿ Por qué? ¿Por qué no funciona? Porque por alguna razón nos olvidamos de hacer algo y que algo es, y eso es algo que es la parte más importante. Y eso es poner activa la pantalla de recompensas. Oh Dios mío. Y también necesitamos hacer una cosa más y es aplicar el botón de cierre. Entonces voy a seguir adelante y crear un botón de cierre del vacío público. Y simplemente pondrá la pantalla de recompensas en falsa. Eso de vuelta en nuestro juego. Vamos por el botón. Y estas son cosas realmente básicas que a veces podrías olvidar. Entonces, ¿dónde está? Recompensas de batalla, manejador, botón de cierre guardar eso, rampa, un juego. Ahí vamos. Golpea la tecla Y. Y todavía necesita algo que no estamos haciendo correctamente. O eso o mi y impotente no está funcionando. lo guardamos. Deberíamos haber salvado el 0. De acuerdo, entonces el problema era, que siempre es el mismo problema. Apagé el lienzo porque lo tenía bloqueado. No leí lo que estaba apagando. Ahora, cuando ejecutamos el juego, creo que todo está funcionando en una multa del 100 por ciento. Ahí vamos. Entonces abrimos esto y podemos ver que tenemos algo muy mal. Y esa cosa muy equivocada es que en lugar de establecer el nombre del artículo, así el nombre, los elementos de recompensa, elemento de punto de
texto, nombre. Nosotros lo pusimos a, ¿de qué tipo es? Entonces ahora ejecutamos el juego por última vez, creo. Y va a estar funcionando. Ahí vamos, El hacha de oro, la armadura dorada, y la poción HP. Entonces espero que hayan disfrutado de este video. Voy a cambiar el color aquí dentro, cuatro de los valores a leer. Ahí vamos. Entonces ahora se ve, debería verse mucho mejor. Lo verás en la intro. Entonces te veré en el siguiente video.
120. Dar recompensas de batalla: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos en este video, cuando ejecutamos la ganancia. Y para que no nos olvidemos, necesito hacer algo aquí y eso es establecer la recompensa cercana, guardar eso, ejecutar el juego. Comenzó la batalla. Usa la lucha mágica en los tentáculos mágicos parecidos a la guerra, Brujos. Ahora está muerto. Ahora usa los tentáculos mágicos sobre el maestro principal. Fuimos de nuevo. Si miramos al jugador, tenía 36 HP actuales y XP actual. Es decir, y cuando cerremos el botón, verás que tiene 1000006. Eso se debe a que subió de nivel y le quitamos un poco de XP. Y si también vas a los elementos del menú, podemos ver que obtenemos nuestras recompensas. Entonces, no perdamos más tiempo y empecemos. Ah, así que ahora es el momento de realmente dar recompensas que obtenemos en flexed cuatro. Entonces para hacer eso, voy a abrir de
nuevo nuestros guiones y voy a entrar en el manejador de batalla. Y aquí dentro, te voy a emitir un reto. Por lo que tu reto es agregar lo conveniente a los jugadores activos. Vas a cambiar el método de botón de cierre para cerrar pantalla de recompensas. Vas a recorrer todos los jugadores y darles experiencia. Y también te asegurarás de agregar los artículos en recompensas al inventario de listas. Así que pausa el video ahora mismo y ve a hacer llegar caldeo. De acuerdo, bienvenido de nuevo. Por lo que vamos a cambiar esto de botón cerrar a cerrar pantalla de recompensas. Entonces aquí voy a empezar por, antes de cerrar la pantalla de recompensas, voy a parar esto. O saber qué podíamos haber guardado la ropa. Ya veremos qué hacemos. En primer lugar, vamos a asegurarnos de que para cada jugador estadísticas, activo, jugador y gestor de juegos instancia punto, estadísticas de puntos. Y aquí dentro vamos a comprobar si el jugador activo dot GameObject está activo en la jerarquía. Entonces vamos a revisar por el jugador activo. Y le vamos a sumar XP usando la recompensa de XP. Ahí vamos. Y luego vamos a crear otro bucle foreach Eso va a pasar por los artículos en artículos de recompensa. Y vamos a acceder a la instancia de punto de inventario, puntos agregar artículos y los artículos que vamos a agregar, el artículo recompensado, guarde eso. A continuación vamos a poner la pantalla de recompensas para guardar activo en falso. Entonces no sé por qué borré ahí arriba. Podría haberlo agregado aquí abajo. Y entonces aquí dentro voy a poner activa la batalla B en falsa. Por lo que vinieron manager punto instancia, dot battle active a false. ¿ Y por qué lo estoy haciendo aquí? ¿ No estoy ya haciendo eso en el manager de batalla? ¿ Dónde está? Entonces en algún lugar de aquí, ahí vamos. Me estoy poniendo aquí en falso. Pero el problema es que esto es lo que hace que el personaje o el jugador y Jimmy se mantenga, mueva o permanezca en su lugar. Entonces cuando quiero abrir las recompensas de murciélago, quiero mantener a un genio rancio en su lugar hasta que él, y yo, Uops, quiero mantenerlo en su lugar. No quiero que se mueva mientras mira las recompensas que obtuvo. Entonces salvaremos todo esto. Pero ahora el problema está en el gestor de batalla porque tenemos un par de cosas que cambiar. ¿ Y qué son estos? Vamos a estar llamando a la recompensa de batalla. ¿ Dónde lo vamos a llamar? Vamos a estar llamándolo cuando terminemos una batalla. Pero si huimos, ¿deberíamos estar llamando a esta recompensa de batalla? Obtienes una recompensa si huimos. Por supuesto que no, eso no es lo que buscamos hacer. Y además no queremos imprimir el que cada vez que
huyamos, vamos a hacer algo diferente. En primer lugar, voy a subir aquí, y voy a crear un booleano privado que se está escapando. Y esto hará un seguimiento cuando estemos huyendo. Entonces una orden para probar esto, vamos a crear otras dos variables, que van a ser públicas y XP, recompensa, cantidad. Y también otro gestor de artículos públicos tipo array, que va a ser los Ítems, recompensa. Y esto es, ya verás por qué estamos haciendo esto. En primer lugar, pongamos a la fuga a la verdad y huimos. Entonces, ¿dónde corremos un camino? Nos escapamos a algún lugar de aquí. Ahí vamos. Estamos huyendo. Entonces el valor, vamos a poner a la fuga en verdad. Y ahora vamos a entrar en la corutina de batalla. Y aquí dentro vamos a comprobar si estamos huyendo. Entonces vamos a asegurarnos de poner la batalla en falsa. Eso significa que vamos a poder
volver a correr y luego pondremos a falso el huido. Y si no, si no estamos huyendo, entonces queremos imprimir o no imprimir. En realidad, llegaremos a eso. El manejador de recompensas de batalla instancia
punto, pantalla de recompensa abierta de puntos. Y vamos a enviar con el monto de recompensa de XP y los artículos, monto, recompensa de artículos, quiero decir, así que por eso creamos estas dos variables aquí. Nos desharemos de ellos en un poco. Pero por ahora también necesitamos asegurarnos de que aquí solo si estamos huyendo o solo si no estamos huyendo. Perdón, si no estamos huyendo, entonces vamos a imprimir que queremos. Ahí vamos. Por lo que hemos solucionado ese problema. Nosotros vamos a salvar todo eso y vamos a entrar a Unidad. Vamos a asegurarnos de que hicimos todo aquí, correctamente, guardamos todo el, vale, así que vamos a entrar a Unity, vamos al Canvas, vamos al gestor de menús, y esto será sólo una cosa temporal que hacer. Entonces, ¿dónde está? ¿Gerentes de batalla? Perdón. Entonces en el gestor de batalla, tenemos los artículos recompensados y la cantidad, digamos que son 2 mil. Y los artículos serán, solo
agreguemos un hacha de oro o plata o oro y un océano monopolo. Eso lo ahorraremos. Vamos a ejecutar el juego. Vamos a iniciar una batalla, vamos a tratar de ganarla. Entonces relámpago, guerra, Locke, magia, tentáculos, brujos. Murió. Los tentáculos mágicos pueden dominar. Ganamos. Entonces salimos pero no lo hicimos. Siempre nos olvidamos de agregar una referencia a las recompensas de batalla o vamos a entrar aquí. ¿ Qué nos olvidamos de agregar? Entonces el problema aquí dentro, si hacemos doble clic y nos está diciendo que no hay instancia de un objeto. Ahora bien, ¿por qué está pasando eso? Porque si regresamos y hacemos recompensas de batalla, hemos creado una instancia. No lo pusimos a esto. Entonces voy a crear un inicio y aquí otra vez. Y voy a poner la instancia para que sea igual a esto. Ahora ya no deberíamos tener este problema. Voy a parar el juego. Voy a volver a ejecutarlo. Voy a mirar al jugador, cuánta experiencia tiene la C. 36. Entonces voy a empezar la batalla. Magia, relámpagos, guerra, suerte, tentáculos
mágicos, Brujos calienta eso. Tentáculos mágicos. Mmh, amo, está muerto. 36. Ahí vamos. Tenemos dentro, dentro del botón de cerrar, vamos a venderlo aquí. Y el Canvas batalla recompensa botón cerrar, Canvas, pero recompensaré manejador. Vamos a ponerlo a dónde está? ¿ Dónde está? El cierre de pantalla de recompensas? Entonces voy a seguir adelante, sólo declaran 36 pantalla de recompensas cerradas. Ahí vamos. Ciento novecientos treinta y seis. Eso se debe a que movimos un nivel arriba. Por lo que ahora nos hemos alzado con nuestros jugadores. ¿ Tenemos algún artículo? Vayamos al menú. Consulta los artículos. Ahí vamos conseguimos un hacha de oro y una porción menor que podemos tomar sobre Draco. Ahí vamos. Hemos agregado alguna manera. no usamos el botón de cerrar, pero está bien. Es bastante fácil. Entonces espero que hayas disfrutado de este video y te veré en el siguiente.
121. Crear zonas de batalla: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. En este video, cuando ejecutamos nuestro juego, tenemos una zona de batalla aquí dentro. En algún lugar. Ahí vamos, tenemos zona de batalla. Y si está activo en Enter, cuando entramos en él, se
puede ver que iniciamos la batalla. Todavía no pasa nada, pero seguiremos con eso más adelante. Pero por ahora necesitamos crear un tipo de batalla. Tener diferentes tipos de enemigos entre los que podemos elegir, y diferentes tipos de recompensas, recompensas de un objeto y recompensas de XP, etcétera. Entonces, no perdamos más tiempo, y empecemos con nuestra batalla aleatoria. Oh, bien, Así que ahora el sistema de batalla está funcionando bastante bien. Todo se ha montado. Pero el único problema es que nuestras batallas empiezan con nosotros golpeando al apicultor y eso no es nada bueno. Entonces lo que haremos es crear un área que al entrar en
ella, iniciará una batalla. Si quisiéramos iniciar la batalla o si presionamos cierta tecla. Entonces para eso, sigamos adelante y creemos un nuevo guión. Y el guión aquí en el sistema de batalla que está haciendo clic derecho. Y este será el tipo de batalla que tengamos. Sales será el gestor de tipo batalla. ¿ Y por qué estamos creando un guión? Porque cada pétalo necesitaremos un par de cosas. En primer lugar, va a necesitar a los enemigos que tenemos. Necesitará la recompensa que obtenemos un TI necesitará los artículos que obtenemos. Entonces voy a hacer de esto un comportamiento no mono. Y voy a usar esto como un sistema serializable. Eso lo ahorraremos. Y ahora vamos a crear tres variables. El primero será una cuerda pública, y contendrá los nombres de nuestros enemigos. Entonces vamos a crear un público y recompensar XP. Y por último, vamos a crear una matriz de gestor de artículos públicos, que van a ser los artículos de recompensa. Entonces vamos a ahorrar eso. Y ahora volveremos a la Unidad. Acude a la escena y creará un área. Entonces voy a hacer doble clic en Draco. Hagamos la escena un poco más grande. Y aquí dentro vamos a crear un objeto de juego vacío. Objeto de juego vacío. Llamaremos a esto la zona de batalla o algo así. Por lo que zona de batalla en Enter, Vamos a restablecer su posición. Doble click en eso. Y voy a mover esa zona de batalla. Y aquí voy a agregarle un colisionador de cajas. Entonces vamos a añadir un componente, el colisionador de cajas 2D. Y hagámoslo un poco más grande. Entonces eso se trata del colisionador de cajas que queremos tener. Y lo vamos a hacer un gatillo. Eso lo vamos a salvar. Ahora vamos a crear un nuevo guión aquí dentro, que va a ser la batalla, instanciar o golpear Enter. Por alguna razón, cada vez que crea un script hit Enter se abre el Visual Studio, lo
agregará a la zona de batalla. Y vamos a abrir el guión. Entonces ahora este no es el, este no es el guión que buscaba. ¿ Qué? En tanto que la batalla se instanció. Entonces veamos, notificación de batalla. Ahí vamos. Esta es la batalla instanciada que se suma a la zona de batalla. Y ahora abriremos el guión. Y lo primero que tenemos que hacer es crear una lista de gerentes de tipo batalla. Entonces va a ser un campo serializado. Y el array manager type battle type, se va a llamar las batallas disponibles. Entra, guarda eso. Y ahora te voy a emitir un reto. Y tu reto va a ser sumar algunas batallas. Así que crea tres batallas potenciales que
enfrentarán los jugadores y con diferentes enemigos y recompensas. Así que pausa el video ahora mismo y ve a crear algunas batallas. De acuerdo, bienvenido de nuevo. Por lo que aquí podemos añadir una batalla y como puedes ver, tendremos múltiples enemigos y múltiples objetos de recompensa. Entonces voy a sumar tres enemigos aquí y tres artículos. Ahora tal vez te estés preguntando por qué estamos usando cadenas aquí y no como hicimos en la recompensa. Artículos. Eso es porque si volvemos y a nuestro manager y aquí, la forma en que creamos una batalla, ¿dónde está? ¿ Dónde está? ¿Dónde está? Empezamos una batalla. Agregamos los enemigos y son de tipo string aquí. O dónde está cuando iniciamos la batalla, la cuerda son los enemigos a engendrar. Entonces no podemos usar estos o podemos cambiar incluso éste, lo cual es una buena idea. Sí te recomiendo que lo pruebes. Es una muy buena manera de aprender a lidiar con esto. Pero por ahora, sigamos adelante y ¿cuánta experiencia? O primero, sumemos a nuestros enemigos. Entonces vamos a las Prefabs. Bajemos esto. Y los enemigos de ataque o no, la batalla, los enemigos. Entonces voy a añadir una cara azul aquí, una y una guerra Locke. Y eso es todo. Esto va a ser algún tipo de batalla fácil. Obtenemos 100 XP y solo obtenemos un artículo como recompensa, que es, ya veremos qué es. En primer lugar, sumemos tres batallas potenciales a los enemigos. Entonces esto, el segundo será un mago. Con la fase azul. Incluso podemos añadir una fase azul nother. Entonces tenemos dos caras azules. El premio es de 600 y los artículos se registrarán solo un poco. Y por último, el último phi potencial que tenemos es un maestro mayor con un mago y una, otra imagen. Y esto será 1, 0, 0, 0, 500 XP. Y pongamos los artículos de recompensa. Entonces, ¿cuáles son los artículos de recompensa para entrar aquí? Creo que conseguimos uno. Entonces voy a ir a los átomos y ¿qué artículos obtenemos? Obtenemos algún tipo de armadura plateada. Entonces en, Así que este se hace. El segundo, que es un poco más duro, vamos a sumar una, armadura
dorada y en una poción. Y finalmente la última, que es la más difícil, sumemos dos porciones de HP. Un océano monopolo y un hacha de oro. Entonces vamos a guardar eso. Y ahora tenemos tres batallas potenciales entre las que podemos elegir. Ahora, lo siguiente que hay que hacer es seguir adelante y entrar en nuestros guiones. Y en la batalla instanciado o vamos a crear un par de métodos. Entonces el primero, los métodos me refería a variables. Por lo que la primera variable va a ser un booleano y va a estar comprobando si se activa en Enter. Por lo que activan y giran porque podemos crear dos tipos de zonas de batalla. Uno donde se activa de inmediato en cuanto entramos en él. Y otra que hace un seguimiento de la cantidad de tiempo que un jugador pasa en esa zona de batalla y luego inicia la batalla. Entonces vamos a crear un booleano privado que va a hacer un seguimiento si estamos en zona. Guarda eso. Entonces ahora vamos a crear un emprendedor enter on Trigger, Enter to D. Y vamos a comprobar si la etiqueta collision.com, no
hemos hecho esto en un jugador de hace mucho tiempo. Entonces vamos a comprobar si estamos activando en Enter. Y si no, vamos a comprobar que el área sea igual a verdadera. Y estaremos iniciando un contador en el próximo video. Pero por ahora, solo imprimamos que somos o nosotros,
o iniciamos la batalla. Ahí vamos. Guarda eso de nuevo en Unity. Corre nuestro juego, camina hacia la zona de batalla. Y no funciona porque no lo hemos configurado para que se active en Enter, active en Enter. Ahí vamos. Empezamos la batalla cuando entramos. Por lo que espero que lo disfruten y los veré en el siguiente video donde continuamos nuestras batallas aleatorias comenzando.
122. Iniciar batallas al azar: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. Por lo que hemos creado una zona de batalla. En primer lugar, se activa cuando entramos en ella. Entonces voy a correr y demostrar cómo funciona eso. Entonces en cuanto entramos a la zona, se produce
una batalla y 2s y 2s, voy no, no estoy seguro. Y otra opción es que si no activamos en Enter, ejecutamos el juego. Tenemos un tiempo entre batallas por ganar. Entonces ahora cuando caminamos alrededor de él por 1 segundo, entonces
iniciamos una batalla. Entonces, no perdamos más tiempo y empecemos. De acuerdo, entonces es hora de rematar con nuestras batallas aleatorias. Aquí vamos a abrir el guión y
vamos a crear un par de variables. Entonces la primera variable que voy a crear es un tiempo entre batallas. Y va a ser el tiempo entre batallas. Y el segundo va a ser un contador de batalla flotante privado. Entonces pensé que esta sería una gran oportunidad para enseñarte cómo funcionan los contadores de batalla en general. Entonces y empezar, eso significa que cuando
iniciamos la batalla, vamos a comprobar el contador de batalla y vamos a ponerlo en algún tipo de valor aleatorio. Tan al azar rango de puntos. Y va a ser un tiempo entre batallas tiempos 0.5 f y un tiempo entre batallas establecidas 2 veces 1, 0.5. Por lo que es o un poco menos o un poco más, agregando o agregando la mitad de la misma. No es un poquito, pero sigamos ahora, una actualización, vamos a revisar un par de cosas. Vamos a, en primer lugar, vamos a crear la actualización. Vamos a comprobar si estamos en la zona. Eso significa que hemos establecido el área, un área a verdadera. ¿ Y dónde está? Y el movimiento de desactivación de punto de instancia del jugador es falso. Por lo que no queremos que el jugador abra el menú y se quede atrapado ahí para que comience la batalla, queremos asegurarnos de que tenga la capacidad de
moverse y que eligió estar en esta zona de batalla lo hará. Y luego vamos a comprobar si tenemos una entrada que obtenga eje rho. Y si tenemos algún tipo de movimiento horizontal o vertical, entonces vamos a iniciar la batalla. Entonces voy a entrar en el guión del jugador y voy a copiar el input.txt es horizontal. Y no estoy seguro si sabes lo que estoy haciendo aquí. Entonces estoy comprobando si hay alguna entrada en el eje, en el horizontal. Y eso significa que si es diferente a 0, o si tenemos algún movimiento en la vertical, eso significa que nos estamos moviendo dentro de estas batallas en adelante. Si nos quedamos quietos, no queremos arrancar el mostrador. Entonces si el movimiento en lo horizontal o en lo vertical es diferente a 0, eso significa que nos estamos moviendo dentro de la zona de batalla. Eso significa que el contador de batalla puede comenzar a contar regresiva desde el tiempo delta de punto hacia abajo. Guarde eso. Y luego vamos a comprobar si el contador de batalla en algún momento se convierte en 0 o menos que o igual a. ¿ Y por qué lo estamos estableciendo para que sea menor o igual? Porque a veces, y esta es una pregunta que me hago a menudo. A veces el contador de batalla mientras se quita tiempo.Deltatime no llega exactamente al valor 0. Entonces lo que hacemos es comprobar si es menos de 0, entonces si lo es, vamos adelante e iniciamos la batalla. Pero no sólo eso, eso significa que pasará esta condición, pero espero que entendáis por qué lo pusimos menos que o igual y no sólo igual, igual a 0. Entonces aquí vamos a establecer el contador de batalla para, nuevamente convertirnos en algún tipo de rango aleatorio. Entonces ahí vamos. Y entonces vamos a iniciar una rutina de batalla co. O en realidad esto debería ser comenzar el recubrimiento. Entonces vamos a empezar una co-rutina, abrir los corchetes, y voy a seguir adelante y a emitir un reto. Entonces tu reto es crear lo dorado. Por lo que necesitarás crear una coroutina. Comenzaron batallas. O sea cual sea el nombre que se haya dicho, la batalla a activar tendrá que crear un número aleatorio para escoger un fondo potencial. Tendrás que establecer la recompensa de los objetos y XP, tendrás que esperar un poco, conseguir que fuera un poco. Eso significa retorno de rendimiento, espera cuatro segundos, y luego necesitarás iniciar la batalla. Así que pausa el video ahora mismo y ve a hacer el reto. De acuerdo, bienvenido de nuevo. Entonces voy a seguir adelante y generar aquí el método de campo de batalla. Y no es un, necesitamos asegurarnos de que sea un enumerador de ojos. Voy a quitar esta línea de código aquí. Y lo primero que vamos a hacer es acceder a la instancia de punto manager del juego, dot battle está activo, ¿
verdad? Ahí vamos. El segundo es que voy a crear un entero de batalla seleccionado aquí. Y va a ser igual al rango de puntos aleatorios. Y va a ser el 0, las batallas disponibles longitud de punto. Entonces lo que esto hace, elige un valor aleatorio entre 0 y el número de batallas disponibles. Por lo que es más o menos autoexplicativo. Ya hemos hecho mucho al azar ese rango. Entonces vamos a acceder al gestor de batalla y a la instancia. Y vamos a seguir adelante y establecer la recompensa de objetos para que sea igual a las batallas disponibles en
la posición seleccionada Objetos de recompensa de punto de batalla o no, no. Digo, sí, eso es todo. El segundo será el XPS de recompensas o el monto de recompensa de XP. Con la experiencia de recompensa de XP. Ahí vamos. Y entonces vamos a ceder a esperar un poco de tiempo. Así que rendimiento, retorno, nueva espera cuatro segundos. ¿ Y cuánto debemos esperar? Alrededor de 1.5, creo que es un buen momento. Podemos cambiarlo tanto como queramos. Después iremos al encargado de batalla. Instancia de punto, punto iniciar la batalla o comienzan las batallas. De acuerdo, Así que ahí vamos. Es el inicio de la batalla. Deberíamos enviarles la cadena de enemigos. Por lo que las batallas disponibles en los enemigos de batalla seleccionados. Ahí vamos, guardamos eso. Y por último, algo bueno que hacer es que vamos a desvanecernos. ¿ Cómo vamos a desvanecernos? Olvidé cómo se llamaba el método. Entonces mientras que el gestor de menús y el desvanecimiento, desvanecimiento, palabras de desvanecimiento, el menú Inicio de desvanecimiento. Scarred, buen juego se desvanecen imagen, así que se desvanecen imagen. Por lo que voy a acceder al método de imagen de punto de instancia de punto del gestor de menús. Por lo que esto desvanecerá la imagen dentro y fuera. Buena transición a la batalla. Y finalmente, vamos a sumar algo aquí dentro donde
vamos a destruir la zona si queremos después de terminar el fondo. Entonces voy a agregar aquí un campo serializado, que va a ser un booleano. Y vamos a activar el Activar después de iniciar. Y lo que esto hará es después de que iniciemos el juego o iniciemos la batalla, si queremos desactivarlo después de comenzar, vamos a destruir el objeto del juego. Eso significa que cuando terminamos la zona terminada de batalla, si caminamos de regreso en esa zona, ya no
tenemos una batalla ahí. Entonces voy a guardar todo eso. Voy a volver a Unidad. Guardemos eso. Voy a desactivar y el tiempo entre batallas va a ser, no lo sé. Pongámoslo a uno, guarde eso, ejecute el juego. Y eso significa que necesitamos quedarnos 1 segundo dentro de la zona. Entonces ahí vamos. Un segundo. Y no nos desvanecimos. Deberíamos haber empezado a desvanecerse. ¿ Podemos usar un rayo mágico en la página principal para que puedas ver y escuchar que eso funciona. Tenemos que desvanecernos. ¿ Cómo nos desvanecemos? Tenemos un desvanecimiento. Fade, imagen, público, vacío, desvanece. Y vamos a copiar todo eso. Vayamos al Lienzo, checemos la imagen, lo que está pasando aquí, el animador. Así que abre los parámetros de imagen que se desvanecen. Sigamos adelante y creemos una transición en el camino de regreso. Y esto va a ser activado por un y desvanecimiento sin tiempo de salida con el 0 tiempo entre transiciones. Y vamos a asegurarnos de que terminemos con el desvanecimiento. Eso lo guardamos. Vamos a copiar la referencia de cadena. Volvamos aquí. Y vamos a terminar desvaneciéndonos. Ahorramos esa batalla instanciar el agua. ¿ Y dónde deberíamos estar desvaneciéndonos? Deberíamos estar desvaneciendo en cuanto empiece la batalla. Entonces ahí vamos. Empezamos o no, llamamos al gestor de menús. Instancia. desvanecen. Guarda eso de nuevo en nuestro juego. Volver a escenas. Ejecuta el juego. Ve a la zona de batalla. Intentemos pararnos ahí dentro. Entonces si nos quedamos parados, no pasará nada. Si empezamos a movernos. Ahí vamos. Comienza la batalla, nos desvanecemos, y ahora estamos en batalla. Señoras y señores, intentemos ganar, pero creo que va a ser, tómese un poco de tiempo. A ver si ha sido destruida. ¿Dónde está? Entonces no hay batallas en porque queremos destruir sobre impacto. Tratemos de no lo activado. Así que corre el juego. Entra a la zona, camina por ahí. Ahí vamos. ¿Se destruyó? No, la zona de batalla sigue ahí. Y lo último que queremos hacer es si activamos en Enter, realidad no
hemos empezado eso. Entonces si volvemos y en lugar de imprimir, vamos a iniciar una corutina de batalla. Y deberíamos haber empezado a cortejar primero. Entonces inicia coroutine, abre los corchetes, cierra los corchetes, punto y coma, vuelve atrás, ejecuta el juego. Ejecuta el juego. Y ahora cuando caminamos a la zona de batalla, cuanto la tocamos, ahí vamos, iniciamos la batalla. Entonces espero que disfruten, espero que estén disfrutando, espero que estén cometiendo sus cambios. Tenemos tantos commits ahora mismo. Este es un proyecto increíble en el que estamos trabajando. Tenemos un juego de RPG casi terminado, pero hay un componente muy, muy, muy importante en cualquier juego de RPG. Y esa es una pelea de jefes. Y eso es lo que estaremos haciendo en el próximo par de videos. Te veré entonces.
123. Batalla de tu jefe: Bienvenidos de nuevo, mis compañeros desarrolladores de juegos. Como pueden ver, aquí tenemos un demonio aterrador. Entonces cuando corremos nuestro juego, si caminamos por aquí, caminamos por este borde, podemos ver que tenemos un demonio, pero ya es demasiado tarde. Tenemos que enfrentarlos. Entonces voy a atacar al dragón jefe. Va a volver a atacar. Voy a volver a atacar al jefe dragón. Tratemos de matarlo. No creo que sea demasiado poderoso. Ganamos la batalla porque lo hemos destruido con nuestros personajes. Entonces, no perdamos más tiempo y lleguemos a crear a nuestro jefe enemigo. Ah, caso. Entonces tiempo para algunas batallas de pérdida. Creo que esta es la parte más divertida y emocionante. Entonces voy a añadir un jefe aquí mismo y exhibe. Pero antes que nada, necesitamos un jefe. Entonces voy a ir a los sprites, personaje, enemigos. Voy a hacer clic aquí y crear una carpeta para el jefe. Y el jefe que voy a usar como éste. Entonces encontré a este dragón de aspecto fresco con un poco de animaciones. Pensé que sería genial que el jefe tuviera en realidad algunas animaciones. Voy a arrastrar a este jefe y aquí, y como pueden ver, es bastante pequeño. Entonces vamos a entrar en estos sprites. Hagamos que este 30 para aplicar. Creo que todo es un poco demasiado pequeño. Voy a asegurarme de que Vamos a probar 16. Aplicar eso. Ahí vamos. Entonces ahora tenemos un gran, gran jefe. Podemos incluso hacerlo un poco más grande, pero por ahora sólo lo mantendremos como está. Vamos a elegir todos estos y hacerlos 16,
pelar , hacerlos todos. No se aplica filtro de puntos. Y no necesitamos hacer nada mucho más. O lo hacemos. A lo mejor necesitamos seguir adelante y cambiar esto del predeterminado
al personaje de batalla y lo hará 1. Hit Enter. Ahí vamos. Entonces ahora tenemos a este enorme, enorme jefe. ¿ De acuerdo? Ahí vamos. Entonces ahora vamos a poner a nuestro jefe por aquí, tal vez hacer que se enfrente de la otra manera. Podemos hacer que esto suceda estableciendo estos dos minús1. Y entonces vamos a cambiar esto a la batalla del jefe. Le vamos a añadir un colisionador de cajas. Pero este colisionador de cajas no va a estar en el jefe, sino en el área justo aquí donde el jugador puede entrar y disparar. Entonces lo pondremos como gatillo y le agregaremos una batalla instanciada a esto. Y vamos a crear una batalla disponible aquí. Debería haber solo una batalla, y deberíamos tener a los enemigos aquí dentro debería ser un enemigo y los objetos de recompensa, pongamos la palabra XP en 3000. Y vamos a conseguir, tal vez veamos qué tipo de artículos podemos conseguir. Vayamos a los artículos prefabricados. Por supuesto que obtenemos oro, oro y un par de porciones de HP. A ver, vamos a añadir más porción de HP, tres porciones de HP, y dos monopoles. Ahí vamos y obtenemos y hacha dorada, armadura dorada, tres pociones HP y para gestionar océanos. Guardemos eso. Ahora es hora de crear un enemigo. ¿ Y cómo vamos a hacer esto? Bueno, voy a usar a uno de los ya creados enemigos de la batalla. Voy a añadir el candado de guerra aquí mismo. Y voy a cambiar un par de cosas. Entonces en lugar de caudillo, este será el, deberíamos
llamarlo el dragón jefe. Entonces pausa dragón. Voy a cambiar a los sprites para tener un jefe. Ahí vamos. Entonces un sprite jefe. Y ahí vamos. El HP máximo debe ser 1, 0, 0, 0, 0, 0, 0. Con una cuota de edad actual de 100, los directivos actuales deben ser ochocientos ochocientos veinte. He estado por error. La destreza debe ser 16. La defensa debe ser de 16. Poder de armas 60. Sí, claro. Armadura defensa 50, creo que está un poco superada. El ese sprite. ¿ Cuál debería ser ese sprite? Bueno, podemos seguir adelante y usar una de estas parcelas o sabes qué? Creo que éste va a estar desapareciendo al igual que los personajes de batalla que tenemos. ¿ Qué más debemos tener las partículas sordas? Añadamos eso. Entonces prefabs y veamos personaje. Qué es esto partículas atacantes, el daño recibido. Ahora bien, esto algo diferente. Ese gerente de batalla marítima, oh, ahí vamos. Entonces la muerte del personaje, volvamos a hacer clic en éste otra vez. Y esto no son los Brujos, este es el jefe. Dragon prefab lo cambiará en tan solo un poco. Entonces le vamos a añadir el efecto de muerte del personaje en él. Eso lo ahorraremos. ¿ Qué más deberíamos estar haciendo? Creo que esto es todo, oh, los ataques que tiene. Entonces vamos a sumar todos los ataques. Tendrá todos nuestros ataques. Podrías crear un ataque especial solo para él. Te recomiendo que hagas eso. Entonces, ¿dónde tenemos los ataques en la batalla? No. De acuerdo, así que encontré la carpeta. Hagamos click en la batalla del jefe. Y oh, quería hacer click en el dragón jefe. Y veamos qué tiene. Tiene el fuego del loo. Está bien. Por lo que necesitábamos demostrar que los encerramos. Entonces tenemos la barra, el fuego azul, los tentáculos. Démosle el láser que le ha dado los tentáculos morados, y démosle el efecto aclarador. Entonces ahí vamos. Ahora tenemos un dragón jefe muy fuerte. ¿ Qué más deberíamos estar agregando a él? Creo que eso es bastante suficiente. Entonces voy a ir a los personajes de batalla. Entonces voy a ver prefabs de batalla, enemigos. Voy a arrastrar en el jefe y vamos a crear un prefab original. Ahí vamos. Entonces ahora voy a entrar en la batalla del jefe. Voy a quitar al jefe Dragon 4. Ahora, la batalla del jefe, vamos a ver. El enemigo contra el que nos enfrentamos es el dragón jefe. Whoo. Tan aterrador, realmente da un poco de miedo. No queremos activar en Enter, porque por lo general jefes, todavía se puede huir antes de que comience la batalla. Pero veremos que si la batalla ya comienza, no
hay escape para nosotros. Entonces voy a fijar el tiempo para ser dos. Voy a asegurarme de que el activo en Enter no esté activo en Enter. Entonces voy a aumentar el tamaño. Y aquí también para hacer, no
estoy seguro de eso. Y creo que todo está casi hecho. Entonces ahora si ejecutamos nuestro juego, Tratemos de entrar en esa zona y ver si comienza la batalla. Entonces ahí vamos. De acuerdo, Entonces aparentemente no tan bien. De acuerdo, entonces la idea aquí dentro es que no queremos que nuestro personaje de batalla, me refiero al sprite sea un personaje de batalla. Vamos a ponerlo como jugador. Se renderizará con normalidad, lo moverá un poco a la derecha. Entonces voy a hacerlo, lamentablemente el sprite ya está aquí. Entonces si lo muevo, el colisionador de cajas también se moverá. Yo lo voy a meter aquí. Voy a ajustar esto. Ahí vamos, guarde eso. Y también necesitamos asegurarnos de que si entramos en los personajes de batalla y me refiero al manager de batalla y a los enemigos
prefabricados, necesitamos agregar los dragones. Entonces voy a encerrar al gerente de batalla. Voy a entrar a los enemigos al arrastre. Guardemos eso. Y tratemos de caminar por allá y ver si eso funciona. Entonces ahora comienza la batalla, y ahí vamos. Entonces tenemos a ese enorme dragón contra nosotros que estamos o deberíamos estar listos para pelear. Ahora, lo siguiente que tenemos que asegurarnos es que no podemos huir cuando se trata del jefe. Entonces te voy a emitir un reto, y tu reto no es donde correr. Por lo que necesitarás crear una variable y t batalla instanciada que decida si esto es si podemos o no huir. Haz lo mismo y el manager de batalla agrega un argumento booleano al método de inicio de batalla que decidirá si podemos o no podemos huir. Y por último, establecer la variable y la del manager de batalla. Así que pausa el video ahora mismo y ve a hacer el HL7. De acuerdo, bienvenido de nuevo. Entonces aquí vamos a crear un campo serializado. Déjame solo separarme del resto. Y va a ser un booleano y va a ser se puede escapar. Y luego crearemos un bool tipo booleano privado sobre todo esto debería estar en el manager de batalla, que vamos a comprobar. Entonces aquí vamos a crear un bool privado y va a ser la puede correr si podemos o no podemos correr. Ahora en el método de inicio de batalla, vamos a añadir otro parámetro que va a ser el Pool puede correr, guarde eso. Y ahora estamos abiertos. Y aquí dentro, si la batalla no está activa, comenzamos la batalla. Y dijimos que la puede correr igual o menor que ella, puede huir, es igual a la lata huir. Guarda eso. Ahora vamos a desplazarnos hacia abajo hacia el método de fuga. En tanto que el método de fuga, ahí vamos. Y vamos a poner una condición en torno a todo esto. Y sólo podemos huir si podemos huir. Entonces voy a sumar esos dos. Y voy a mover este si declaración y lado. Entonces si podemos correr y el valor es mayor que el, quiero decir, deberíamos mover todo esto. Ahí vamos. Entonces si podemos correr, entonces vamos a comprobar si tenemos posibilidades de huir ya que vamos a ir al siguiente turno. Y si hacemos click en el botón Huir, no
va a funcionar porque si estamos en contra de algún tipo de jefe, y lo último que tenemos que hacer es evitar cualquier error. Entonces aquí hay un truco astuto aquí. Por lo que se puede ver que la batalla de inicio ahora está equivocada porque necesitamos agregar un argumento. Entonces un truco muy bonito que puedes hacer es entrar aquí. Se puede ver que tenemos dos referencias. Si hacemos click en ellos, ahí vamos. Podemos ver que tenemos uno en la batalla Gestor Instancia iniciar batalla y uno y aquí así podemos hacer doble clic 0. Entonces estamos aquí en la batalla instanciada. Y esta batalla instanció o tiene la lata huida. Entonces vamos a ponerlo como pueda huir. Y la segunda referencia está en la línea 50. 50. Este es el que hemos puesto. El segundo está en la línea 73 y aquí, y pongámoslo en verdad. No se puede huir sólo por ahora. Vamos a salvar todo eso. Vamos a volver a Unidad. Esperará esto. Entonces el jefe batalla aquí. Ahí vamos. Entonces, ¿podemos huir? No, no podemos huir, pero en la zona de batalla, podemos huir. Entonces voy a guardar esto. Yo voy a correr el juego. Y se puede agregar algún tipo de mensaje o notificación, lo cual es una buena idea. Entonces voy a empezar la batalla. Intentemos correr. No, no podemos dejar que intentemos atacarlo con un rayo. Tratemos de atacarlo con todo lo que tenemos. Ahí vamos. Nos mató, N1 golpeó, intentemos atacar al dragón. Eso da mucho miedo. Entonces tenemos un demonio muy poderoso. Nosotros queremos o, lo matamos. Bonito. Entonces derrotamos al dragón. Tenemos hacha dorada, armadura
dorada, HP, HP, HP, HP poción, poción y mono poción. Incluso podemos crear algo aquí dentro que se
asegure de que si tenemos varias manipulaciones, podemos agregar como un pequeño paréntesis con un a3x junto a ellos, y así sucesivamente. Podemos incluso apagar, mientras que el activar al entrar. Entonces ahora si caminamos por aquí, empezamos de nuevo la batalla porque no hacemos los activados después de que empezamos aquí, ahí vamos a activarnos. Esto siempre debe estar encendido para las batallas de jefes. Y ahí vamos. Eso es todo lo que necesitábamos hacer para que nuestra batalla ganara batallando a un jefe. En el siguiente video, obviamente, necesitamos crear alguna forma de completar solicitud cuando derrotamos a enemigos y sobre todo a jefes. Entonces te veré en el siguiente video.
124. Completar las misiones de batalla del jefe: Bienvenido de nuevo, Mis desarrolladores de juegos favoritos. Siempre lo digo con la mayor intención, con todo mi corazón, mis desarrolladores de juegos favoritos, lo
has hecho hasta aquí. Cuando ejecutamos nuestro juego, podemos ver que aquí tenemos una pregunta que es derrotar al gran jag y jefe. Si bajamos, iniciamos una batalla. Tratemos de matarlo lo más rápido posible. Los ataques al cielo son tan débiles. Entonces intentemos matar a ese dragón. Otra vez. Magia, relámpago, droga y tentáculos mágicos, dragón, tentáculos mágicos, jefe Dragón. Fuimos, obtenemos nuestras recompensas. Al hacer clic en el Cerrar, se
puede ver que el elemento cinco, que es el jefe del gran dragón de la derrota, está marcado y terminamos esa búsqueda. ¿ Qué tan guay es eso? Entonces, no perdamos más tiempo. Nos vemos aquí y empecemos. Ah, está bien, así que queremos estar completando algún tipo de búsqueda cuando derrotemos al jefe. ¿ Cómo vamos a hacer esto? En primer lugar, vamos a entrar en nuestra batalla instanciar el agua. Y aquí dentro vamos a crear un par de variables. Siento como cada video que empiezo de la misma manera. De todos modos. Vamos a crear un campo serializado. Haz algo fuera de la caja. Entonces esto es un booleano y se va a llamar el debe completar acuosa o búsqueda, sólo búsqueda. Entonces, cuando esto está marcado, esto significa que cuando terminemos esta batalla, se debe completar
una búsqueda. Y vamos a crear un anillo público, verdadera búsqueda de anillo para completar. Y vamos a ahorrar eso ahora de vuelta en la batalla a recompensas. En tanto que lo malo también. ¿ Por qué no tenemos aquí las recompensas de batalla listas para nosotros? Recompensas, recompensas. Ahí vamos. La notificación de recompensas de batalla. Vamos a crear dos variables aquí, que van a ser un bool público,
mark, quest, complete, y un String público. El anhelo por completar. Guarda eso. Y ahora podemos desplazarnos hacia abajo cuando cerremos la recompensa. Aquí, vamos a comprobar si tenemos completa la búsqueda de marca. Entonces vamos a acceder a la instancia de punto gestor de solicitudes, punto mark quest, complete, mark quest incompleta o completa. Y aquí dentro le vamos a mandar la búsqueda para completar. Entonces así es que recuerdo cómo funciona el encargado de la misión. No estoy seguro, pero por suerte, hemos nombrado a nuestros métodos para que se adapten a las necesidades de lo que hacen. Por lo que ahora sabemos que marcamos esta búsqueda como completa. Por lo que ahora de vuelta en la batalla instanciada y una de nuestras corutinas. Y aquí, cuando iniciemos la batalla, vamos a llamar a la batalla lo que se llamaba manejador de recompensas. Ahí vamos. Instancia de punto, punto, instancia de punto, pensamiento Mark, búsqueda completa debe ser igual a la búsqueda debe completar. Entonces, ¿deberíamos completar una búsqueda? Y la segunda, es la búsqueda a completar será igual a la búsqueda para completar que tenemos aquí dentro. Entonces si hago doble clic, podemos ver claramente que Hagamos una y la batalla se instanció. Y éste es efectivamente manejador de recompensas de batalla. Eso lo vamos a salvar. Vamos a volver aquí. A dónde salvamos o misiones en el gestor de juegos, creo que vino manager, donde todas las misiones allá vamos. Voy a añadir uno y aquí, los pies, los pies. Gran dragón. Jefe. Voy a copiar esto. Y me voy a ir, ¿a dónde debemos ir con esto? Y a la batalla del jefe? Y debemos completar una búsqueda. Y esta será la búsqueda completa. Lo pego aquí, voy, guarde esto. Voy a entrar aquí y nos aseguramos de que no creemos que
debas completar la pequeña batalla o podemos probarla aquí dentro. Entonces voy a guardar esto. Yo voy a correr nuestro juego. Voy a seguir adelante y checar en el gerente de juego. Y aquí, primero el gestor de juegos, gestor de juegos. Entonces podemos ver que tenemos la derrota, que es el quinto elemento aquí dentro. Entonces voy a ir a la batalla del jefe. Espera al jefe Ataque, Magia aligeramiento. Tratemos de matar a este jefe. Y otra vez, eso es hacer los grandes tentáculos. Ahí vamos. Magia aligerador jefe dragón, jefe azul Dragón. Este fue un ataque tan débil. Probemos los tentáculos morados sobre los dragones jefe. Entonces nosotros uno, Vamos a ver. Ahora llegamos a ver nuestras recompensas. Cuando cerramos, deberíamos ver que este elemento está completo. Y ahí vamos. Terminamos una de las misiones que necesitábamos hacer. ¿ Qué tan guay es eso? Por lo que ahora hemos completado todo espero que hayan disfrutado. Creo que este es el último video del curso. No estoy seguro. A lo mejor haremos otro, lo
mejor voy a actualizar esto. Pero hasta entonces, espero que hayas disfrutado de todo. Espero que haya dejado una reseña. Espero que te gusto como instructor no me hagas saber. Me encantaría escuchar su opinión.