Desarrollo móvil de unidad: ¡crea tu primer juego móvil! | Tirion Learning | Skillshare

Velocidad de reproducción


1.0x


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

Desarrollo móvil de unidad: ¡crea tu primer juego móvil!

teacher avatar Tirion Learning, Software Engineer

Ve esta clase y miles más

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

Ve esta clase y miles más

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

Lecciones en esta clase

    • 1.

      Introducción

      1:49

    • 2.

      Preparación

      1:36

    • 3.

      Lo básico

      5:51

    • 4.

      Cómo crear un personaje

      5:43

    • 5.

      Cómo diseñar un entorno

      7:42

    • 6.

      Introducción a la física

      9:56

    • 7.

      Nuestro primer guion

      24:26

    • 8.

      Seguir cámara

      9:17

    • 9.

      Estados de carácter

      9:08

    • 10.

      Nuestro bucle

      5:44

    • 11.

      Temporizadores

      4:07

    • 12.

      Cómo generar nuestro mapa

      17:51

    • 13.

      Cómo mejorar nuestro mapa

      22:55

    • 14.

      Mejoras menores

      11:13

    • 15.

      Marcación

      10:37

    • 16.

      GUARDAR

      2:58

    • 17.

      Cómo mejorar los visuales

      12:27

    • 18.

      Diseño del sonido

      9:20

    • 19.

      Sistema de menú

      17:31

    • 20.

      Cómo monetizar nuestro juego

      8:26

    • 21.

      Conclusión

      5:50

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

Generado por la comunidad

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

802

Estudiantes

3

Proyectos

Acerca de esta clase

Hola, ¡y bienvenido a mi curso para crear tu primer juego móvil!

En este curso vamos a crear nuestro juego móvil muy divertido para jugar. Usaremos Unity y C# para desarrollar nuestro juego, y cubriremos todo lo relacionado con los juegos móviles, desde los conceptos básicos de codificación hasta todos los detalles de nuestro motor de juegos.

En los últimos años he creado y lanzado 4 juegos para móviles, por entero y están disponibles para descargar en Google Play. Ahora, usando las habilidades que adquirió, he creado este curso, con la esperanza de que pueda difundir este conocimiento y ayudarte a crear tu primer juego.

Cuando estaba creando mis juegos para móviles, me topé con muchos problemas y, como resultado, pasé horas o a veces incluso días buscando maneras sencillas de superarlos. En este curso cubriré todo lo que me gustaría saber cuando empecé a desarrollar juegos para dispositivos móviles y explicaré todo el proceso de crear juegos móviles de principio a fin, a través de tutoriales de video fáciles de seguir. Después de completar este curso, tendrás todo el conocimiento de Unity y C# que necesitas para comenzar a crear tus propios juegos y aplicaciones por tu cuenta.

Crear un juego móvil puede ser una tarea complicada, pero con la ayuda de este curso, vas a aprender lo que me ha demostrado ser la manera más fácil y eficiente de desarrollar juegos móviles en Unity.

Si decides inscribirte, tomarás una decisión sensata, aprendes una habilidad valiosa y a petición y divertirte mientras lo haces. Espero tener el privilegio de enseñarte.

¡Que tengas un gran día!

Conoce a tu profesor(a)

Teacher Profile Image

Tirion Learning

Software Engineer

Profesor(a)
Level: All Levels

Valoración de la clase

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

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

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

Transcripciones

1. Introducción: Oye ahí y bienvenidos a mi curso de hacer tu primer juego móvil usando el motor de juegos Unity integrado con el lenguaje de programación orientado a objetos C Sharp. juegos móviles son una industria de 1.000 millones de dólares en rápido crecimiento. Y en 2021, los juegos móviles de alerta representaron el 59% de los ingresos totales de la industria del juego a nivel mundial. Crear un juego divertido e interactivo y ser una fuente increíble de ingresos pasivos. Y las habilidades necesarias para desarrollar juegos o software en general, están en alta demanda en este momento que nunca. Si has tomado la sabia decisión aprender a desarrollar juegos móviles, pero haciendo un mojado para empezar, has venido al lugar correcto. En este curso, cubriremos todos los conceptos básicos de la inmunidad C-sharp, lo que te permitirá hacer de tu juego soñado una realidad sin absolutamente ninguna experiencia previa requerida. También cubrirá todos los aspectos principales del desarrollo y diseño de juegos móviles, desde bucles de juegos hasta sistemas de menús y obtener retroalimentación para agregar integración. O como se dijo antes, estaremos construyendo nuestro juego usando el motor de juego Unity integrado con C-sharp, Una de las herramientas más utilizadas como intuitiva para desarrollo de juegos móviles, ambos agua. Después de completar este curso, construirás tu primer juego monetizable de Fanta y adquirirás las habilidades y conocimientos para mejorar y cambiar el juego para que sea euro. Además, habrás creado esta línea negra, ¿verdad? Construir un juego móvil puede ser un tablero de tareas complicado. El guiado de una experiencia, orina si te mudas a donde sea será mucho menos intimidante. ¿ A qué esperas? Invierte en ti mismo para aprender los conceptos básicos del desarrollo móvil, puedes empezar a hacer tu primera reunión. 2. Preparación: Oye ahí y bienvenidos. Ahora, como se mencionó en la lección anterior, las herramientas que vamos a utilizar para seguir adelante, viaje de desarrollo de juegos, nuestra unidad y c-sharp, que son verdaderas, poderosas, confiables, y lo más importante, herramientas gratuitas para el desarrollo de juegos. Para comenzar este curso, necesitarás tener Unity instalado así como el editor de scripts como Visual Studio para codificar C-Sharp en el proceso de instalación para ambos es bastante simple. No obstante, voy a repasar brevemente para evitar cualquier posible error que pueda surgir. En primer lugar, dirígete a unity.com, forward slash download para descargar la última versión de Unity Hub. Selecciona cualquiera de los enlaces de descarga azules presentes en la pantalla que se ajuste a tu plataforma y sigue el proceso de instalación a partir de eso. Esta aplicación te permitirá agregar, eliminar y actualizar diversas instalaciones de unidad en tu dispositivo. Luego lanza Unity Hub y asegure que se compruebe la versión de Unity que está instalando como desarrollo móvil. Demostraré este proceso instalando la última versión de Unity disponible actualmente en mi dispositivo revisando el modo Libros Android e iOS, aceptando los términos y condiciones y haciendo clic en sí, si aparece un mensaje, entonces comenzará la instalación. Una vez hecho eso, dirígete a Visual Studio.Microsoft.com, forward slash descarga el editor de código propio de Microsoft de descarga. Haga clic en el botón Descargar Gratis bajo el título de la comunidad para instalar la última versión de Visual Studio. Una vez que se haya descargado e instalado, estarás listo para comenzar a desarrollar tu primer juego móvil. 3. Lo básico: Oye, ahí. En nuestra última lección, instalamos Unity y Visual Studio. Y al hacerlo, establecer nuestro entorno de desarrollo. Ahora necesitamos crear el archivo de proyecto para nuestro juego móvil. Para comenzar a lanzar Unity Hub y selecciona el botón azul Nuevo debajo de proyectos. Una vez que aparece la ventana de creación, ingresa nombre para tu juego móvil y selecciona la ubicación del archivo de tu proyecto. Después de esto, se asegura de seleccionar la plantilla 2D. Evita cualquiera de las plantillas móviles generadas automáticamente ya que no las vamos a utilizar para este curso. Una vez que hayas terminado, selecciona Crear, Nueva Jersey generará un proyecto completamente nuevo para ti. Esto puede llevar algún tiempo, por lo que preparado para esperar un rato. Una vez que tu proyecto se está creando en Unity se carga. Lo primero que vamos a hacer es asegurarnos de que Visual Studio esté configurado como nuestro editor de código. En la parte superior de tu pantalla, selecciona Editar preferencias. Entonces una vez que esta ventana aparece, ve a herramientas externas y asegúrate de que la versión de Visual Studio que instalaste esté seleccionada como editor de scripts externo. Si no es y no es una de las opciones desplegables, seleccione la opción de navegación y busque y haga doble clic en el archivo EXE de puntos desde su ubicación instalada de Visual Studio. Antes de empezar a entrar en el diseño del Editor de Unity, voy a empezar con pocos conceptos relevantes para los alcoholes, que deberían hacer todo fácil como yo entiendo. Empezaré con lo básico. Obviamente, vamos a estar usando Unity como nuestro motor de juego. Si este término no es familiar, solo piénsalo como una herramienta que utilizamos para simplificar algunos de los aspectos del desarrollo de juegos. Bueno, esto sí hace que algunos de nuestros obstáculos de desarrollo de juegos sean más fáciles. Inevitablemente tendremos que escribir nuestro propio código y lógica. En algún momento. Estaremos escribiendo este código en Visual Studio, los codificadores que instalamos anteriormente. Esto básicamente formateará y codificará por color toda nuestra lógica para que sea más fácil de analizar y entender. Estará escribiendo el código real en el lenguaje de programación c-sharp. cubrirán ampliamente los fundamentos de todas estas herramientas este curso secubrirán ampliamente los fundamentos de todas estas herramientas. Así que no te preocupes si algo suena desfamiliar. Encima de esto, hay algunos conceptos de unidad y c-sharp que serán útiles para entender antes de empezar a beneficiarse, ganarás muchos de los conceptos y c-sharp puede ser más útil para quienes lo hacen saber cómo desarrollarse en cualquier idioma. Entonces, si tienes alguna experiencia en codificación, es posible que puedas saltarte algunos de los siguientes puntos. Mientras codifica. Y c-sharp es un tema increíblemente largo que no se pudo explicar en ningún corto período de tiempo. Algunos conceptos pueden ser útiles para saber antes de empezar a desarrollar, comenzarán con procedimientos. Procedimientos generalmente identificables a lo largo este curso por la palabra clave void, o áreas de nuestro código que llamamos en ciertos momentos para realizar ciertas tareas, como el cálculo de escuelas secundarias para generar segmentos de mapa. El otro concepto principal de codificación que vamos a cubrir antes de empezar son variables. Se puede pensar en variables. Es como espacios de almacenamiento para diferentes tipos de datos. El tipo de datos que se pueden almacenar está determinado por el tipo de variable. Por ejemplo, una variable entera para almacenar un número y una variable de cadena almacenará texto. Ahora en unidad, hay algunos conceptos más que pueden ser útiles para entender antes de comenzar. Un objeto es cualquier cosa en nuestro juego a lo que podemos asignar lógica, como el personaje potenciará la escuela. Cuando nos referimos como sprite, nos referimos al diseño artístico para un personaje. Además, como se ve como unidades forma de diferenciar entre secciones de tu juego, como la sección de menú principal de la sección de selección de nivel en diferentes niveles. Y de nuevo, sin embargo, es posible crear tu juego y una sola escena. Y por el bien de la simplicidad, lo estaremos haciendo en este tutorial. Esto no es un problema para nosotros porque nuestro juego no va a ser incorrectamente exigente si no estuviéramos haciendo un shooter en primera persona con gráficos increíbles, sin embargo, usando múltiples escenas, estaríamos asesorado. Por último, cuando nos referimos a activos, nos referimos a archivos que utilizamos en nuestro juego como PNG se archivos MP3. te preocupes si todo esto parece un poco ya que vamos a repasar esto a lo largo del curso, lo único que hay que estar hundiendo en el momento son los conceptos básicos, básicos de unidad y C- afilado. Ahora que hemos repasado los conceptos básicos de nuestro motor de juegos y lenguaje de programación. Empecemos con el diseño del editor de Unity. Cuando no dispares, la primera vez, serás recibido por esta puerta de diseño bastante intimidante. Si eso parece confuso o complicado ya que se familiarizará mucho más con el tiempo. Además, muchas de las características que puedes ver un editor que no necesitaremos en este curso. En la parte superior del Editor de Unity hay un menú donde te pueden gustar muchas otras aplicaciones, guardar tus archivos de carga de proyecto, acceder a ayuda, etcétera Entraremos a este menú más tarde, pero es lo que vas para estar utilizando principalmente para navegar por la unidad. Debajo de esto, tenemos nuestra jerarquía de escenas. Esta es una lista de todos los objetos actuales en nuestra escena. Aquí es donde almacenamos todo. Soy un juego desde nuestro personaje hasta un mapa componentes a nuestros objetos de diseño visual. Con algunas excepciones más complejas. Si un objeto no se muestra en la jerarquía de escenas, no estará en, en nuestro juego. Debajo de esto, tenemos un menú de activos, que es una lista de cada archivo almacenado en nuestro directorio de juegos. Si queríamos añadir una canción a nuestro juego o un sprite personaje importamos a esta ubicación en el editor de Unity, que luego nos permite agregarla a nuestro juego. la derecha está el inspector de objetos, lo que nos permite retocar las diversas propiedades de los objetos en nuestra escena. Esto incluye su posición en nuestra escena, tamaño, rotación, la lógica que les han asignado, cómo se ven, etc. Finalmente, en el centro del aditivo, tenemos nuestro CGI. Esto nos permitirá ver cómo se prueban el juego y la acción, probar visuales y mucho más. puedes pensar como un adelanto de lo que verán nuestros jugadores cuando jueguen nuestro juego, lo que nos permite probar nuestro proyecto sin construirlo, todo el tiempo. Ahora la ubicación y el tamaño de todas estas áreas en tu editor pueden diferir dependiendo del diseño de tu ventana. Si estás usando el diseño predeterminado como yo, lo harás, deberías lucir similar, pero puedes cambiar esta capa a medida que te vuelvas más familiar para ver qué funciona para ti. Nuevamente, si todo esto se siente intimidante, no te preocupes. No hace falta recordar todo lo que hemos pasado en este video, pero puede ser beneficioso verlo de nuevo, ya que puede entender algunos de los conceptos, la segunda vez. Esto no se requiere de ninguna manera. No obstante, como cubriremos todos estos conceptos básicos a lo largo del curso cuando nos encontremos con ellos. 4. Crear nuestro personaje: Oye ahí y bienvenidos de vuelta. Los últimos tres videos que hemos cubierto la introducción a mi curso, los fundamentos de la unidad y c-sharp configurando nuestro entorno de desarrollo, todos los conceptos que necesitamos saber. Pero ha llegado el momento de que empiece realmente a crear nuestro juego móvil. Ahora si miras mi pantalla, verás que estoy usando el diseño predeterminado del editor de Unity. Y bajo activos tengo todo lo que se genera automáticamente cuando haces tu proyecto. Y este curso Assets carpeta, que ustedes no tendrán. Todo este curso Activos carpeta es, es, son todos los activos. Por lo que la corriente es solo archivos PNG, pero más adelante cuando añada juego múltiple también serán los MP3s y befores. Si pudiera necesitar esos, cualquier cosa que necesitaré para mi juego y todos esos activos voy a enlazar debajo de este video bajo la sección Recursos. Tienes que hacer es que necesites encontrar la sección de recursos de este video, descargar los activos del curso, archivo zip, extraer el archivo zip, por lo que solo tienes una carpeta normal. Necesito poner esa carpeta dentro de la carpeta de activos de tu proyecto Unity. Y después de que lo hayas hecho, tu pantalla debería verse exactamente igual a la mía en los activos. Ahora nuestra primera tarea en Unity va a ser crear nuestro personaje. Esto no va a ser increíblemente caliente por el momento porque no vamos a añadir ninguna lógica compleja. No vamos a añadir ningún guion. Sólo vamos a hacer el personaje que vamos a utilizar como personaje principal para el resto del curso. Lo vamos a hacer pasando por aquí a la jerarquía de objetos, haciendo clic con el botón derecho y seleccionando el Crear vacío. Ahora vamos a nombrar a nuestro jugador. Le estoy nombrando play up. Y a la derecha por aquí podemos ver todas las propiedades que este objeto tiene actualmente. Actualmente su posición sobre el eje x, eje y y eje z, que realmente no vamos a utilizar porque es un juego 2D. No obstante, sí te recomiendo que siempre hagas este 0. Ahora, lo que vamos a necesitar hacer es que vamos a necesitar seleccionar esta herramienta aquí, que es la herramienta de movimiento. Esto dependiendo de tu versión de Unity, debería estar por aquí. Si tienes una versión anterior, podría ser aquí arriba, pero encuentra la herramienta Mover y vas a tener que arrastrar esto donde quieras. También puedes hacerlo con solo cambiar estos valores. Pero obviamente no podemos ver nada todavía porque este objeto no tiene nada asignado a él. Para que sea realmente nuestro personaje. Vamos a añadir un renderizador de sprite, que nos permite agregar un sprite que cubrimos anteriormente, un archivo PNG a este objeto. Ya lo escribí, pero para tu caso, escribiendo sprite renderer y selecciona éste por aquí. Y puedes ver por aquí esta debería ser toda la configuración predeterminada que tengas. Y hay un sprite por aquí que actualmente no tiene nada asignado. Estas casillas de aquí es lo que vamos a asignar sprites o archivos de audio, cualquier cosa a cuando estamos agregando estos componentes a nuestros objetos. Obviamente, vas a la carpeta de activos del curso si la estás usando. Y vamos a querer hacer nuestro sprite a-cuadrado. Por lo que haga clic en el jugador. Y vamos a arrastrar esta plaza todo el camino por ahí. Ahora mismo. Más bien grande. que podrías tener un problema Con elque podrías tener un problemasi estás tratando de hacer un juego móvil. Entonces vamos a cambiar realmente esta propiedad por aquí en todos nuestros activos. Selecciona el círculo, mantén pulsado, desplaza el cuadrado y el triángulo. Y vamos a hacer los píxeles por unidad con 10000. Una vez terminado eso, deberíamos tener un brillante mucho más pequeño. Ahora podría seguir escalando eso hasta que lo necesite, pero en su lugar, seleccione esta herramienta Rec. Entonces haga clic aquí, mantenga pulsado turno y muévelo así para que pueda escalar mi sprite como sea necesario. Ahora mismo, eso es un sprite mucho mejor. Yo diría que quizá los hagamos un poco más grandes. Eso es mucho mejor. Por cierto, cabe señalar que estoy navegando por el editor de Unity usando mi rueda de desplazamiento para acercar y alejar y mantener pulsado el botón derecho para moverme por la escena. Así es principalmente como navego por el editor de Unity. Hay formas diferentes, pero esa funciona para mí. Entonces podemos ver que la escala establece estos valores muy grandes de gripe y se establece la escala z que no necesitamos. Entonces hagamos ese 0. Y hagamos estos 300.32. No altera ni igualar la cantidad, y es simplemente más fácil para la computadora almacenar esos valores. Justo aquí tenemos nuestro sprite, él es sólo un cuadrado. Si hacemos clic en esta ventana de juego por aquí, podemos ver cómo se verá esto una vez que jueguemos el juego. Y de hecho, si hacemos clic en este botón Jugar en la parte superior, pondrá a prueba nuestro juego y básicamente lo ejecutará todo. Y podemos ver obviamente es sólo un sprites. No se va a mover, pero así se verá nuestro personaje en el juego. Lo importante a tener en cuenta es que si hago algún cambio durante esta ventana de juego, no lo guardan. Por ejemplo, lo hice muy largo y luego hice clic aquí. Ese cambio no va a salvar si lo hiciera en la vista de escena, sin embargo, se traspasaría. Así funciona Unity. Puedes hacer pequeños cambios en tu juego mientras lo estás jugando. Puedes probar cómo funcionan y luego veré que no vas a ahorrar. Así que ten en cuenta eso. Ahora, nuestro personaje está más o menos hecho en su mayor parte, hemos hecho casi todo lo que podemos no podemos hacer mucho más a él en este momento porque no hemos aprendido ningún otro concepto. Pero por ahora, lo único que vamos a hacer es cambiar su color. Hagámosle un bonito personaje amarillo. Como podemos ver que se destaca un poco mejor en nuestra escena. Conseguí nuestro carácter amarillo contra el fondo azul. No quiero que mejorará toda esta capa. Pero si seguiste, deberías haber creado tu primer personaje con un componente de renderizador sprite jugador fuera del orgullo de las plazas, o tu propio sprite. Pero te recomiendo usar la carpeta oficial Assets del curso y cambiar el color a lo que quieras. Incluso puedes hacerlas verdes o azules. Voy a seguir con los otros fenólicos. Me gusta cómo se ve eso. Si lo has hecho, has dado el primer paso para hacer tu juego móvil. Lo siguiente que vamos a hacer es crear un ambiente para este lugar. Así que no sólo está parado en medio del abismo, sino buen trabajo a todos. Y te veré en el siguiente video. 5. Diseño de un entorno: Oye ahí, y bienvenidos de nuevo a la unidad. En nuestro último episodio, creamos este objeto jugador y asignamos la posición y la escala así como un sprite y un color a este objeto. Lo que vamos a hacer en este episodio, sin embargo, es que vamos a crear un ambiente para que nuestra escena se vea un poco más viva. Antes de hacer eso, primero debemos asegurarnos de que nuestra versión de Unity esté realmente construyendo para la plataforma correcta. Nosotros queremos. En este caso, móvil. Voy a ir a la parte superior izquierda y seleccionar Archivo, Configuración de compilación, y luego elegir una plataforma por aquí. Puedo seleccionar Windows dedicado varios Android como esos los tres módulos de plataforma que instalé para esta versión de Unity. Si quisiera construir para otra cosa, simplemente podría seleccionar y hacer clic en Aislamiento del módulo de plataforma o para los más simples como iOS, puedo seleccionar Instalar con Unity Hub. Playstation parece tener alguna documentación rara necesaria, pero obviamente no nos vamos a preocupar por eso. Yo, sin embargo, voy a estar arrancando mi juego para Android ya que me pareció mucho más fácil probar, te recomiendo exactamente lo mismo. Incluso si tienes un teléfono iOS como Audrey, voy a hacer clic en Switch Platform y ofreceré un corto tiempo de carga. Debería asegurarse de que mi proyecto pueda ejecutar unity para Android. Vamos a entonces cerrar esto y entrar en una vista de juego. Podemos seleccionar la resolución correcta que queramos. Actualmente he puesto el mío en 2160181080 paisaje. Usted puede seleccionar prácticamente el que quiera uno de estos. Puedes hacer 1920 por 1080 o incluso retrato, pero no te recomiendo que lo hagas para este curso porque solo reiniciando nuestro paisaje de juegos. Ahora tenemos la relación de aspecto correcta. Vamos a hacer nuestro entorno, pero no queremos que cada objeto de entorno que hagamos esté aquí en una lista porque eso se va a poner muy confuso. En cambio vamos a pedirlas un poco. Lo vamos a hacer usando carpetas u objetos padre en un clic derecho y seleccionamos Crear vacío. Vamos a llamar a este ambiente. Y esto básicamente va a almacenar cada objeto de entorno único que queremos. A continuación, haga clic derecho en esto de nuevo y haga clic en Crear vacío Y podemos ver que porque escribimos clicado derecho sobre el objeto, va a crear un objeto hijo debajo de él. Podemos llamar a este flujo. Entonces podemos ver si movemos el medio ambiente, el flujo se mueve con él porque está parentado. Vamos a establecer el medio ambiente en 0. Vamos a seguir adelante y arrastrar el piso hacia abajo. Ahora lo que tenemos que hacer es agregar un renderador de sprite. Abre los activos del curso, arrastra el cuadrado. Y voila, tenemos un piso muy cuadrado. No queremos que el flujo cuadrado. Queremos un piso más, piso. Así que vamos a lograr esto arrastrando el eje y hacia abajo y el eje x a través para asegurarnos que el flujo de salida se estire horizontalmente a través de todo nuestro. Ver. Si vamos a la vista de juego, podemos ver que de hecho está cubriendo toda la mitad inferior de nuestra pantalla. Entonces lo siguiente que queremos hacer es agregar un fondo o un cielo, si quieres. Voy a ir entorno, hacer clic derecho y crear movimiento vacío y llamar a este fondo. Una vez más en un renderizador sprite, arrastra el cuadrado y escalarlo hacia arriba. Problema con esto, sin embargo, es que esto va a ir delante de cualquier otro objeto que tengamos en nuestra escena. Para evitar esto, lo que vamos a hacer es que vamos a cambiar este orden en atributo de capa que se adjunta al renderador sprite. Si ponemos esto a algo así como menos diez, podemos ver que tanto nuestro jugador nuestro piso saltaron por delante del objeto. Obviamente el flujo es blanco como es esto. Realmente no se puede ver eso, pero confía en mí, tienen si muevo esto y lo hago gris, podemos ver los pisos de hecho al frente. Así que voy a hacer que el fondo tal vez azul oscuro. Y vamos. Lo último es hacer de nuestro piso otro color, así que haré verde la gripe. Podemos ver que hay todo muy cuestionable buscando esquema de color de juego móvil. Y hemos hecho un ambiente muy básico, pero no vamos a parar ahí. Queremos sumar algunos objetos más. Ahora, podemos seguir haciendo objetos como lo he estado haciendo todo este tiempo todo lo que podemos simplificar un poco el proceso. En realidad podemos tomar estos activos y simplemente arrastrarlos a nuestra escena. Y van a crear un objeto con un renderizador sprite para nosotros de forma automática. El problema es que este objeto no está en la carpeta Entorno que creamos anteriormente, así que solo voy a tener que arrastrar eso y colocarlo ahí. Y se puede ver que se mueve para escribir exactamente lo que está destinado a ser. Entonces solo voy a escalar esto hacia abajo, tal vez hacerlo 0.7 por 0.7 fue asegurarme de mantener la escala x y la y igual si no quieres estirar las cosas y eso en realidad no es lo suficientemente grande. Entonces déjame hacerlo no menor que 0.40.4. Entonces lo voy a mover hacia abajo y podemos ver voila, tenemos un pico. Hagamos que este pico lea. Ahora este es un pico muy pequeño y no quiero una vez más cinco, quiero tres. Entonces, lo que voy a hacer, voy a seleccionar este objeto. Voy a hacer clic en Control C. Voy a golpear Control V, y va a hacer una copia exacta del objeto en la misma posición exacta. Entonces vemos, no podemos verlo ahora, pero si lo arrastramos hacia fuera, voila, ahí está nuestro segundo pico y en realidad podemos hacer esto dos veces y hacer tres picos, lo que se ve mucho mejor. Ahora lo que vamos a hacer es que vamos a seguir adelante y hacer clic en nuestra vista de juego para que podamos ver cómo se ve. No se ve mal. Creo que lo que voy a hacer es seguir adelante y seleccionar el flujo, seleccionar esta herramienta rectángulo y luego arrastrarla hacia abajo para que esté cubriendo toda la mitad inferior de la pantalla, que se ve un poco mejor en mi opinión. Lo último que vamos a hacer es añadir algunas monedas. Entonces vamos a usar ese método más veloz que descubrimos arrastrando justo adentro. Solo voy a escalarlo usando la herramienta rectángulo. Y voy a poner eso por ahí. Creo que mis colores de moneda deben ser de oro. Eso es naranja. Funcionará. Raro. Oro, naranja va a ser mi color. Voy a hacer exactamente lo mismo que hice con los triángulos y simplemente copiarlo y hacer tres monedas. Entonces voy a seleccionar los tres de estos círculos manteniendo presionada Shift y poniendo eso dentro del entorno de nuevo. Ahora podemos ver que nuestro entorno está todo almacenado en este objeto. Entonces cuando movemos el objeto, todo el entorno y se mueve con nosotros. Esto podría ser útil si quisiéramos hacer un juego extraño donde el entorno se mueva pero no el jugador. Pero para nuestro caso, este va a ser un objeto bastante estático, solo se utiliza para almacenar todos estos diferentes objetos de entorno. Ahora lo último que creo que deberíamos agregar es quizá un poquito de detalles. Así que lo primero que voy a hacer es hacer esto un poco más ligero porque no me gusta exactamente cómo se ve ahora. Obviamente voy a querer simplemente ajustar estos presionando Shift y simplemente moviéndolos lentamente hacia arriba así. Haz lo mismo con las monedas para que se vean un poco mejor. Lo estamos, y voy a poner al jugador en el suelo, por lo que en realidad parece un juego. Ahora nuestro entorno se ve mucho mejor ahora, pero quería mover cada cosa, incluido el jugador un poco a la derecha. Pero en lugar de hacer eso, creo que voy a mover mi cámara a la izquierda. La cámara va a ser lo que está capturando cada objeto en la escena. Podemos ver que si lo muevo, podemos ver la vista previa en la parte inferior derecha está cambiando. Entonces si quisiera hacer una cámara sigue guión, obviamente mueve esto y la cámara capturaría diferentes partes de la pantalla. Voy a mover eso ligeramente a la izquierda, tal vez ahí. Y todo está mirando un poco mejor. En mi opinión. El medio ambiente se hace básicamente. Obviamente, vamos a necesitar agregar un poco de lógica a todos estos componentes en un poco. Pero vamos a llegar a eso más tarde en el curso. Las monedas y las cosas realmente no hacen nada. Ahora, podríamos jugar todo venir sólo se sienta ahí apilando. Pero hemos dado los primeros pasos para construir nuestro entorno usando Unity. Buen trabajo, y te veré en el siguiente video. 6. Introducción a la física: Oye ahí y bienvenidos de nuevo a la unidad en la pérdida en realidad, como estoy seguro que recuerdas, creamos este entorno de búsqueda muy cuestionable para un juego móvil. Lo que vamos a hacer en este episodio, realidad vamos a eliminar algunas de las partes del entorno que hacemos empezar un poco demasiado complicado para donde estamos en este curso. Y vamos a asignar lógica a los que se fueron. Podríamos sonar como si estuviéramos moviendo hacia atrás, pero no lo estamos porque el punto del último episodio no era una enseñarte a hacer este entorno exacto. Fue para enseñarte a hacer nuevos sprites, agregarlos, GO game, y ordenarlos usando esos objetos padre. Pasamos, adelante y eliminamos todas las monedas y los picos en tus escenas. Tienes apenas el piso del fondo y el jugador se fue. Entonces puedes querer tomar tu plan. Vas a moverlos hacia arriba para que estén suspendidos en el aire. Ahora, este poco de un paso preventivo, pero créeme, he dado múltiples tomas de este video ahora y cada vez que no hago esto, significa que no puedes DC una de las cosas que estoy demostrando, seguir adelante y tomar el fondo y vas a querer que eso sea mucho más oscuro. Lo mismo con el piso y lo mismo con el plano. Ahora esto no se ve muy bien. Sí, estoy de acuerdo. Pero esto es muy importante porque quiero demostrar algo con un nuevo componente. Y este componente en realidad la forma en que lo ves tiene un contorno verde alrededor del objeto. Y no vamos a poder ver que a menos que tengamos colores más oscuros, hay más contraste. Porque obviamente tenemos biblioteca y biblioteca y amarillo claro, que es probablemente los tres peores colores a tener contra el verde claro en términos de contraste. Así que voy a seguir adelante e ir con mi jugador. Ahora que he hecho mi cosa un poco más oscura, y quiero ir y agregar un componente. Y voy a sumar con colisionador de caja fría 2D. Ahora, estoy seguro como viste, había dos ambos desorden aquí que podemos seleccionarlo desde el planeador jefe y la nube de caja 2D. Casi siempre que este sea el caso cuando buscamos componentes, si hay una opción 2D, vamos a querer usarla porque estamos haciendo un juego 2D. La opción 3D no funcionará como más adelante. Vamos a añadir un cuarto de objeto cuerpo rígido. También hay un cuerpo rígido 2D y vamos a usar el cuerpo rígido 2D porque está construido para juegos 2D, al igual que estamos haciendo. Quiero seguir adelante y elegir la caja colisionador 2D y dar click en eso. Y eso va a añadirlo a nuestro objeto. Y aquí se puede ver ese contorno verde del que hablaba. posible que no puedas verlo en este video, pero deberías poder verlo en tu pantalla. Debe haber un contorno verde alrededor de su planta. Ahora, este esquema es en realidad el colisionador que acabamos de agregar. Entonces aquí están el Planeador de Caja 2D. Podemos ver que tenemos un material de colisionador se disparará usado por hecho que usaron por tamaño offset compuesto. Todas estas propiedades, esto básicamente cambia cómo funciona el colisionador y se ve en nuestro objeto. Alkali por aquí es realmente perfecto para nuestro jugador. Es exactamente alrededor del jugador. El motivo por el que esto ocurre es porque el jugador tiene exactamente el mismo tamaño que el sprite. Ahora este no siempre es el caso. Obviamente en otros activos del curso, podemos ver que esta plaza está llenando exactamente el tamaño de su contenedor. Pero si estuviéramos usando un círculo, por ejemplo, y agregamos un colisionador de cajas, podemos ver que va por fuera ahí. Esa línea verde del día está actualmente en el exterior de la cosa porque ese es el tamaño de la propagación. Porque estamos usando un cuadrado, no deberíamos tener ese problema. Pero eso es sólo algo que tener en cuenta más adelante. Si queremos sumar un colisionador de caja y queríamos cambiar las limitaciones de la misma, irá a esta cosa que dice Editar Colisionador. Entonces podemos cambiar y escalar al colisionador tal y como nos parece conveniente para asegurarnos de que encaja como queremos que lo haga. Ahora nuestro jefe nube por aquí básicamente va a decirle a la unidad que cuando estemos chocando con un objeto y arrastro esto hacia abajo y voy por encima del piso, Eso va a desencadenar el evento de colisión y la unidad va a reaccionar en consecuencia. Ahora porque se trata de un colisionador de caja normal, lo que debería pasar cuando caemos en realidad va a parar porque es en realidad va a parar porque es un fosfito conocido se meterá en otro tipo de pérdida Claire más tarde, que es Trimestre gatillo. En realidad podemos cambiarlo para que se dispare con solo tomar eso. Entonces no va a parar, pero va a desencadenar los mismos eventos. Entonces lo usaremos obviamente. Si, por ejemplo, estás haciendo algo así como una bala, como un proyectil que atraviesa la anatomía. Te gustaría hacer de eso un gatillo porque entonces no se va a parar cuando golpee al enemigo. Va a pasar, pero el enemigo todavía va a desencadenar un evento, se puede decir, está bien, recibir tanto daño. Eso es un poco de alto grado ahora, pero nos meteremos en eso más tarde. Si corremos el juego, sin embargo, podemos ver que sólo nos vamos a quedar suspendidos en el aire, no chocando con nada. Entonces no vamos a ver el efecto de su colisionador. Y si realmente movemos esto hacia abajo, podemos verme pasar por todo. Ahora bien, esto es por dos razones principales. Una es porque el piso no tiene un colisionador adherido. Dos. Realmente no tramamos con nada. Sólo estamos un poco chocando con nada porque es sólo un sprite, no es un proveedor. Pero la segunda razón es en realidad que debido a que nos estamos moviendo usando las colisiones s2 no se llevarán a cabo a incluso si esto fuera construido para que pudiera producirse una colisión, no lo veríamos ahora, que no es genial, pero está bien porque vamos a añadir otro componente más adelante que nos permita ver la colisión. Así que no te preocupes por eso ahora mismo. Sólo estaba tratando de demostrar cómo esto no va a chocar porque nunca se sabe colisionador. No obstante, para arreglarlo, vamos a volver a nuestra escena. Vamos a hacer clic en piso. Vamos a hacer click, añadir otro box colisionador 2D. Déjame ver de nuevo, va exactamente por el exterior justo donde necesitábamos, porque esta es la misma práctica de plazas. Muy cool. Ahora tenemos dos colisionadores. Y si, por ejemplo, estamos jugando un juego y éste chocará aquí, se detendría. Pero debido a que no tenemos ningún movimiento en nuestro juego, solo tenemos que objetos estáticos con resaltadores. Realmente no va a hacer nada como dije antes, si lo movemos aquí, esto ignora las leyes de la física porque básicamente lo estoy moviendo usando una misma cosa, incluso si estoy en modo de juego. Para demostrar realmente estas colitis, vamos a añadir otro componente y vamos a introducir este componente se va a llamar un cuerpo rígido 2D. Cuerpo rígido 2D básicamente es un todo incorporado. Añadir física a este componente objeto y ver si pasamos sobre diferentes aspectos de una física. Tiene el tipo de cuerpo, el material, el automático, la masa norma, el arrastre lineal, la escala de gravedad, prácticamente cualquier cosa relacionada con física o al menos la primera parte de la física, Las Leyes de Newton está en este cuerpo rígido 2D, no tenemos aceleración, tenemos gravedad, tenemos todo, casi todo lo que necesitamos en términos de física va a ser cubierto por este cuerpo rígido. Ahora esto obviamente también nos puede ayudar si queríamos hacer algo atado, así que hacer chocar a alguien y luego hacer otra cosa. No vamos a meternos en ese derecho todavía porque no vamos a entrar en juego de otoño. En primer lugar, no queremos sprites rebotando. Y Second Bull, eso es un poco más complejo, que podríamos entrar más adelante cuando tengamos colisiones. Pero por ahora, todo lo que vamos a usar este cuerpo rígido para hacer es probar para ver si este personaje caerá y detendrá porque hemos sumado los dos colisionadores. Si voy adelante y golpeo juego, podemos ver que de hecho hace exactamente lo que queríamos. Ahora hemos agregado física a este objeto. En realidad podemos mover esto. Y podemos ver que la física es obviamente es un poco raro cuando subo porque así no es realmente como deberías estar probando cosas como yo puedo mover eso hacia arriba y volver a ponerlo y luego podemos ver a qué me refiero. Así que en realidad pasé por la reproducción porque la estoy moviendo tan rápido. Esta es una forma rara para que la unidad vea estas condiciones tipografia. Obviamente así no es como alguien realmente estará jugando el juego. Me mudo en el editor. Pero sí, si lo fuera, sería genial demostrar cómo funcionaba realmente la física. Este cuerpo rígido que hemos agregado el juego es básicamente todos los ajustes predeterminados aquí son más o menos todo lo que necesitaremos. Realmente no necesitamos cambiar demasiados de estos, pero voy a cambiar unos pocos solo para que sea un poco más agradable. Lo primero que haré es que la detección de colisiones sea continua. Y esto no es necesario. Esto básicamente lo hace para que puedas asegurarte viste cuando lo estaba moviendo arriba y abajo 1, pasó por el jugador. Y si tengo eso, si tengo detección continua de colisiones, esta posibilidad de que esto suceda se minimice porque está comprobando continuamente si colisionó ahí. Creo que los asalariados que pasaron por ahí fue porque volví a moverme en la escena. Pero creo que en un juego real, cualquier momento se mueve sobre él enviaría la colisión. Eso es sólo una buena práctica. Generalmente lo puse en mis cuerpos rígidos, pero no es necesario. Arrastre angular. También voy a hacer 0 y voy a hacer la escala de gravedad también. Siempre encuentro que probablemente escalas de uno o un poco floaty fluye juegos Para debe ser punto dulce así. Se puede ver que es una gravedad un poco más normal como una vez que hayamos hecho todo eso, solo hay una cosa más que tenemos que hacer para asegurarnos de que nuestro juego para nuestro personaje haya introducido física correctamente. Y eso se va a congelar esta rotación. Ahora quizá no sepas lo que hace esto. Voy a demostrar por aquí si muevo esto para que él vaya a aterrizar en esa esquina, en ese vértice, se puede ver que el jugador va a caer. Entonces al igual que la vida real abajo suaviza el papel en el decaimiento. Esto es muy realista y es muy cool. Pero para nuestro juego, si dejamos esto marcado, solo causa problemas más adelante cuando piensas si nos estamos moviendo y nos pegamos algo que no mostramos para estar girando mediados, si tomas tablero de geometría por ejemplo, puedes ver que el, mientras que el cubo gira cuando salta el cuadrado más bien, en realidad nunca cambió la rotación cuando rebota. Las cosas son falsas o cosas. Esa es una práctica bastante buena para los juegos móviles porque imagina que estamos tratando de jugar nuestro juego y luego caemos así. Y tenemos que seguir jugando nuestro juego como una especie de cuadrados laterales. No es ideal. Vamos a seguir adelante y hacer clic en congelar rotación z Entonces si volvemos a ese ejemplo, mueva eso por ahí y caemos. Podemos ver que ya no caemos. Nos quedamos en el borde y en realidad podemos quedarnos en el borde justo arriba hasta que ya no hay nada chocar, en cuyo caso nos caemos. Esa es la belleza de estas colitis y eso es lo que hace congelar nuestra rotación. Después de que hayamos hecho esto, prácticamente hemos hecho todo lo que necesitamos en esta lección para cubrir los fundamentos de una introducción a la física, también podríamos agregar un cuerpo rígido a este piso, pero como estoy seguro que lo adivinaste, entonces el flujo simplemente caerá igual que lo ha hecho el jugador y eso no sería ideal. Y realmente no tiene sentido agregar nuestra escala de gravedad de 0 a este objeto de piso porque es sólo un poco tedioso. No lo necesitamos para nuestro juego. Así que por ahora prácticamente hicimos todo lo que podemos y hemos introducido la física todo el juego. Podemos ver ahora tenemos una Q caída, que es muy cool. Nos va a permitir detener la siguiente lección, que en realidad va a estar agregando nuestro primer guión C-sharp. Y vamos a hacer que sea una especie de nuestro jugador pueda moverse. 7. Nuestro primer guion: Oye ahí y bienvenidos de vuelta a la unidad. El último episodio, como estoy seguro que recuerdas, agregamos un cuerpo rígido y un colisionador de cajas a, tocaré nuestro objeto para hacerlos efectuados por gravedad y chocar con el piso, que también agregamos una caja colisionador 2D. Ahora esto es genial y todo, pero llega un cierto punto en nuestro viaje de desarrollo de juegos móviles. Bueno, en realidad necesitamos empezar a escribir nuestro propio código si queremos que los objetos sean más o menos bien lo que queremos. En este caso, quiero crear un guión de movimiento para mi jugador deje de hacer que este juego vuelva a hacerlo, porque actualmente todo lo que realmente es es una plaza que cae al suelo, no súper emocionante. Ahora, haz esto, voy a necesitar empezar a escribir mi propio código. Esto puede ser un poco intimidante que hacer cuando acabas de empezar. Pero por suerte, he creado un archivo de código de hoja de tramposo dentro de la carpeta de activos del curso, que ojalá haya instalado antes. Si no lo hiciste, no lo necesitas, pero sí te recomiendo instalarlo porque puede ser bastante útil. Si seguimos adelante y abrimos eso. Tengo por aquí una lista de todos los conceptos básicos de la codificación, que con ejemplos. Y si bien la mayoría de estas cosas realmente no hacen nada todavía, esto puede ser útil, sobre todo más adelante en el curso cuando aprendemos de ellas para que vuelvas y compruebes si tal vez algo no es trabajando que tienes la sintaxis correcta, justo en la parte superior, tenemos variables y estoy seguro que recuerdas de nuestro video introductorio, las variables son básicamente solo espacios de almacenamiento para diferentes tipos de datos. Esta variable x almacena un número entero o un número. Esta variable y almacena cadena o texto. Esta variable booleana Z almacena o booleano o verdadero o falso. Y este cuerpo rígido RB almacena un componente de cuerpo rígido, que es el componente exacto agregamos a nuestro jugador antes. Hacer variables como esta nos permitirá realmente referirlas en nuestros códigos para poder seguir adelante y asignar ese cuerpo rígido específico a esta variable que hicimos llamada RB, y luego alterar la variable RB, que a su vez alterará este volumen rígido. Por ejemplo, si quisiera cambiar la escala de gravedad, podría escribir código que decía que RBD no cambiara escala de gravedad. Y luego RB dondequiera que esté vinculado, que sería un cuerpo rígido, que en este caso sería este particular rígidamente unido al jugador es escala de gravedad se cambiaría. Ahora debajo de esto tenemos matrices y nunca pasé por encima de carrera antes. Pero vamos a meternos en ello más adelante en el curso. No los necesitaremos ahora, pero parece algo decente al menos repasar las acciones. Ahora, qué matrices son básicamente como variables pero en una lista. Para que puedas ver aquí arriba se ve exactamente como public int x, excepto que es entero público, y luego tiene dos corchetes después. Lo que básicamente significan estos corchetes es que no voy a almacenar una variable aquí. Voy a parar muchas variables. Y así esta matriz int x pública básicamente va a almacenar una lista de variables llamadas x array, diferentes se puede decir, De acuerdo, la primera variable y de rayos X, se puede asignar un valor allí, luego puedes asignar un segundo valor, el tercer valor en esta sección, realmente útil si, por ejemplo, si piensas, queremos tal vez almacenar todas las puntuaciones de la tabla de clasificación. No queremos hacer una variable diferente para cada escuela será mejor si hacemos matriz entera pública, lo llamo puntuaciones y luego asigno cada puntuación de un jugador a una posición en esta matriz. Lo mismo aquí con una cadena que tal vez se puede utilizar para almacenar diálogo o texto o algo así. Si esto realmente no tiene mucho sentido para ti en este momento. No te culpo porque va a mucho más sentido cuando lo hagamos. Pero no te preocupes, solo quería cubrir básico de lo que son las matrices. Debajo de eso tenemos trámites, que hemos repasado en nuestro video anterior. Básicamente, los procedimientos son solo áreas de nuestro código que llamamos en ciertos momentos para realizar ciertas tareas. Este inicio vacío, este procedimiento es realmente auto-generado por unidad, y esto es con el procedimiento con llamadas de Unity cada vez que este código se ejecuta por primera vez, este procedimiento de actualización es muy similar, excepto este procedimiento Unity llama a cada fotograma. Nos meteremos en esos un poco más tarde cuando estemos escribiendo nuestro guion de movimientos. Pero solo sepan que estos procedimientos son igual que hablábamos, excepto a las unidades que los llamaban no se llamaban rodillas. Debajo de esto, tenemos otro ejemplo de procedimiento. Este procedimiento se llama cofre abierto , obviamente no hace eso, pero solo quería demostrar que en realidad se podría escribir sus propios procedimientos. Debajo de esto, tenemos nuestro nuevo concepto llamado variables locales. Y variables locales podemos básicamente escribir en la sintaxis. Sintaxis es ese formato de texto. Necesitamos escribir cosas en codificar para asegurarnos de que funcione. Podemos escribir que con la sintaxis int x es igual a tres. Lo que esto básicamente va a hacer es que esto va a hacer una variable llamada x set a tres, pero esta variable sólo va a ser referenciada dentro de este método. Una vez que este método se agota, la variable se destruye de manera efectiva. Si llamo a esto algo así como gar local. Y luego voy adelante y trato de referenciar var local. Y aquí podemos ver que no hay nada fresco. Si lo escribo, dice que el nombre local var no existe en el contexto actual. Si lo muevo dentro de este procedimiento, sin embargo, podemos ver que sabe exactamente qué hacer. Y no dice que no exista porque está ahí mismo. Decidimos bien. Debajo de esto tenemos nuestras declaraciones if y estas son condiciones. Este es prácticamente lo fundamental, uno de los aspectos más fundamentales de las condiciones de codificación. Si las declaraciones, si es más, declaraciones, si no, si, etcétera, de nuevo, a todos esos ahora, básicamente todas estas declaraciones hacen es que comprueben lógica. Por ejemplo, si estamos haciendo ahora saltando guión y queremos saber si los jugadores aterrizaron comprobará que usar una declaración if no será exactamente un superritmo porque no es genial para rendimiento. Pero si teóricamente pudieras revisar cada fotograma, si jugador conectado a tierra y si es, entonces digamos, puede saltar por ejemplo, por aquí estamos diciendo si x es mayor que cinco o x, x es igual a tres. Un buen ejemplo de si afirmaciones es si estábamos tratando de calcular si el jugador ha anotado la preparatoria. Entonces si lo hiciera, se podría decir, si la preparatoria, si anota mayor que la secundaria, si su puntuación igual a la nueva preparatoria, o si la puntuación más alta es menor que nuestra actual escuela, entonces corre código que básicamente dice, Ok, esta es una nueva escuela secundaria. Esta sentencia else solo se ejecutará si esta declaración no lo hace. Lo que este código real está diciendo es que si a mi variable x se le asigna el valor tres, ejecute este código. Si está asignado a cualquier otra cosa, ejecute ese código. En realidad podemos ampliar un poco estas declaraciones yendo si x es tres, hazlo. De lo contrario, si x es igual a cinco por cuatro, hazlo. O si x es igual a cinco, lo siento, pongo un signo igual en lugar de dos, x es igual a cinco. Haz eso, si no, haz eso. Este código es un poco más complicado. Va a decir, vale, si son tres, haz esto, si está lleno, hazlo, si son cinco a eso, cualquier otra cosa haga esto. Y este tipo de código no es genial porque se puede ver que la computadora tiene que pasar por eso. Pero entonces eso, entonces, después para nuestro primer juego móvil, si pudiéramos algunas cosas así para que sea un poco más fácil de entender, está completamente bien como parte del proceso. Debajo de eso está el concepto final que quería enseñar. Bucles fríos. Y los bucles son efectivamente formas de ejecutar el mismo código una y otra vez. Este for-loop, que podría haber escuchado antes, básicamente se ejecuta una cierta cantidad de tiempo. Lo que hace este for-loop es que dice full x es igual a 0 al inicio, mientras que x es mayor que tres, aumentar x al inicio o al final del bucle. Lo que eso básicamente está diciendo es que tenemos cuatro, pero aquí estamos diciendo, vale, quiero usar la variable x. Y al inicio de este bucle, quiero asegurarme de que sea 0. Después de eso tengo una condición que debe cumplirse para que el bucle siga funcionando. Entonces en este caso, siempre y cuando x sea mayor que tres, mantenga el bucle en funcionamiento. En lo último, tengo código que se ejecuta al final de cada ciclo de bucle único. Así que básicamente diciendo cada vez que el final de cada ciclo de bucle, X plus plus, que es básicamente código para x aumentado en uno. Se puede hacer una x más tres x más cinco. En este caso, tengo x plus plus, lo que significa aumentar x por uno al final de cada bucle. Lo que este bucle está diciendo es completo set x a 0, mientras que x es mayor que tres, ejecute el bucle y aumente x cada vez. Este bucle en realidad no va a funcionar, vamos a tener que cambiar eso a menos de tres. Eso tendrá mucho más sentido. Esto es básicamente decir, Ok, bueno, establecer x a 0 al principio, mientras que x es menos de tres. Sigue haciendo con el bucle y aumenta x cada vez. Si tuviéramos que escribir algo aquí que Newport ejecute dos o tres veces más bien porque se puede ver corridas la primera vez a 0, entonces aumenta. Es uno, sigue siendo menos de tres. Por lo que va de nuevo a almacenar escucharlo porque de nuevo, tres, no menos de tres. Entonces termina el bucle. Debajo de eso tenemos mientras bucles. Si bien el bucle básicamente hace lo mismo que for-loops, excepto la condición para un bucle while solo necesita ejecutarse, solo tiene que ser cierto y el bucle while se ejecutará continuamente para siempre. Entonces si nunca estamos cambiando x, este bucle va a correr desde el infinito porque si configuramos x a V2 va a bien, X menos de tres, vale, X menos de tres. Ahora esto va a cambiar. El bucle for correrá un número determinado de veces, pero un bucle while y corre por el infinito, lo que los hace un poco más problemáticos a veces cuando cometemos errores. Porque si tenemos aire del curso este luterano por el infinito, casi, casi siempre provoca un choque. Y eso no es genial para nuestra computadora o nuestro código. No está mal, no rompe nada, pero solo en términos de nuestra tranquilidad, a veces hace que toda la unidad tenga que cerrar y entonces quizá no hayamos salvado algo. Yo recomendaría no usar while loops hasta que tengas una cruz completa con ellos. No preveo que necesitemos mientras bucles a lo largo de toda su fuerza. Y en términos generales, mientras que los bucles se deshacen de una cosa de nicho que no siempre necesitas codificación, pero a veces necesitas solo asegúrate de que cuando usas un bucle while, lo usas, ¿verdad? Y para que sí tenga una condición de terminación porque de lo contrario se puede causar un choque en diez años. Y ahora vamos a probar nuestra mano en hacer nuestro primer guión desde cero. Vamos a hacer eso en la carpeta de activos. Ve a Activos y vamos a hacer clic derecho, vamos a ir a crear, vamos a hacer una carpeta y llamarlo script. Esto no es necesario, pero básicamente solo significa que podemos poner todo nuestro código aquí, así que todo es agradable y organizado. No necesitas hacer eso. Así es como me gusta organizar mis activos. Y volver a hacer clic con el botón derecho y vamos a ir a crear guión C-sharp. Voy a llamar a este movimiento. Ahora, si hago doble clic en el guión de movimiento va a abrirlo en Visual Studio igual que quería. Y podemos ver por aquí en nuestro guión tenemos tres líneas en la parte superior, que están todas usando colecciones del sistema y motor Unity. Entonces una clase llamada movimiento almacenado procedimiento y un procedimiento de actualización. Ahora, no sé si cubrí esto en el guión anterior, pero básicamente qué estas letras verdes, cuáles son estas letras verdes, nuestros comentarios. Y esa es básicamente la forma de decir, vale, no quiero que este código se ejecute, pero quiero tenerlo como texto. Si quisiera escribir algo debajo. Este programa es genial. Obviamente, si escribo eso sin comentarios, la unidad va a ser muy computadoras pueden ser como ¿Qué intentó decir aquí? No hay un error de sintaxis de token. El nombre cool no existe. El nombre esto no se pudo encontrar diciendo ¿qué es esto? ¿ Qué es el programa yo mientras estás usando la palabra de código IS aquí, qué es genial, Ha estado muy confundido. Lo que hacen estas dos barras delanteras es decirle a la unidad, no quiero que esto se ejecute. Sólo estoy escribiendo textos sencillos para poder comunicarle algo a alguien que lea mi código. Por ejemplo, cuando haces este archivo, la unidad auto-genera dos comentarios por aquí para ti. Te dicen con qué frecuencia la tienda procesa frío y con qué frecuencia se actualiza el código de procedimientos que dicen que se llama start antes de la primera actualización de fotogramas, actualización se llama una vez por fotograma. Esos son los desarrolladores de Unity diciéndote lo que hacen estos dos procedimientos para que sepas, también puedes pasar el cursor sobre ellos y te dirá exactamente lo mismo. Entonces básicamente eso es decir que la unidad hace estos trámites y los llaman por su cuenta. No tenemos que llamar a estos trámites. Podemos utilizar estos procedimientos que Unity llama para construir el resto de nuestro código. Podemos eliminar esos dos comentarios. Podemos empezar a hacer nuestro primer guión de movimiento utilizando estos dos procedimientos. Lo primero que voy a hacer es hacer un par de variables. La primera variable que quiero es un cuerpo rígido público 2D RB. Y eso va a ser para crear una referencia al cuerpo rígido que se almacena en el jugador para que pueda hacer que se muevan. Voy a crear otra variable, un entero público, y lo voy a llamar velocidad. Esa va a ser una velocidad que el jugador se mueva hacia arriba. Voy a crear otra variable de calidad, saltar false. Esa va a ser la velocidad a la que el jugador salte del suelo. Voy a crear otra variable y la voy a llamar tierra. Y eso básicamente nos va a decir, ¿está el jugador conectado a tierra o no? Obviamente, sólo podemos saltar a la tierra. Ahora, como advertencia, voy a estar escribiendo todo este código usando comandos de teclado. Voy a decir si se presiona el espacio o si se presiona esto, podrías estar pensando por qué estamos haciendo un juego móvil y eso es verdad. Pero si quiero probar mi juego en el editor de Unity, realidad puedo escribir comandos de teclado, pesar de que soy Bowden para Android y Unity será como, vale, solo usa la barra espaciadora. Y luego cuando construyo el juego para Android, obviamente esos comandos y nunca voy a correr. Entonces si escribo debajo de aquí actualización, si digo si la persona pasa la barra espaciadora, salta, entonces cuando construyo mi dio Android, no hay manera de que vas a poder saltar porque ahí está la barra espaciadora. Pero cuando estoy probando una anualidad, es lo que voy a usar para asegurarme de que todo funcione. Así es en realidad ¿cómo vamos a estar haciendo este curso? Vamos a construir todo este curso probado para computadora y luego escribir el final. Te mostraré cómo cambiar todos tus comandos de entrada para que funcionen para móvil, en realidad es realmente fácil porque no vamos a tener tantos controles. Sólo vamos a dar un salto. Ese salto que vamos a desencadenar tocando. Pero por ahora, lo vamos a hacer a través la barra espaciadora para hacer las cosas mucho más fáciles de probar. Voy a teclear input, bajé la tecla fgetc. Y voy a abrir el soporte y quedarme clave código dot space. Entonces debajo de esto voy a abrir corchetes rizados, que nosotros, siempre que usamos una declaración o procedimiento if, escribimos el corchete rizado abierto y luego presionamos Enter y ante todo ellos muy bien para nosotros. Voy a por aquí, déjame borrar esos. Voy a decir comentario en salto. Obviamente este comentario como nosotros pasamos no va a correr, es sólo texto. Pero básicamente lo que esto va a hacer es que puedo usar esto para almacenar código que aún no he escrito. Entonces sé lo que debo poner eso. Ahora cada fotograma, si bajo la tecla Espacio, voy a querer saltar. Ahora. No quiero saltar cada vez para nosotros a Space key. Quiero saltar sólo cuando estoy castigado dentro de esa declaración si. Voy a poner otra declaración if ahí abajo. Si está conectado a tierra. Voy a abrir esos paréntesis piel. Ahora esto no es lo que se conoce como declaraciones anidadas if en una declaración if, dentro de una declaración if, en realidad podría escribir esto como una declaración if. Pero por el bien de la simplicidad, es mucho más fácil de leer en mi opinión, si te gusta esto. Y podemos aprender sobre esos compuestos si declaraciones más adelante, no vamos a cubrir eso ahora. Ahora si a Tierra, vamos a querer saltar, entonces no vamos a querer saltar si no estamos conectados a tierra. Ahora realmente necesitamos escribir un poco de código para asegurarnos de que realmente podamos saltar. Voy a ir por aquí y voy a hacer mi propio procedimiento. Voy a escribir vacío público y lo voy a llamar salto, poner paréntesis, y luego abrir corchete rizado y presionar Enter y adentro por salto, voy a escribir código para hacer el salto. Entonces tengo esta referencia al cuerpo rígido y a los cuerpos rígidos, lo que vamos a usar para saltar, voy a escribir RV, y eso básicamente recupera el cuerpo rígido. Ahora puedo hacer punto y puedo cambiar ¿verdad? Velocidad. Eso significa básicamente que voy a estar alterando la velocidad del cuerpo rígido. Esa es la velocidad lineal. Entonces es arriba y abajo y izquierda y derecha. Puedo hacer esta velocidad donde quiera. Puedo ir igual. Y luego porque estoy poniendo en dos valores, un valor x de x velocity e y valor para y velocity. Escribiré nuevo vector dos, y luego abriré paréntesis y cerraré paréntesis y luego punto y coma. Siempre ponemos un punto y coma al final de nuestro código. Lo que esto básicamente va a hacer. Va a decir, está bien. Establezca la velocidad RB a donde quiera que lo quiera. Si voy 55, la velocidad RB cuando salto va a ir así. Y si lo puse a menos 55 va a ser así. Menos cinco y menos cinco como este, se irá, whoop. Y si lo puse a, por ejemplo, 05, va a ir whoop. Podrías estar pensando, Oh, eso es lo queremos porque queremos que salte. Pero si este es el caso, ganaré básicamente iría así. Tú saltas y la eukarya y moviendo el salto, no queremos eso. Queremos saltar con el mismo impulso que has estado llevando todo el tiempo. Entonces, en otras palabras, queremos mantener la velocidad de lo que sea el cuerpo rígido esté en su dirección x. Entonces si te estás moviendo hacia atrás o adelante o parados quietos, queremos quedarte con eso y solo queremos cambiar la y Voy a hacer esta fuerza de salto de valor y. Esa es la variable que hicimos por aquí. Por lo que actualmente es entero se establece en 0 porque no le hemos asignado un valor. Pero podemos entrar en el editor de Unity y podemos cambiar la fuerza de salto a donde queramos. Y esa es la velocidad con la que saltas. Y luego en lugar de poner 0 aquí, voy a escribir RV dot velocity dot x, que básicamente está diciendo, Ok, hacer la velocidad, la velocidad x. Así que no cambies la velocidad x, sino que la velocidad y sea cual sea el valor se almacene en fuerza de salto, que va a ser un número que vamos a asignar lo que queramos. Eso es más o menos todo nuestro código de salto necesita ser, vamos a saltar hacia arriba y caer de nuevo hacia abajo. Esto realmente debería funcionar si entramos en Unidad. Si simplemente eliminamos el comentario de esto y ponemos paréntesis después, entonces en realidad estamos llamando a este método porque hemos escrito paréntesis de salto, estamos llamando a este método. Si tuviera otro método llamado saltó, podría escribir saltó paréntesis y eso tiraría ese procedimiento de salto hacia arriba para porque no lo hago, no encuentra nada porque tengo este procedimiento de salto sin embargo. Me llamo procedimiento de salto siempre cuando presione la barra espaciadora y esté castigada. Ahora, voy a saltar y aterrizar de nuevo hacia abajo. Obviamente no hemos terminado el código, aún no, pero si entramos en Unity, eso realmente debería funcionar justo como quiero que lo haga. Lo único que voy a necesitar hacer, sin embargo, primer lugar, es que voy a necesitar una señal algunos de estos valores. Así que lo primero que quiero hacer, si aún no has arrastrado obviamente un guión de movimiento al jugador así. Entonces una vez que hayas hecho eso, toma tu cuerpo rígido y arrástralo a esta variable RB. Por lo que tenemos un vínculo con ellos. Entonces puedes establecer la velocidad lo que quieras. Voy a poner cinco, obviamente, estoy codificado eso todavía, así que no voy a hacer nada y voy hacer mi salto falso cinco también. Entonces voy a marcar este terreno de variable porque podemos ver en nuestro código, solo puedo saltar cuando estoy conectado a tierra. Y debido a que en realidad no he codificado la lógica fundamentada todavía, nunca voy a ser redondeado. Se va a poner automáticamente a falso y no voy a saltar. Pero si digo terreno verdadero, Debería funcionar. Ahora si estoy jugando presiono salto. Se puede ver que salto hacia arriba, lo cual es realmente genial. No hemos codificado un salto muy patético. Y la razón por la que usamos variables es porque estoy seguro de que todos podemos estar de acuerdo en que el salto no está cerca lo suficientemente alto. Por lo que voy a cambiar esta fuerza de salto y que sea diez. Mira, eso es un poco mejor. Creo que eso es casi lo suficientemente bueno. Voy a hacer mi salto por algo como 12. Tenemos un bonito salto grande para nuestro juego móvil. Ahora como cubrimos en el primer episodio, si realizamos cambios durante el modo de juego y hacemos clic de distancia, no ahorran. Pero solo puedo recordar qué valor tenía, poner eso de nuevo y luego no tendré que entrar en mi código y cambiar esta variable cinco o 1270. Simplemente puedo cambiar la variable y luego puedo cambiar lo que esté almacenado en eso, lo cual es realmente genial. Ahora tenemos nuestro salto funcionando. Queremos asegurarnos de que sólo podemos saltar cada vez que golpeemos el suelo. Vamos a seguir adelante y hacer dos nuevos trámites, y ambos son generados automáticamente por la unidad. El primero va a ser en colisión entrar en 2D. Voy a decir que la tierra equivale a fruta. El segundo va a ser nulo al salir de colisión 2D, y vamos a poner a tierra en false. Básicamente lo que esto va a hacer es que esto va a decir, cada vez que chocamos con algo, hacer verdad a tierra. Cada vez que chocamos con algo o ya no estamos en contacto con él, ponemos terreno a falso. Y si esto funciona correctamente, deberíamos llevar alrededor a falso. Y al principio, podemos ir hasta aquí y podemos ver a tierra es falsa. Y en cuanto aterrice otorga extra set a true. Y si vuelvo a saltar, los granitos falsos y luego verdaderos de nuevo. Y eso es básicamente todo el guión que necesitamos para hacer nuestro código de salto. Podemos presionar Espacio mucho tiempo como queramos. Sólo podemos saltar cada vez que no, lo cual es realmente genial. Ahora, esto funcionaría. Pero el problema es que esto es un poco de una situación pegajosa porque si dejo el código exactamente como es, y luego puedo vivir con una moneda. Técnicamente estoy iluminando con algo. Union va a ser como, oh, está chocando. Él puede saltar de nuevo, pero sólo quiero ser conectado a tierra mientras esté tocando este material del piso. Por lo que necesito hacer una manera de diferenciar entre este defecto en todos los demás colisionadores. Voy a hacer eso con etiquetas. Voy a ir por aquí al piso, haga clic en el piso. Voy a hacer clic en tag y luego agregar una etiqueta. Y voy a añadir una etiqueta de tierra. Entonces podemos ir a aquí de vuelta al piso y podemos asignar esa etiqueta de tierra por aquí. Puedes agregar empate algo como lo hice agregar etiqueta y luego escribir el nombre. Y luego tenemos un impuesto terrestre. Y ahora tenemos una manera de diferenciar entre si lo que estamos golpeando es un terreno o cualquier otra cosa. Volviendo a este código, voy a ir por aquí y voy a escribir colisionador de colisiones, etiqueta de comparación de puntos, corchetes abiertos, comillas alrededor. Entonces voy a abrir corchetes rizados. Decir a tierra es cierto. Obviamente podría escribir igual a verdadero al final aquí, pero eso realmente va a hacer eso automáticamente para mí porque lo tengo. Es igual a verdad aquí. Pero como hacer eso automáticamente por mí, porque no estoy poniendo nada, automáticamente envía a true de la misma manera. En realidad puedo escribir esto si está conectado a tierra, eso es significado si conectado a tierra es igual a verdadero. Pero en lugar de escribir si lo crónico es cierto, solo estoy escribiendo si está conectado a tierra, es una forma más sencilla de hacerlo. Por aquí. Voy a decir que estoy tierra mientras esté chocando con el suelo, voy a copiar este código exacto y ponerlo debajo de mi cosa de salida, excepto cambiar esto de nuevo a false. Ahora lo que esto va a hacer es básicamente no cambiar nada. Pero si tuviéramos que tener otro color con el que vivimos, no voy a estar a tierra a menos que sea el piso. Mi equipo, como un poco raro que hacer ahora porque nuestro código está funcionando bien. Pero créeme, ahorrará dolor de cabeza, nos ahorrará un dolor de cabeza a la larga. Lo último que tenemos que hacer es asegurarnos de que nos estamos moviendo continuamente hacia la derecha porque necesitamos movernos a nuestro juego al igual que Azure dash, para que podamos interactuar con obstáculos y saltar sobre las cosas. Vamos a hacer eso usando la variable de velocidad. Ahora vamos a actualizar se llama cada fotograma como hemos cubierto antes, pero no queremos que esta actualización se llame cada fotograma. Queremos que sea frío cada intervalo fijo para que no cambie si corremos la misma pendiente fósil que se puede utilizar el tablero de actualización fijo vacío. Ahora la actualización fija es exactamente como la actualización excepto en lugar de cada fotograma, es cada intervalo. Entonces creo que son 0.01 segundos o 0.15. Puedes configurarlo en tu código. Pero sí, eso es básicamente lo que va a hacer. Voy a seguir adelante y tipo RB. No la velocidad como lo hice antes, es igual a nuevo vector dos. Excepto esta vez, no quiero cambiar la velocidad y, solo quiero cambiar la velocidad x. En realidad podemos copiar este código exacto de una aquí y cambiarlos por ahí. Así que en lugar de decir RB dot velocity o x por aquí, voy a escribir RB dot velocity dot y en la cosa y. Y luego para la x, voy a ponerlo a velocidad en lo que esto va a hacer es cada fotograma fijo. Entonces cada integral, quiero asegurarme de que mi velocidad sea igual a la velocidad que quiero viajar fuera y mantener la velocidad de y. y cada vez que salto, quiero mantener esta velocidad x y saltar. Si volvemos a nuestro código y establecemos nuestra velocidad a algo lento como a. Ejecutamos nuestro juego. En realidad podemos ver esto en acción y verlo aquí. Nos estamos moviendo lentamente y si saltamos, saltamos manteniendo el impulso. Y ese básicamente va a ser nuestro guión de movimientos para el inicio de nuestro juego móvil. Este es el primer paso que hemos dado para hacer un juego móvil como uno realmente emocionante. Si lo seguías, buen trabajo. Si algunas cosas han sonado un poco abrumadoras, lo entiendo completamente y en realidad he vinculado mi código original en la sección de recursos de este video para que si el tuyo no funcionara, puedes arreglarlo y asegurarte de que todo sea perfecto. Te incurres con el curso porque quiero que te quedes atascado en este video. Espero sin embargo, que este video haya explicado esto, estos conceptos bastante bien. Y si has copiado mi código exactamente como me gusta esto, deberías tener exactamente trabajo en programa de sodio. Desplázate por encima para que puedas pausar el video y ver si hay algo que tengas diferente. Pero todo debería funcionar bien. Solo comprueba que no has escrito mal nada como colisión o colisionador. Y hay algunos conceptos aquí como comparar etiqueta y velocidad, que cubrimos con bastante rapidez. Pero eso es sólo porque no son súper importantes en este momento. Sólo están acostumbrados a mover el movimiento, para hacer el movimiento de nuestro personaje. Siempre vamos a repetirlos. Va a ser mucho más familiar. Pero si has llegado a un punto en el que tu personaje puede moverse y saltar, gran trabajo. Has dado un paso masivo y avanzarás en el viaje de desarrollo de juegos. Te veré en el siguiente video. 8. Seguir la cámara: Oye ahí y bienvenidos de vuelta a la unidad. En nuestro último episodio bastante largo, creamos nuestro primer guión de C-sharp e integramos al Editor de Unity, que permitió a nuestro jugador moverse a lo largo de la escena y saltar. Esto es genial. Es un paso realmente grande para hacer de nuestro juego móvil una realidad. Y en realidad podemos verlo en acción aquí, igual que lo hicimos la última vez. Para que podamos movernos y saltar. Y obviamente sólo podemos saltar cuando estamos en el suelo, lo cual es realmente genial. El problema con esto es que una vez que llegamos al final, hemos notado lo que le pasa al jugador porque sólo estamos viendo este medio para nosotros como los desarrolladores saben, jugadores actualmente tramando para su fallecimiento y el editor al abismo. Pero los jugadores habrán señalado eso sucediendo. Así que para minimizar este tema, lo que vamos a hacer es que vamos a crear una cámara sigue guión. Y vamos a asegurarnos de que la cámara siempre esté siguiendo al jugador para asegurarnos que siempre sepamos dónde estamos como jugadores. Ahora, actualmente estamos un poco perdidos a un editor. Así que te voy a enseñar otro truco rápido de Unidad. Puedes hacer doble clic en la cámara principal y te llevará de vuelta a donde quieras. Puedes hacer lo mismo con el jugador o con el entorno. Básicamente se acerca el zoom. Si hemos perdido a alguien más, eran como, Oh, ¿dónde estoy? Haz doble clic en la cámara principal y estás de vuelta. Ahora. Vamos a entrar en guiones y hacer que nuestra cámara siga el guión. Haga clic con el botón derecho, cree el guión C-sharp, y vamos a llamar a esta cámara seguimiento. Asegúrate de no nombrar tu cámara de guion porque esa es una palabra reservada. Y lo hice hace un tiempo y corrí a los temas de Sony y no sé qué lo estaba causando, pero por suerte, no tienes que cometer el mismo error que hice en el día. Por lo que ahora ve a la cámara principal y asegúrate de que tu cámara siguiente guión sea una firmada a tu cámara. También como nota general, al nombrar scripts, asegúrese de no incluir ningún espacio ya que esto hará que unidad no pueda leer el guión porque este nombre de aquí, la clase tiene que correlacionarse con el nombre del expediente. Y obviamente esta clase llamada un poco tiene un espacio porque entonces el código no sabrá cuáles son las clases y si comienza el comportamiento del modelo y es un desastre. Así que se asegura de que sea una palabra. Ahora, abre tu cámara sigue guión y vamos a empezar haciendo una variable igual que hicimos la última vez, excepto esta vez en lugar de referirnos a un cuerpo rígido o a una cuerda, nos vamos a referir a un objeto de juego. Y esto es básicamente sólo una manera elegante de decir que vamos a hacer una variable que almacene un objeto como cubrimos justo al comienzo del curso. Objetos o cualquier cosa en nuestro juego a los que podemos asignar lógica. El reproductor es un objeto, cámaras y objeto este ambiente incluso un objeto, el piso y el fondo de ambos objetos. Y sí, casi todo lo que pueda tener lógica asignada es un objeto. Entonces vamos a crear un jugador de objetos de juego público. Y esto en realidad nos va a permitir elegir uno de estos objetos y asignarlo a nuestro guión. Entonces si vamos a nuestra cámara principal, realidad podemos asegurarnos de que su guión de seguimiento de la cámara esté asignado. El mío es. Pero si no lo hace, quítelo y simplemente arrástrelo. Y podemos arrastrar al jugador a esta cosa del jugador y hacer un enlace a nuestros objetos. Entonces la variable player ahora está vinculada al objeto player, lo cual es realmente genial porque esto nos permite acceder a toda clase de información sobre este objeto, incluyendo su posición actual, que es realmente, realmente genial porque a medida que jugamos un juego, estoy seguro de que se puede ver la posición del jugador. Se mueve constantemente y por eso nuestra cámara no es capaz de rastrearla. Si podemos mover nuestra cámara acuerdo a la posición del jugador, va a ser realmente, realmente genial para nuestros jugadores hacerlo. Vamos a seguir adelante y eliminar el método start. No lo vamos a necesitar para este guión. Y vamos a ir a la Actualización que como cubrimos la última vez es el procedimiento que Unity llama a cada fotograma. Obviamente, ya que estamos construyendo una cámara sigue guión, queremos asegurarnos de que la cámara y el lugar se posicionen o hundan cada fotograma. Ahora para hacer esto, vamos a ir aquí y vamos a teclear transform con una t minúscula Esto es básicamente unities forma de decir que sea cual sea el objeto actualmente tiene este script adjunto a él, acceso a esa transformación, la transformación adjunta a este objeto de juego y ver si pasamos el cursor sobre este objeto de juego, en este caso es la cámara porque eso es lo que los scripts se le adjuntan. Ahora mueve un punto, podemos ver todas las diferentes partes de un trasplante que pueden hacer, transformarlo oposición, transformar, escala local, transformar rotación de puntos. En todo lo que podamos pensar, vamos a necesitar oposición a trasplantes ahora mismo. Entonces iremos a transformar la posición de puntos. Nos iríamos iguales. Entonces. Aquí es donde viene el Koopa. Porque hemos hecho un enlace con nuestro jugador. Podemos teclear jugador dot transform dot position. Entonces si pulsamos Enter así, este es básicamente todo el código que necesitamos para asegurarnos de que nuestra transformación, nuestra posición siempre esté configurada a la posición del jugador. Si corremos nuestro juego, esto realmente se ve así. Ahora podría estar un poco confundido. Sólo estoy viendo una pantalla azul. Sí, pediste introducir pantalla y la razón de esto es porque el componente z de la cámara siempre tiene que ser menor que el resto de la escena. De lo contrario, exactamente el mismo avión y no está capturando nada. Esto podría ser un poco confuso porque es un juego 2D después de todo, ¿por qué importa el componente z de algo? Y en general no lo hace. Pero solo para asegurarte de que como regla general, todos tus componentes z de todo lo demás siempre configurados en 0 y la cámara siempre sea menor que 0. Si es menos uno, está bien. Si es menos un 100, está bien. Pero menos diez es un buen punto dulce. Ahora, no queremos exactamente que la cámara sea siempre la misma posición exacta que el jugador por razones obvias. En cambio, lo que vamos a hacer es que sólo vamos a asignar específicamente la posición x de la cámara al jugador. Y pensarías que usualmente ha transformado oposición de x iguala jugador, esa sesión conceptual dot x Pero por alguna razón Unity no lo hace tan simple, cual es poco molesto, pero es bien porque en realidad es muy sencillo hacerlo. Todo lo que necesitamos hacer es usar esos vectores 3s o herramientas vectoriales de las que hablamos el último episodio. A una oposición transformada equivale a mu. Escribiremos vector dos. Podemos ver que no es auto-llenado porque tengo posición de transferencia theta en el camino. Así que voy a seguir adelante y eliminar eso y simplemente tocarlo de nuevo. Ver el vector 2D, vector tres, lo siento. Entonces abriremos corchetes y vamos a escribir en el jugador dot transform, punto position dot x Y esto básicamente significa cada fotograma, asegúrate de que mi exposición sea la misma que los jugadores . Ahora, esa es en realidad la única posición que queremos alterar. No queremos cambiar la y, no cambiamos la z En lugar de cambiar placa o transposición de la y y y z, sólo vamos a hacer que se ajuste a la oposición transformada, punto y y la oposición transformada hace Z. lo que esto básicamente va a hacer es que esto lo va a hacer para que nuestra posición esté siempre puesta a la PlayStation x, oposición en la y y oposición en la z. Ahora hay en realidad una forma más sencilla de hacer esto porque, debido a que solo estamos utilizando la calidad de transformación de nuestro objeto de juego de jugador, en realidad podemos usar una Transformación. Básicamente dice, Ok, quiero la posición y la rotación y la escala de ese objeto. No quiero nada más, lo cual es genial porque eso es todo lo que necesitamos. Entonces podemos sacar todas estas palabras clave transformadas. En realidad es sólo esa porque estos se están refiriendo a nosotros. Y ahora solo juguémoslo oposición no x Esto podría parecer un poco inútil, pero almacenar un transformador es obviamente un poco menos que almacenar un objeto de juego entero. Entonces va a ser una buena práctica de codificación. Lo podemos ver aquí. Dice desajuste de tipo y eso es porque estaba almacenando en GameObject. Y ahora está almacenando una transformación y no sabe qué hacer consigo mismo. Así que acaba de volver a dibujar a ese jugador y se arreglará a sí mismo. Ahora si seguimos adelante y hacemos clic en Play, podemos ver que nuestra cámara podemos ver que nuestra cámara de hecho va a estar siguiendo nuestro jugador igual que queríamos a nuestro jugador igual que queríamosreproducir como siempre en el centro de la pantalla. Y cuando saltamos y caemos de nuevo al abismo, podemos ver exactamente por qué sucede. Ahora, esto podría parecer genial y podría funcionar bien, pero en realidad no queremos que el jugador esté siempre en el centro de la pantalla. Queremos que esto sea un ligero desplazamiento. He oído jugar mis juegos son los jugadores como que están compartiendo la mayoría de los juegos, encontrarás que ese es el caso. Vamos a seguir adelante y hacer una variable offset. Lo llamaremos flotador público. Esta la primera vez que estamos usando flotadores, podrían sonar complicados y solo son decimales. Eso es todo lo que están ahí. 0.50.20.45. Algo que no sea un entero es un flotador en cualquier número real más o menos es flotar? Vamos a seguir adelante y tipo offset. Esto básicamente nos va a permitir sumar este valor offset a los jugadores, la oposición transformada de x, que básicamente compensará la transformación. Entonces si lo piensas, si el jugador es una posición 0, corremos esto. Vamos a ir a la posición 0 más cinco. Entonces el jugador va a estar por ahí. Digamos que los jugadores de ahí, el punto y coma estará por aquí. O si dijéramos dos menos cinco estarán ahí. Podemos alterar esto en modo play igual hemos estado haciendo con todo lo demás, no tipo de veces si iniciamos nuestro juego, podemos ver más delante del pagador, pero quiero moverme fuera de la obra para estar por ahí. Y en realidad podemos ahorrar este valor, 5.78, salir del modo de juego, escribirlo justo en. Entonces cuando iniciamos nuestro juego por segunda vez, podemos ver que el jugador es exactamente donde deben estar, justo ahí. En realidad voy a llegar a ser seis porque creo que la obra aún está demasiado lejos a la derecha. Sí, eso debería hacer el truco. Puede que sea un poco demasiado a la izquierda ahora, pero nos encontraremos con ese puente cuando lo crucemos, realidad es posible que prefiera tener a su jugador del otro lado ahí, lo cual está bien si hacer. Podemos alterar ese valor a medida avanzamos por nuestro viaje de desarrollo de juegos. Eso es lo bueno de las variables. Pero por ahora hemos creado un script muy básico que permite a la cámara seguir el plan, el trabajo, y te veo en el siguiente video. 9. Estados de personajes: Oye ahí, y bienvenidos de nuevo a la unidad. Ahora en los últimos episodios, hemos creado nuestro primer guión C-sharp, permitiendo que el jugador se mueva a lo largo de la escena. E incluso hemos agregado una cámara siguiendo guión para que siempre hacemos un seguimiento de dónde está el jugador. Como resultado, nuestro juego actualmente se ve así. Está en una semi función de estado y podemos saltar sólo uno mal el suelo podemos saltar, lo cual es realmente cool, justo arriba hasta llegar al final y después seguimos. Semi funcional podría ser un poco de estiramiento. Pero sin importar, en este episodio, vamos a empezar creando estados de jugador. Este va a ser el primer paso que nos damos para crear un gran bucle. Ahora, si no quieres un bucle de juego es básicamente el hecho de que puedes jugar, morir jugar de nuevo y morir jugar cuando etc, podrías seguir jugando o bucle. Y los estados nos van a permitir determinar en qué estado están las jugadas. Si está muerto, si está vivo, si está esperando para ver si puede responder después de un anuncio, si está saltando o cayendo. Obviamente, muchos de los que no vamos a estar usando, no vamos a estar codificando, saltando y siguiendo estados en. Pero si no estuviéramos usando un motor de juego, podría ser algo que tendríamos que hacer. Por suerte, porque Unity tiene este gran componente Rigidbody que cuida toda la gravedad por nosotros. Los únicos estados trabajan con enfoque en este episodio, voy a ser si el jugador está jugando o se le permite moverse o muerto, no permitido moverse. Comience por entrar en la carpeta de scripts, haga clic con el botón derecho sin embargo, cree el script C-sharp. Voy a llamar a mi Gerente Estatal. Entonces una vez que se haya creado, Google al reproductor y arrastre su guión de State Manager a él, así. Ahora vamos a buscarlo. Voy a la administración estatal con alcance y vamos a empezar igual que lo hacemos normalmente creando una variable. Y esta variable se va a llamar estado y va a ser una variable de cadena, pública. Entonces podemos verlo en el estado de cadena del editor de Unity. Ahora esta variable estatal nos va a permitir comprobar en qué estado se encuentra actualmente el jugador. Vamos a hacer eso. Voy a hacer referencia al estado en otros guiones como nuestro guion de movimiento. Obviamente en este momento del guión de movimiento es lo que realmente le está diciendo al jugador que mueva cada fotograma. Esta línea de aquí le dice al jugador que mueva cada fotograma. Pero si la obra está muerta, no queremos que mueva cada fotograma. Queremos que deje de moverse. Vamos a hacer eso haciendo referencia a este guión. Ahora, si no estás seguro de cómo hacer esto, no te culpo porque esto me llevó bastante tiempo aprender, pero en realidad es bastante sencillo. Si ya lo has adivinado, todo lo que necesitamos hacer es crear una variable que enlaza con el script, al igual que hemos creado variable que enlazan cuerpos rígidos, enteros, incluso otras transformaciones y GameObject, podemos hacer lo mismo aquí. Entonces vamos a teclear público. Entonces vamos a escribir el nombre Bosco State Manager. Vamos a llamar a esta declaración. Entonces, una vez que hayamos hecho eso, volveremos al Editor de Unity. Vamos a ir a seleccionar nuestro objeto jugador. Vamos a arrastrar nuestro script estatal Manager a nuestra variable gestor de etapa, que luego nos permitirá acceder a este script desde este script, que es realmente, realmente útil porque entonces lo que podemos hacer, podemos ir por aquí para arreglar actualización y podemos teclear. Si quieres hacerlo solo bajo ciertas condiciones. Vamos a llamar al estado gestiona el estado de George. Y en realidad podemos acceder a variables en este estado de script administrado simplemente escribiendo dot y luego el nombre de la variable. Voy a escribir dos signos iguales. Y entonces vamos a decir jugar con un P. mayúscula Debajo de eso. Vamos a poner nuestro código por aquí, lo que significa que cada fotograma, sólo si estamos en el estado de juego, vamos a establecer la velocidad de punto RB a eso. De lo contrario no lo estamos. Esto puede ser realmente genial porque cuando entramos en Unity y golpeamos Play, podemos ver que en realidad no nos movemos. Y si tuviera que entrar jugando al estado, empezaré a moverme. Pero en el momento en que cambié algo de stock, que en realidad es realmente, realmente genial , eso nos va a permitir, como estoy seguro que puedes averiguar, hacer diferentes estados para nuestro jugador. La forma en que voy a hacer eso es que voy a ir a la declaración que acabo de escribir. Y ahora lo último que necesito hacer es asegurarme de que este estado se asigne base en lo que quiero que sea el estado. Cuando empiezo, siempre voy a querer que el estado sea igual a jugar. Empezamos a movernos. Pero cuando choque con algo, voy a querer morir. Cuando choque con un obstáculo, voy a querer desencadenar el estado de muerte. Este estado de muerte va a ser exactamente lo que suena. Va a hacer de este estado la fecha y entonces obviamente ya no nos moveremos. Y lo que es bueno de esto es en realidad más adelante cuando agregamos efectos de muerte y todo tipo de cosas así, podemos usar la máquina estatal para simplificar ese proceso. Voy a borrar mi actualización porque no voy a necesitar aquí. Y voy a crear un nuevo evento disparador. Ahora si recuerdas el último episodio o dos episodios atrás, tuvimos nuestros propios eventos de colisión. Y esto es básicamente decir cuando choco, hago esto y este código, obviamente a medida que pasamos, cuando choco con el suelo, quiero poner terreno la verdad. Vamos a crear algo muy parecido por aquí. Vamos a salir nulo en Trigger, Enter 2D en entidad disparada d es exactamente lo mismo que en colisionador en 2D. Es sólo que el colisionador es un disparador. Entonces debido a que nuestro jugador va a estar usando un colisionador normal, usted podría ser, ¿por qué estamos usando un gatillo? Pero la razón es en realidad porque los obstáculos que vamos a sumar en un segundo, vamos a usar disparadores para que en el evento gatillo se active cuando un colisionador golpea un gatillo, pero no se activa cuando chocó cabeza a colisionador. Vamos a entrar aquí y en nuestro evento gatillo. Ahora esto va a ser una línea bastante larga de código y va a estar usando bastantes conceptos. Realmente no hemos ido todavía. Y la razón por la que no los he pasado es porque no son increíblemente fundamentales en este punto del curso. Pero unidad, Una vez que los usemos por alguna razón. Podemos ir por aquí. Si vamos aquí podemos ver acabamos decir colisión colisionador de puntos activándose dondequiera que viva en su oscuridad comparado con nuestro comprobando la etiqueta es tierra. Pero cuando usamos trigger, tenemos que escribir una línea de código mucho más larga que vaya así. Si colisión cayó, sí, componente, tornillo abierto, soportes abiertos. Y vamos a decir colisionador polígono 2D comer es que ese es el tipo de planeador que usaremos para nuestros enemigos. Entonces vamos a poner paréntesis, George, comparar etiqueta, otro corchetes abiertos, y luego obstáculo. Ahora podrías estar yendo, Qué en el mundo y acabamos de escribir, y no te culpo porque esto está usando todo tipo de conceptos que no quería enseñar en este punto del curso. En realidad no sé por qué Unity nos hace usar todos estos conceptos para una línea de código tan simple. En mi opinión, no entiendo por qué inconsciente ser colisión dot Colorado ha tenido sólo porque usualmente el gatillo, pero por cualquier razón usualmente una vez que así y lo intenté en un anterior tema de este video, hazlo al revés y provoca todo tipo de problemas. Así que sólo copia el código exactamente como tengo. Y no te preocupes si es un poco confuso. Buda colisión punto fgetc componente abierto o menor que signo, luego colisionador poligonal 2D mayor que signo, soporte abierto, cerrar corchete punto compare etiqueta, soporte abierto, comilla, sello de comillas de obstáculo cerrar soporte, cerrar el soporte. Y luego vamos a escribir en nuestra declaración if, el estado es igual a verdad. Ahora, lo primero que vamos a hacer para comprobar si esto funciona es que en realidad vamos a hacerlo para que nuestra colisión, vamos a hacer un nuevo colisionador, un nuevo objeto. Lo llamo obstáculo y veo si dejamos de movernos cuando lo golpeamos. Así que vamos a ir por aquí a la carpeta de activos del curso. Y vamos a hacer clic en el triángulo y arrastrarlo a nuestra escena. Al igual que así. Ahora lo primero que vamos a hacer es que vamos a escalar ese triángulo hacia abajo. Muévelo a por ahí. Y voy a hacer la mía roja. Ese es un color decente. Rojo más oscuro. Maestro como escena. Ahí vamos. Ahora lo que tenemos que hacer es que tengamos que asegurarnos de que cuando chocemos con este obstáculo, tratemos al estado muerto. Pero obviamente este obstáculo no tiene la etiqueta de obstáculo. Entonces para cambiar eso, tenemos que ir aquí, tienes añadir etiqueta como lo hicimos la última vez y teclear obstáculo. Exactamente cómo lo escribí, capital O. Entonces iremos por aquí. Vamos a hacer click, lo siento, no al jugador, al triángulo que vamos a hacer click aquí. Y cuando haces clic en obstáculo, ahora, tiene una etiqueta de obstáculo, pero aún no tenemos un colisionador unido este triángulo. Vamos a necesitar hacer ese tipo add componente, el colisionador polígono de colisionador polígono anterior 2D. Y asegúrate de que sea un gatillo. Podemos ver que está perfectamente alrededor de nuestro triángulo. Si hacemos clic en play, debemos recargar nuestros ensamblajes de guiones, y luego debemos movernos, movernos, movernos, movernos, conseguir a nuestro jugador. Perfecto. En cuanto chocamos se desencadena el estado muerto. Esto realmente va a ser el comienzo de un realmente otro palo grande y voy a viaje de desarrollo del juego. Acabamos de crear una especie de mini máquina estatal. Esta mini máquina estatal nos permite rastrear cuando el jugador está muerto o vivo. Y te mostraré lo fácil que es ampliar esto en el próximo episodio. Pero si tu código se trabaja como el mío, Gran trabajo como siempre, desvincula mi código original en los activos de los recursos del video. Si el tuyo no funcionaba, pero buen trabajo. Todos deberían estar trabajando, aparentemente bien. Y te veré en el siguiente video. 10. Nuestro bucle de juego: Oye ahí y bienvenidos de vuelta a la unidad. Último episodio, creamos nuestra primera máquina estatal, que nos permitió, al jugar el juego, tener al jugador en dos estados diferentes, es decir, jugar cuando no golpea el obstáculo y la deuda tan pronto ya que se golpeó el obstáculo. Y esto podría no sonar como una cadena muy grande. Esto es realmente, realmente bueno y es un gran paso en nuestro viaje de desarrollo de juegos porque va a hacer mucho del trabajo que necesitamos para hacer que funcione un bucle de juego. Y un bucle de juego en términos simples, es básicamente cualquier cosa que nos permita jugar un juego encima o ganar y perder y volver a intentar explicarlo de otra manera, se puede pensar en un bucle de juego como un proceso para hacer seguro que el jugador no tiene que reiniciar la app cada vez que quiera detener el juego en, obviamente en nuestro juego. Ahora, si juegas nuestro juego y pierdes, y Emily, si golpeas el obstáculo, la forma temprana de seguir jugando obviamente es reiniciar el juego. Queremos cambiar eso. Lo primero que vamos a hacer es que vamos a entrar en nuestro guión del Gerente Estatal. Y en realidad a lo largo de todo su absoluto, sólo vamos a estar editando los manuscritos estatales. Voy a subir una versión actualizada del manuscrito estatal al final. Pero vamos a estar editando lo que tuvimos de la última vez. Por lo que haga doble clic en Gerente Estatal. Cuando eso cargue, vas a empezar por crear un nuevo procedimiento. Así que vas a ir aquí y vas a escribir público, void die. Este nombre muy espantoso para un procedimiento básicamente va a ser el código que corremos una vez el jugador está muerto o tiene un estado muerto. Se puede ver aquí donde los estudiantes podemos vivir un obstáculo o murieron. Acabamos de establecer deuda a nuestro estado, pero en realidad queremos llamar a este procedimiento muerto y luego hacer todo ese ajuste dentro de este procedimiento por diversas razones. El principal es que de esta manera podemos agregar efectos de profundidad o añadir un temporizador para responder, lo que vamos a hacer en este episodio. También cosas. Vamos a hacer que corte ese código y lo pegue aquí. Y en realidad voy a cambiar esto a una D capitalina porque creo que eso se ve mejor si es P capital y un capital D. Entonces por aquí, bajo frío estado DI, paréntesis y punto y coma, ahora comenzó a morir procedimiento. Ahora cuando golpeemos un obstáculo, vamos a llamar a este procedimiento. Voy a poner mi estado muerto. Y todo debería funcionar igual que ha estado perdiendo todo el tiempo. Deberías tener un programa de trabajo que haga lo siguiente. Debería correr, correr, correr, ir igual que la última vez. En cuanto golpeamos que deberíamos dejar movernos igual que lo teníamos antes. Entonces lo que en realidad es genial de esto es que ahora podemos de este procedimiento, inscribirse o responder procedimiento si bajamos aquí y nos hacemos públicos, nulos y vamos a llamar a éste con el teléfono. Pon paréntesis abierto. Y yo responderé. El procedimiento nos va a hacer retroceder a la posición que queremos estar al principio. Queremos asegurarnos de volver a nuestra posición inicial 0 generada. Y así voy a establecer esa posición fuerte para estar donde quiero empezar el lugar. Me voy a mover para jugar aquí abajo. Y voy a decir, está bien, esta es buena posición fuerte. Es menos 8.52 y menos 1.69. Ve a aquí y vamos a ir a Francia forma como recordar el código del script de la cámara, nos referimos a transformar siendo el objeto de juego adjunto al guión. Exactamente lo mismo aquí nos estamos refiriendo a la transformación de un jugador. Posición de punto es igual. Una vez más, vamos a usar un vector tres, nuevo vector tres, soporte rizado abierto, lo siento, corchetes normales. Y vamos a escribir en menos 8.521.69. Y por supuesto 0. Ahora bien, todo esto debería funcionar perfectamente, pero podemos verlo aquí. Dice que no se puede convertir de fluido duplicado. Esto es básicamente porque no le hemos dicho a la unidad que lo que almacenamos aquí son decimales. Acabamos de decir. Estos son sólo dos números que ponemos. Puntos en. La unidad va a engrosarse automáticamente confundirse en cuanto a lo que son. Van a pensar que era un doble es un flotador. Entonces para minimizar esto, simplemente vamos a poner la letra F, f minúscula después de ambos años, entonces sabrás que se trata dos carrozas y estamos bien para ir. Ahora antes de volver a Unity, en realidad tengo que asegurarme de que llamo a este respuesta desde el código de tinte. Déjame ir aquí. Voy a la respuesta fría, lo que significa que tan pronto como muera, puse mi estado muerto. Y entonces respondo, bueno, esto en realidad va a hacer es que me va a hacer responder, pero todavía voy a estar en estado muerto. Y eso se va a ver algo así. A ir viajar por lo largo, viajar por problemas en problemas a lo largo, morir, y luego volver aquí y seguir estando en estado muerto. Se puede ver que no me estoy moviendo porque estoy en estado muerto, pero en realidad no queremos que eso suceda. Queremos seguir en movimiento. Así que vamos a transformar Sarah, y luego vamos a volver a poner a nuestro estado igual a reclamar. Esta es nuestra primera instancia de lo que es un bucle de juego porque ahora podemos ver si golpeamos el juego, podemos avanzar, movernos. Si morimos, respondemos nuevo a donde estábamos y podemos jugar el juego. De hecho, si saltamos por encima de esto, lo cual soy justo hacer eso no voy a hacer. Ni siquiera sé si esto es posible porque estoy viajando a media milla por hora, pero sí, no lo es. Pero si hicimos nuestra velocidad de juego por aquí, si hicimos mi discurso y mi vida antes, y luego salté en el momento adecuado. En realidad puedo repasar eso y podría seguir jugando. Obviamente ahora me voy a encontrar en problemas porque no hemos terminado de construir el mapa. Eso es lo básico de un bucle de juego. Y en realidad lo último que vamos a hacer en este episodio es que vamos a cambiar la velocidad a tres porque dos son solo un poco lentos incluso para fines de prueba. Si tienes todo funcionando igual que yo, has hecho tu primer tema. Ahora, lo único que tenemos que hacer en el próximo episodio, vamos a añadir un ligero temporizador que no respondamos de inmediato, morimos y luego respondemos. Y ahí es en realidad donde nuestra máquina estatal va a venir aún más útil, pero en contra de eso en el siguiente paso. Entonces lo que deberías tener ahora es un script de respuesta normal. Y si está funcionando perfectamente buen trabajo. 11. Temporizadores: Hey ahi, y bienvenidos de vuelta a Unity. Ahora en nuestro último episodio, creamos nuestro grupo de juegos, que es otro paso muy grande para que se complete nuestro juego móvil. Y si hacemos clic en Play, en realidad podemos verlo en acción aquí en lo que hicimos la última vez. Nos moveremos y al minuto que morimos, volvemos al inicio, lo cual es realmente, realmente genial. Ahora hay algunos problemas con esto, sin embargo, en primer lugar, no hay tiempo en el día porque engendramos prácticamente en cuanto morimos, lo cual no es ideal. Y en segundo lugar, estamos desova un poco más alto de lo que originalmente pretendía. Cuando estaba viendo video de vuelta, me di cuenta de que entraba el valor equivocado. Entré 1.69 en lugar de menos 1.69. Lo primero que vamos a hacer en este curso es que vamos a seguir adelante en este episodio, hermano es que vamos a seguir adelante y arreglar eso. Así que sólo voy a volver a mi guión que hice la última vez y añadir un menos. Ahora eso debería verse un poco mejor. Pero nuestro problema antes de desove en cuanto morimos sigue siendo uno que necesita ser resuelto. Si golpeamos Play justo por aquí, veremos que estamos viajando, viajando a lo largo. Derramamos ahora más abajo pero todavía cuchara tan pronto como morimos, lo cual no es genial. Entonces para solucionar este problema, voy a introducir un temporizador que nos da un poco de retraso de un T2 de mediados de los 90 y responder de nuevo. Por lo que en realidad podemos ver nuestra máquina estatal en acción. Déjame seguir adelante, Sigue abriendo el guión del Gerente Estatal. Y lo voy a hacer es un proceso bastante simple, pero va a estar usando un término y procedimiento muy desconocidos numerador IEE más frío. Ahora, enumeré aquí, anote esto. Funciona de manera similar a un procedimiento. Yo lo llamaré retardo. Ponga paréntesis, y luego ponga corchetes. Ahora, para ser enteramente honesto, utilicé, enumero desde hace mucho tiempo sin saber lo que hicieron justo como comandos de retardo de tiempo o comandos de espera. Y eso está perfectamente bien. Yo los enumeradores son un poco más complicados que eso. Tienen que devolver un valor. Como se puede ver, es un poco de cosa desconocida para nosotros en este punto del curso. Pero por ahora, todo lo que necesitas saber de ellos es que son los dos que vamos a utilizar para retrasar. Y vamos a escribir código que diga rendimiento, retorno, nuevo. Espera, un segundo, corchetes abiertos, un punto y coma. Entonces llamaremos al procedimiento de respuesta. Ahora, lo último que tenemos que hacer es en lugar de llamar responder directamente aquí, vamos a llamar a start coroutine, open bracket, delay, paréntesis, y luego un punto y coma. Podrías estar pensando, ¿Qué **** acabamos de programar? Y no te culpo porque acabamos de agregar una cosa completamente desconocida y luego comando completamente desconocida. Pero realmente no quiero meterme en cada uso de esta cosa porque esto no es realmente tan importante en nuestro curso. De hecho, puedes hacer juegos móviles solo usando estos como meses de tiempo. Y para mis primeros juegos móviles, Eso es todo lo que hice. Todo lo que estoy haciendo aquí. Puedes pensarlo como si estuviera llamando a un procedimiento y el procedimiento es entonces llamando ahora al trámite. El único motivo por el que el procedimiento se ve diferente es porque tiene que usarse para esperar un rato. Y no quiero meterme en toda la logística que ahora porque se va a complicar bastante y no es muy útil. Solo piénsalo como start coroutine, que básicamente es sólo una palabra elegante para el procedimiento de tienda que puede esperar, luego medio procedimiento que puede esperar, y luego comenzar mi nuevo procedimiento. Este código podría parecer un poco desfamiliar como he dicho antes, no te preocupes por ello. Si lo escribes como yo lo tengo, debería funcionar perfectamente bien. Y no vamos a meternos mucho más en que enumeré porque es un poco más complicado de lo que necesitamos para volver a mi juego ahora. Y hago clic en Jugar. Podemos ver que debo moverme , moverme, morir. Y luego después de una segunda respuesta, que es mucho mejor que lo que teníamos antes, lo cual es genial. Si tienes ese trabajo funcionando bien. Esto fue parte de episodio corto porque solo quería introducir el tema de los tiempos. Pero como dije, podría ser un poco desfamiliar. No te preocupes por eso. Solo asegúrate de que tu código esté funcionando como el mío. Obviamente voy a subir mi código como lo he estado haciendo todo este tiempo. Para que puedas descargarlo si tienes algún problema. Pero si está funcionando bien trabajo y te veré en el siguiente video. 12. Generar nuestro mapa: Oye ahí y bienvenidos de vuelta a la unidad. Ahora, en los últimos videos, hemos creado un juego móvil semi funcional donde puedes moverte. Si mueres, responderías y puedes saltar por encima de esto y seguir adelante. Pero el problema que surge si saltas sobre el triángulo, no se puede hacer nada para detenerte inevitablemente caer en el abismo. Y eso es porque el mapa termina están ahí. En este episodio. Lo que queremos hacer, queremos crear un mapa que continúe para siempre. Ahora hay dos formas de hacerlo. Uno, sólo podríamos hacer que esta parte del mapa se mueva con el jugador. Como que siempre como familia es que no todos hacemos lo mismo y nunca nos quedamos sin matemáticas, pero eso es bastante aburrido. Lo que vamos a hacer en cambio es que vamos a crear un sistema que engendra partes de nuestro mapa para nosotros. Cuando lleguemos a ciertos puntos, si llego allí, generaré para nosotros una nueva parte de nuestro mapa, lo cual es realmente, realmente genial. El motivo por el que esto es tan cool es porque nos permite tener un mapa infinito variado podamos cambiar la altura que van, podemos cambiar la longitud si queremos. Obviamente se sumará todo eso más adelante cuando aprobemos todo el juego móvil. Pero por ahora, sólo vamos a lograrlo. Entonces todos hablaron frente a nosotros para que podamos tener un mapa realmente funcional. Ahora, lo primero que vamos a tener que hacer es que vamos a necesitar hacer este mapa segmentos más pequeños porque creo que los segmentos de mapas deberían ser sobre tan grande. Hagámoslo para que ese triángulo se ponga. Y entonces lo segundo que tenemos que hacer es que realmente necesitamos hacer este segmento de mapa en un prefabricado. En nuestro prefabricado se puede pensar en ello como un sello. Quiero copiar todo en este objeto, convertirlo en un archivo que luego pueda poner en mi juego. Yo hago eso. En realidad es sólo tomar esta palabra y lo arrastro a la carpeta de activos y lo dejo ir. Crea un archivo prefabricado para mí. Y luego puedo arrastrar este archivo prefabricado a mi escena y engendrarlo como yo quería. Y lo vamos a hacer en esto con el código. Pero esto es realmente genial porque entonces si voy adelante y cambio algo sobre esto, por ejemplo, haciendo este amarillo claro, raro color oliva. Cambia todo el prefabricado por lo que en realidad puedo actualizar esto sin embargo quiero, y todo se actualizará con él, lo cual es realmente, realmente genial. Obviamente, necesitamos hacer el código que realmente genera estos. Pero antes de que hagamos eso, primero vamos a sumar otro colisionador. Ahora esta parte es muy importante. Vamos a entrar en nuestro prefabricado y ya tenemos un colisionador de cajas, pero queremos agregar un disparador colisionador. Vamos a seguir adelante y agregar un colisionador de borde esta vez, esto va a ser colisionador de borde 2D. Y va a ver una línea verde. Así es como deslizador Edge. Entonces vamos a hacer click en este botón aquí que dice Editar Colisionador. Y vamos a hacer clic y vamos a arrastrar esto, este lado por aquí donde aparece la caja hasta por ahí. Diría que mientras se trate de tal vez dos tercios de la longitud hacia arriba, eso está bien. Entonces vamos a seguir adelante y desmarcar este menú de puntos y vamos a copiar, vamos a cambiar esto a uno para que sea más fácil almacenar. Y luego vamos a copiar el elemento uno, la misma posición donde ambos están almacenados allí. Y entonces lo último que voy a hacer es simplemente mover eso ligeramente hacia arriba. Asegúrate de que este sea un acero. Lo que básicamente he hecho es que he movido la exposición gubernamental de un punto de ese punto desmarcando este menú de puntos. Entonces simplemente lo tomó y curso cognitivo y luego hizo los valores y para que parezcan un muro por el que no se puede pasar, que es exactamente lo que queremos. Y obviamente si lo tocara ahora, iría allí y me detendría , no podré pasar. Entonces si lo hago un gatillo, podré pasar perfectamente. Pero esto realmente crea algunos problemas para nosotros. Recuerdo antes cuando estaba editando uno de nuestros guiones anteriores, creo que fue este gerente estatal uno de aquí. Podemos ver que tenemos un evento desencadenante desconocido. Y si me recuerdas diciendo, me recuerdo diciendo que esta era una forma muy, muy complicada de llegar donde estaba la etiqueta del objeto. Y tenía razón, es muy estúpido. Y en realidad no fue lo que tenemos que hacer. En realidad, Unity no requiere que escribimos toda esta línea de código. En realidad podemos sacar todo aquí y reemplazarlo por punto GameObject, dot compare tag. Y eso hará exactamente lo mismo por nosotros. Y la razón por la que esto es tan útil es porque esa forma anterior era conseguir el colisionador y luego conseguir el objeto del juego, que era sólo un poco tedioso. De esta manera es mucho más simple porque entonces solo podemos conseguir el GameObject. Quiero que sigas adelante y hagas manuscrito estatal y lo cambies a objetos de juego oscuros. Por lo que todo funciona perfectamente. Podrías haberlo dejado como está, pero créeme, te encontrarás con problemas más tarde. No vale la pena solo cambios al objeto D2L y todo debería funcionar bien. Entonces vamos a encontrar un nuevo guión. Vamos a hacer algo muy parecido. Pero primero vamos a probar que funciona. Si lo hace, deberíamos poder morir igual que lo hemos estado. Y responda. Y se puede ver que funciona perfectamente. Así que adelante y asegúrate de cambiar eso a colisión de objeto de juego. El motivo por el que sentí que era el método más complicado estaba provocando una toma previa. Yo lo había escrito de una manera similar a esto y la unidad me había dicho que eso estaba en desuso y viejo. Entonces asumo que esa era la única forma de hacerlo, pero supongo que había otra forma más sencilla. Entonces mis disculpas por eso, pero solo asegúrate de arreglarlo a colisión dot GameObject dot compare tag. Eso es mucho más simple. Entonces en realidad podemos seguir adelante y hacer nuestros nuevos guiones. Vamos a hacer clic derecho aquí. Voy a ir a crear guión C-sharp. Vamos a llamar a este mapa spawner. En realidad vamos a agregar este guión al jugador. El motivo por el que podemos añadirlo a los jugadores porque queremos engendrar el mapa relativo a la posición del lugar. Entonces si voy adelante y arrastro eso a un jugador como así, podemos ver que tengo mis mapas, hash al jugador. Ahora cuando llegue a puntos en mi código donde quiero engendrar una pieza de mapa para jugar pasará a través de ella y los dividirá pieza delante de la obra, que hizo exactamente lo que quiero. Entonces la forma en que vamos a comprobar dónde lo estamos haciendo es con este colisionador que agregamos, obviamente tenemos un planeador gatillo. Así que vamos a decir cada vez que el par pase por encima ese gatillo Collider engendra nueva pieza el mapa, que es perfecto. En realidad voy a entrar en mi código por aquí donde tuve, voy a ir a la declaración de código. Voy a copiar esto en el respiradero del gatillo exactamente como es. Copiarlo. Entonces voy a abrir mi nuevo guión, el guión de desovador de mapas. Voy a eliminar estos y qué ponerlo ahí. Vacío en entidad trigonométrica. Lo único que voy a hacer aquí es que voy a cambiar esta etiqueta de obstáculo a tierra. Recordarás que esa fue la etiqueta que hicimos para el suelo antes. Y voy a eliminar este procedimiento y reemplazarlo por mi procedimiento de instanciación, que voy a hacer un segundo. Ahora que he ido brevemente a evitar los prefabricados son, te voy a mostrar cómo cuchara ellos a través de curvas. Lo que vamos a hacer, vamos a ir a nuestro guión por aquí, y vamos a ir a crear una nueva variable, pública, y vamos a crear una referencia a un objeto de juego. Ahora recuerda, lo hicimos antes con nuestra cámara sigue guión donde primero hicimos un objeto de juego y luego cambiamos a una transformación porque nos dimos cuenta no necesitábamos un objeto de juego. Lo bueno de los objetos de juego es que en realidad podemos almacenar todas las entidades en escenas de Unity, así como otros archivos de activos que son objetos como prefabricados. Podemos almacenar prefabricados en objetos de juego y luego estropearlos en vía código irá objeto de juego público ahora llamado piso. Ve por aquí y cambio este código y estoy hazlo capital G espacio de objetos de juego y luego lo pongo donde quiera llamarlo una pieza de flujo de mina de carbón que voy a poner un signo igual. Entonces escribiré la palabra instanciar. Abriré paréntesis. Escribiré en flujo la variable esta vez. Entonces escribiré como, y luego otra vez un objeto de juego G mayúscula. Ahora podría estar un poco confundido cuanto a lo que exactamente estamos haciendo aquí. Pero básicamente lo que esta línea de código está diciendo es decir, vale, tenemos esta variable por aquí, que vamos a vincular para fluir. Ve aquí, desplázate hacia abajo y arrastra el flujo en. Ahora hay un vínculo entre ellos. Entonces salida es este objeto vamos a poner ahora están diciendo, Ok, cuando chocamos con un gatillo que tiene el suelo de la etiqueta, es decir, cuando pasemos ese punto, quiero instanciate, lo que significa crear flujo como objeto de juego y almacenarlo en esta variable local. Recuerdo que fuimos a las variables locales hace mucho, mucho tiempo en nuestra introducción al video C-sharp. Pero básicamente son solo variables a las que puedes hacer referencia en solo este método porque vamos a estar haciendo todo el objeto en este método. Eso es perfecto para nosotros. Básicamente, lo que esta línea de código va a hacer va a ponerla en alguna parte, pero queremos controlar los libros de trabajo. Entonces bajo la escena, voy a ir a fluir pieza transformada. Recuerda que esa es su posición, rotación y escala. Posición de punto es igual a nuevo vector tres. Y luego voy a caminar puesto en las tres posiciones donde quiero que sea nuestra transformación. Obviamente, sé que quiero que mi z sea 0, casi 0 por ahora. Quiero que mi z sea 0 y quiero que mi y sea algo en la parte inferior de la pantalla, pero mi x, obviamente siempre voy a querer ser diferente porque si me estoy moviendo, moviendo a lo largo, moviéndome, entonces quiero gastar a alguien, si siempre entré di este valor menos cuatro y seguir adelante, estaba siguiendo exactamente el mismo lugar. O si yo, aunque terminara el valor aquí, menos tres como llegué a aquel, ese prefabricado que tendría este disparador. Bueno, sólo quiero advertir a la tercera pieza. Lo pondría en el mismo lugar, lo cual no es genial. En realidad quiero desovar en relación con la posición del lugar. No haría eso. Vamos a encontrar el offset igual que lo hacemos con nuestra cámara sigue script con variables. Nuevamente. Voy a volver aquí y voy a escribir public int offset. En realidad voy a seguir adelante y escribir un valor y similar a éste. Entonces todos hablaron al mismo valor y. Si hago esto menos 4.6417, voy a poner eso en mi valor y. Entonces por aquí, voy a decir, no te olvides de poner tu FM que sepa que es un flotador. Entonces por aquí, voy a decir transformar, t minúsculas, es decir, la transformación de allá. Esto está unido a, en este caso, el jugador que es perfecto, posición x más offset. Esto va a hacer esto. Estas dos líneas de código básicamente van a decir, de acuerdo, cuando choco con algo, cuando activo mi evento, eso significa que quiero engendrar un nuevo trozo de tierra. Voy a hacer una nueva variable, variable local, y voy a llamarla pieza de flujo. Y esa variable en realidad va a crear un nuevo objeto para mí y ponerlo en escena. Y entonces este objeto, voy a poner en una posición menos 4.6 para y, que está alrededor de camioneta. He visto ceros. Y entonces dondequiera que esté más un cierto valor, realidad podemos ver eso en acción si solo voy adelante y simplemente aquí, y he puesto en el valor cinco para el offset. No sé si esto va a funcionar. Podría estar un poco demasiado cerca, tal vez un poco demasiado lejos. Por eso usamos variables. Pero voy a probarlo. Si voy por aquí, baja aquí. Podemos ver que en realidad está demasiado cerca. Podemos ver que estos dos en realidad los están solapando aquí por bastante, pero estamos creando un mapa tal como queríamos. Así que voy a seguir adelante y cambiar esto a algo más como diez. Veamos cómo se ve eso. Si vuelvo a cargar mi juego, podemos ver que estoy creando una pieza de mapa casi perfectamente justo después, lo cual es bastante genial. Pero en realidad quiero hacer al jugador un poco más rápido y quiero hacer estas piezas matemáticas también un poco más aparte. Voy a cambiar esto a 12 y voy a cambiar la velocidad de mi lugar a cinco. Lo que debería pasar ahora es que tengo un mapa que puedo saltar a través. Mucho más fácil, voy a ser mucho más rápido ahora se puede ver tengo que saltar y golpearlo para que aterrice en cada nuevo segmento de mapa, lo cual es realmente genial porque el mapa se va a crear a medida que avanzamos, que es realmente, realmente genial y en realidad podemos empezar a hacerlo más interesante. Pero antes de hacer todo eso, en realidad necesitamos hacer un poco más de código para asegurarnos de que no estemos abarrotando a nuestro inspector de objetos, si vamos a aquí y vamos por aquí, lo siento, Voy a jerarquizar, podemos ver los planos de planta se están creando ahí. Estos clones de flujo son los prefabricados que están en estatuto en juego de shell. Podemos ver que sólo se están llenando y no están siendo destruidos. Y ya no necesito esto porque ya no lo he usado. Así que lo que voy a hacer es que voy a hacer un nuevo guión. Y voy a decir, cuando mi posición, es decir, la posición, voy a adjuntar el guión a esta pieza de flujo a la prefabricada. Voy a decir cuál es mi posición menor que la del jugador más una cierta cantidad. Así que cuando estoy así mucho más lejos de la cámara, destruirme a mí mismo. Y eso va a ser un guión muy sencillo. Y voy a hacer clic derecho a crear guión C-sharp, y voy a llamar a este flujo. Entonces simplemente voy a seguir adelante y abrir flujo. Y voy a decir en las reglas de actualización, lo primero que necesito hacer antes de hacer que ella es que necesito crear nuevas variables. Sé lo que es el transporte público con los jugadores. Transformada pública, igual que usamos para la falda de contraflujo, llamaré a este un jugador. Entonces voy a seguir adelante aquí y voy a decir jugador dot transform dot position dot x Y esa va a ser mi única cosa en esta herramienta de aquí mismo. Sólo digo mi posición de transformación punto x. ahora, voy a decir si mi ubicación actual en el plano x es menor que la conversación de lugar y explico. Quiero seguir adelante y destruirme a mí mismo. Y la forma en que voy a hacer eso es que sólo voy a escribir destruir así. Abra corchetes y luego objeto de juego en minúsculas. Esto es básicamente decir destruirme porque el objeto de juego minúsculas se refiere a cualquier objeto de juego al que esté unido este guión, en cuyo caso estamos hablando del piso. Este prefabricado, bueno, esto va a hacer es cuando mi posición es menor que la de un jugador, destruirme. Pero estoy seguro de que puedes averiguar que la exposición de estas piezas de flujo va a ser menor que el jugador cuando estén por ahí. Pero aún no queremos dibujar porque todavía necesitamos este piso. Donde realmente vamos a hacer va a decir cuál es mi posición menor que expedición al jugador menos y luego otro valor de desplazamiento. Y vamos a hacer este menos diez porque no tiene por qué ser exacto. Sólo tiene que ser un poco más de margen para que sepamos que no lo destruimos. Tan pronto como lo hacemos una pausa. Si esto funciona o debe suceder, es que cada fotograma que deberíamos estar comprobando si estamos demasiado lejos y si estamos, debemos destruirnos a nosotros mismos. Sólo vamos a ahorrar rendimiento en el largo alcance es realmente bueno. Voy a seguir adelante e ir a mi prefabricada piso por aquí. Voy a hacer clic en Agregar componente y voy a escribir el nombre del guión que acabo de crear piso. Y podemos ver que en realidad está aquí afuera. Podemos sumar deuda y luego solo necesito sumar la transformada de jugador. Pero no es tan simple porque esto no es un prefabricado. Y luego otra vez, no podemos simplemente arrastrar y voy a interpretar a una mujer trans igual que lo hicimos antes. En realidad necesitamos asignar esto a través del código también. Volveremos aquí. Escribiremos stock void que eliminamos antes, pero solo podemos volver haciendo eso. Entonces diremos jugador igual. Esto se va a ejecutar en cuanto nos instancien. Tan pronto como creamos, iremos capital G GameObject dot phi, lo que significa buscar editor, soporte abierto. Y luego pondremos comillas y frío como jugador. Porque podemos ver que nuestro jugador se llama jugador. En realidad vamos a investigar la integridad ahora. Transforme de punto. Esto va a decir, de acuerdo, cuando engendré, busco un jugador, GameObject dot find, es decir, buscar la posición del jugador y luego no se posicionará exactamente, pero esa es una forma sencilla de decir posicionarlo y luego ponerlo en esa variable. Ahora si eso ha funcionado, ¿qué debería pasar? Deberíamos empezar nuestro juego. Podemos ver que en cuanto creamos una pieza de flujo, podemos pausar el juego y podemos mirar por aquí. Esta pieza de flujo en realidad ha asignado la transformación del jugador a sus codificadores R fueron perfectamente en la parte superior de esto si creamos un nuevo flujo porque en realidad podemos ver la vieja pieza completa se destruye bastante mucho exactamente cuando terminamos nuestra pantalla, lo cual es perfecto porque significa que si miras en la pantalla, no se puede ver ningún problema con ella. Está funcionando a la perfección. Pero como estamos haciendo una fuera de la pantalla, las piezas del piso en realidad están siendo destruidas, lo cual es realmente, realmente genial. Lo último que vamos a añadir es porque estos focos se crean justo frente a nosotros. Eso se ve un poco no genial. No lo hace, no se ve demasiado guay. Y lo que queremos hacer es queremos hacerlo para que en realidad se instalen dos por delante de nosotros. Por lo que queremos tomar este pedacito y queremos decir mover eso a la cabeza. Por la forma en que voy a hacer esto, voy a ir a la planta. No me han cambiado este offset a algo así como 30. Entonces será más bien 24 en realidad, eso se duplica exactamente. Una vez que hayamos establecido este valor, sólo vamos a hacer una cosa más. Vamos a ir por aquí. Y en lugar de tener uno, vamos a poner dos al inicio del juego va como estoy seguro que estás pensando, si ponemos uno ahí, va a la escuela demasiado lejos para que saltemos a , que no va a funcionar. Ahora si jugamos el juego, deberíamos poder encontrar un punto dulce para donde queremos que esto cuchara sin tener que saltar a caer. Le pegamos a Play. Se puede ver que se engendra perfectamente donde queríamos y siempre hay mapeado para saltar. Nunca hay ninguna brecha un poco más grande a veces, y a veces un hueco un poco más pequeño, que es nuestra propia toma innovadora y creativa de este juego. El motivo por el que estas brechas están sucediendo es por que nuestras dos cosas iniciales no sean exactamente 24 unidades separadas. Entonces, obviamente, si quieres, puedes mover esto hasta que obtienes menos huecos o más brechas donde quieras. Voy a dejar mis fenómenos, pongo el mío sobre eso porque creo que los huecos en realidad añaden un pequeño personaje a nuestro juego. Si seguimos aquí, podemos ver un hueco un poco más grande y una gran brecha. He minimizado un poco el tema. Todos se ven bastante similares como si quisieras usar mis coordenadas, puedes. Son menos 4.89888.38, lo cual es bastante bueno en cuanto a no conseguir una brecha. Pero lo realmente genial es que en realidad hemos dado un gran paso nuevo hacia nuestro juego móvil que se está haciendo. Ahora tenemos un bucle de juego y un mapa infinito, lo que significa que todo lo que queda por hacer es hacer algún tipo de obstáculo que engendra en todos estos, obviamente con un poco de variedad, que seremos haciendo en el siguiente paso. Y tenemos un juego móvil que está prácticamente hecho, que es realmente, realmente genial. Ahora entiendo que este fue un episodio un poco complicado. Estoy seguro de que muchos de los conceptos que pasamos aquí fueron un poco confusos, sobre todo con estos negocios prefabricados instanciando. Si necesitas verlo de nuevo, lo entiendo completamente. Si no lo quieres volver a ver, eso también está bien porque obviamente vamos a estar cubriendo estos conceptos un poco en el futuro cuando nosotros, sobre todo en el próximo episodio donde estamos ir a instanciar triángulos, hacerlos prehaps también, y también ponerlos en estas piezas de piso de bloque tal como necesitamos. Pero nos meteremos en eso un poco más tarde. Si lo has hecho a través de episodio y el tuyo funciona perfectamente bien. Gran trabajo. Si necesitas descargar mi código, eso también está bien. Solo asegúrate de copiarlo exactamente a través y deberías estar bien tener un juego de trabajo. Gran trabajo, todos. Y te veré en el siguiente video. 13. Mejorar nuestro mapa: Oye ahí, y bienvenidos de nuevo a la unidad. Ahora en nuestro último episodio bastante largo, hicimos nuestro sistema de generación de mapas, que es realmente, realmente genial. Es otro paso masivo para que el juego móvil sea una realidad, porque ahora tenemos un mapa infinito que podemos atravesar cuando jugamos el juego. Si seguimos adelante y lo cargamos, podemos verlo en acción igual que hicimos el último episodio. El mapa se genera frente a nosotros y creo que podríamos caer bien. en realidad lo hacemos a través. En realidad podemos ver este mapa en acción por aquí, haciendo nuestros nuevos segmentos y destruyendo los antiguos, lo cual es realmente, realmente genial. Ahora en este episodio, vamos a querer mejorar esto un poco porque, bueno, este es un sistema de generación de mapas muy, muy bonito. El mapa que estamos generando no es lo más interesante del mundo porque no tenemos obstáculos triángulos, solo tenemos piezas de flujo verde que se generan de una sola vez el uno al otro. Y esto no es ideal porque no nos da un juego para jugar, solo un poco nos da piezas ScreenFlow a las que saltar. Y como probamos no tenemos que saltar. Vamos a iniciar este episodio agregando en puntos de desove a cada lado de las piezas de flujo verde. Y luego vamos a crear un sistema donde cuchara triángulos ya sea en el uno o el otro o ambos. Por lo que tenemos alguna variedad en nuestro mapa. Entonces una vez que hayamos creado nuestro triángulo engendrado sistema en cualquiera con puntos nacidos de Estados Unidos, entonces vamos a empezar con unos cuantos temas que van a surgir como resultado de que sumaremos en triángulos, porque estoy seguro que estás pensando si agregamos un triángulos y perdemos, vamos a responder, entonces no habrá flujo para saltar también, porque destruimos la regla. Vamos a crear un sistema donde creamos un piso y realmente vamos a desovar las piezas del piso debajo de un objeto padre. Y luego una vez que moramos, vamos a estar seguros de borrar ese objeto padre para asegurarnos de que no tengamos duplicados. Se estaba creando piso tras otro. Encima de eso, entonces vamos a finalmente hacer el sistema similar con los triángulos porque queremos que nuestros triángulos también sean objetos infantiles al piso. Vamos a añadir eso en incómodo. Y a partir de entonces, podremos tener triángulos y pisos para que no eliminemos piezas del piso sin triángulos. Y vamos a poder reiniciar el juego mientras despejamos todo. Empieza primero con los triángulos, si hacemos doble clic o fluimos prefabricados, recuerda que esto es en lo que estamos echando a perder. Este es nuestro sello. Y vamos por aquí en la parte superior, realidad podemos crear un objeto hijo igual que lo hicimos con el entorno hace mucho, mucho tiempo cuando hicimos ese ambiente objeto y agregamos un montón de niños Armitage a ella. Eso es lo que vamos a hacer aquí. Si vamos a hacer clic derecho y vamos Create Empty y llamamos a esta pausa para la posición uno. Podemos hacer un objeto que colocamos en este piso. Y luego sin importar dónde fluyamos, ese objeto siempre permanece igual en relación con esa posición. Lo cual es realmente, realmente genial porque esto nos va a permitir hacer puntos de esperma para el triángulo. Así que voy a poner uno por aquí sobre tal vez un tercio del camino, luego otro, por aquí, tal vez alrededor de las tres cuartas partes del camino. Por lo que podemos ver por ahí hay dos puntos de desove. Podría tener que ajustarlos a medida que voy, pero están bien por ahora. Estos puntos de desove van a estar donde voy a poner mi triángulo. Así que voy a hacer un guión ahora que diga cuando haga este piso, voy a crear, generar un número aleatorio y va a decir que ya sea poner uno allí o allá, o uno ahí y otro ahí. Lo cual es realmente genial. Si voy adelante a guiones en un clic derecho y voy a crear script C-sharp y llamar a éste de ángulo recto generado. Y voy a seguir adelante y voy a ir a mi piso y arrastrar mi guión de desovador triángulo a mi piso, así. Ahora mi guión engendrado triángulo obviamente está vacío, así que voy a abrir eso. Voy a seguir adelante y eliminar el método de actualización, pero mantener el método start porque en realidad vamos a estar haciendo toda nuestra codificación en el método estrella. Ahora, este va a ser un script bastante simple porque en realidad hemos manejado instancias antes y todo en este grupo que realmente hemos hecho antes también. Entonces si voy, voy a empezar primero haciendo que mi posición pública transforme uno. Entonces voy a hacer otro. Podría escribir exactamente la misma línea otra vez, como esta transformación pública posición dos. Pero simplemente forma de hacerlo es simplemente poner una coma y luego escribir la posición dos. Y ese es básicamente el extracto. Cualquier decir en confianza pública a quien quiero una composición 11 coopetition para volver a mi Editor de Unidad. Y abro mi script de flujo o objeto de flujo. Más bien, puedo ver la posición uno a la posición dos están aquí y no se les ha asignado. Ahora, recordarás que no podíamos simplemente arrastrar el plan porque el jugador es un objeto y esto es un prefabricado, así que no es tan simple. Tuvimos que escribir código para conseguir al jugador en nuestro último episodio. Pero con el piso porque estamos asignando prefabricada parado, podemos arrastrarlo en igual que no, en realidad va a renombrar esto de la posición 11 a la segunda posición, sólo para que sea un poco más agradable. Pero en realidad podemos arrastrar aquellos escritos que no podíamos hacer la última vez. Lo cual es realmente, realmente genial. Porque ahora lo que podemos hacer, podemos seguir adelante y hacer un guión de desovador para triángulos. Obviamente, vamos a necesitar usar un prefabricado igual que lo hemos estado haciendo todo este tiempo. Entonces quiero ir a público, objeto de juego, llamarlo triángulo. Entonces vamos a escribir código muy similar a lo que hicimos aquí. Hay objeto de juego, pieza de flujo es planta instanciada objeto de juego y la posición de transferencia. Ese realmente va a ser el código exacto que vamos a escribir por aquí. Pero este código que va a ser algunas condiciones en cuanto a cuántos y dónde los engendramos. Si pensamos en esto lógicamente, hay cuatro combinaciones que podemos dividir. Eso significa para un triángulo en un lado, uno en el otro, uno en ambos o uno o ninguno. Y podríamos hacer esto escribiendo para si declaraciones y obviamente luego haciendo una condición para cada una. Pero en realidad vamos a simplificar esto solo hacer dos declaraciones if. La forma en que vamos a hacer esto es que vamos a crear una variable aleatoria que establezca que x sea una o dos. Voy a ir int x. Así que es una variable local es igual a rango de caída aleatoria. Cuadrado abierto, soportes normales abiertos. Y voy a introducir un valor en este caso, uno, otro valor en este caso tres. Esto realmente me va a dar un número aleatorio de uno o dos, sin incluir fluidos. Entonces, ya sea uno o dos. Si por ejemplo, pongo aquí una F, me va a dar un flotador aleatorio. Entonces tampoco va a ser 101.101.21.3. Pero obviamente eso me va a dar algunos problemas aquí porque estoy almacenando cualquier SIG. No voy a hacer eso esta vez. Voy a almacenar corriendo entero de uno con un máximo de tres. Eso va a ser uno o dos. Si hago esta actualización nula, sucede cada fotograma y luego voy a imprimir x. en realidad puedo demostrar este proceso porque esto va a estar imprimiendo mi variable x cada uno marco de uno a tres. En realidad podemos probar si esto es hecho las variables aleatorias que queremos, porque esto se va a ejecutar cada vez este código es dotación o cada vez que se instancian unas piezas de flujo. Si vamos por aquí, veremos desde el principio tenemos un montón de unos y dos y tres porque esto podría ser un poco confuso al principio, no sé por qué es exactamente así, pero por alguna razón en Nueva Jersey, cuando dices 123, significa que eso es lo mínimo y este es el máximo, sin incluir el máximo, por lo que uno o dos. Ahora esta una o dos variables, en realidad vamos a establecer al azar dos veces. La primera vez que vamos a hacer en la parte superior donde lo asignamos, decimos entero x es rango aleatorio. Y luego unas pocas líneas hacia abajo con y hacen exactamente lo mismo para que tengamos otra variable aleatoria. Y luego por aquí vamos a tener nuestra primera declaración if, si x es igual a uno y hacer esto. Y eso va a ser si x es una cuchara por uno Prefab, entonces vamos a reasignar x y vamos a hacer exactamente lo mismo si x es igual a uno y hacer eso de nuevo. La forma en que esto básicamente funciona es que recoge una variable aleatoria valor válido para x de uno a dos. Entonces si es uno, haz esto por uno, vuelve a hacerlo y si es uno de nuevo, engendra el otro. Por lo que podemos ver a partir de esto podemos tener un triángulo o sin triángulos, o dos triángulos, o un triángulo y la otra posición. Hay cuatro combinaciones diferentes que pueden ocurrir a partir de esto, lo cual es realmente genial. Entonces lo último que tenemos que hacer es simplemente hacer el código para desove en este triángulo. Y como dije, este código va a ser muy similar a este código. De hecho podemos copiar ese código y ponerlo ahí mismo. La privacidad nos va a dar algunos temas de nomenclatura. Es como ¿qué son los pisos cuando se cambia ese piso? Triángulo. Y obviamente tampoco tenemos una variable offset. Y este vector tres Transformar no es en realidad lo que queremos nuestra transformación a E en absoluto. Adelante y quita esta parte del código. Ahora tenemos pieza de flujo de objeto de juego, instanciar triángulos, objeto de juego. No tiene mucho sentido, así que vamos a cambiar eso a triángulo. Entonces vamos a tener que escribirlo aquí también. Ahora tenemos GameObject triángulo O, hemos visto un error de nomenclatura. Ahora la razón por la que esto ocurre es porque estamos nombrando a este triángulo lo mismo que el nombre de ese triángulo, que no es buena lógica de codificación. Vamos a seguir adelante y hacer que sea una T mayúscula y una T. mayúscula Y ahora podemos ver que el aire realmente desaparece. Esto es algo bueno para ilustrar, y C-sharp. c-sharp es un lenguaje sensible a mayúsculas y también mostramos dos tipos de ahí. Uno que puedes cambiar el caso y es completamente diferente como lo hemos visto con juego de capital como objeto de juego minúsculas. Y también que puedes encontrarte con nombres de áreas en C-sharp. Ahora, por aquí, mi triángulo punto transformar deposición, voy a querer ponerme a posicionar una o posicionar tropas por aquí, estoy seguro de la posición uno porque esa es la primera vez que engendré. Pero la posición uno no es en realidad una posición. Es una transformación, por lo que eso es una transformación esa posición y una escala y rotación, todo tipo de cosas. Estoy feliz de escribir punto position por aquí. Eso me va a dar una enfermera en absoluto. Entonces bajo copia este código exacto y ponlo aquí abajo, excepto esta vez, simplemente cambie esto a la posición dos deposición. Ahora bien, esta es una forma tediosa de escribir este código, pero pensé que sería mejor ilustrar la lógica de lo que estamos haciendo. Podría haber algunas maneras en que puedas simplificar esto si le muestras esto a un profesional C-sharp sobre que podrían ser oh, cambiado que puedes hacerlo en tres nueves, pero por ahora en realidad va a funcionar completamente bien. Ahora podríamos volver a Unity y probar este código, pero en realidad podríamos darnos cuenta de que hemos olvidado cambiar esto de nuevo para empezar. Estábamos tratando ilustrar algo antes con la actualización, pero si ejecutamos este código ahora, cada fotograma se va a echar a perder más triángulos, que no va a ser en absoluto lo quieres asegurarte de que cambies eso de nuevo para empezar. No sé si has cambiado a actualizarte cuando lo hice, pero si no lo hiciste, eso es genial ya que está destinado a ser detenido. Ahora, ve aquí de vuelta a Unity y vamos a ir a la prefabricada de salida, y queremos asignar un triángulo para desovar, pero en realidad no tenemos un triángulo prefabricado aquí. Por suerte, al igual que hicimos el piso prefabricado, hacer una prefabricada es muy fácil. Simplemente regresas a tu escena, vas al triángulo y arrástralo así. Hará un prefab para nosotros. Entonces. Adelante y borra este triángulo porque realidad ya no lo quiero en mi escena. Creo que es un poco raro tener uno en el primero y ninguno de los otros. Obviamente, lo van a echar a perder a medida que avanzamos, pero eso está bien por ahora. Y luego voy a seguir adelante y abrir mi prefabricada de piso. Y voy a querer arrastrar un triángulo por aquí. Ahora. Lo que quiero hacer es asegurarme de que pueda jugar mi juego y engendrar triángulos como quiera. Pero el único problema con nuestro código de desove no será nuestro código más bien están estropeando el sistema en este momento es que tenemos que gripe objetos. Uno de ellos va a estar ejecutando el guión triángulo así como el otro. De hecho, todos los libros de piso van a ser lo que ha pasado en éste. Vamos a empezar el código y podría triángulo pequeño aquí mismo, que no va a ser genial para nosotros. Pero si hacemos cambios en éste porque es un prefabricado, va a hacer cambios en todo este prefabricado que no queremos hacer. Vamos a hacer lo que se llama desempacar la prueba. Y esto podría sonar un poco confuso, pero básicamente, todo esto está haciendo es decir, no quiero hacer referencia a esta salida de animales prefabricados desempacar. Básicamente esto significa que ahora puedo hacer cambios a este prefabricado y no afectar a la prefabricada general. Bueno, esto no es en realidad un topo prefader. Lo hemos vuelto a convertir en un objeto. Así que adelante y quita el guión de desova del triángulo de tu primer bloque. Y después de que hayas hecho eso, deberías ser bueno para ir porque ya no queríamos engendrar triángulos en el primero. Pero todo lo demás debería funcionar perfectamente si nuestro código funciona correctamente. Así que vamos a seguir adelante y golpear el juego y ver si lo hace. Podemos ver tenemos un triángulo desove por ahí y uno ahí y otro ahí, que es perfecto exactamente lo que queríamos. Estos triángulos son un poco rígidos. No sé si se puede decir. Y podemos teñir y empezar de nuevo. Puede que te estés encontrando con algunos temas aquí porque en realidad no hemos terminado el bucle de juego, pero llegaremos a eso en el resto la próxima mitad de este episodio. Ahora antes de entrar en eso, quiero primero asegurarme de que nuestras posiciones de los triángulos sean un poco mejores. Así que vayamos por aquí y arrastremos un triángulo. Podemos probarlo. Vamos a la posición uno y vamos a copiar el triángulo de posición e ir a pegar posición. Se puede ver que está descargado, así que vamos a mover eso hacia arriba, encontrar el nuevo valor y. Queremos un 4.07 y en realidad vamos a sumar eso tanto a mi posición 1.074 como a la posición a 4.5 a siete. Ahora, no necesitas hacer ese procedimiento con una copia y yo solo estaba haciendo algunas pruebas, pero sí, si lo ejecutamos ahora, debería funcionar perfectamente bien. Ella nació en triángulo es exactamente donde queremos que ellos. Es podemos ver donde hay unos pocos, no unos al principio, sino a partir de ahora Rios triángulo punto exactamente lo que queríamos y morimos. Ese es el mismo tema de antes. Ahora la razón por la que este tema está teniendo lugar en realidad es porque si se piensa en ello con fluidos de desove todo el tiempo, pero cuando volvemos al principio que fluye esos desove, pero no hay nada en que aterrizar. Y por eso en realidad no terminé con el primer guión. Necesito realmente quitar este guión también del piso porque nunca quiero destruir el primer piso. Quiero destruirlo se cae de eso y lo mismo con el segundo piso. Ahora el segundo piso, puedo mantener este script de desovador triángulo rápido porque quería asegurarme de que pueda generar triángulos desde aquí. Voy a eliminar este guión completo. Pero antes de hacer eso, me aseguraré desempacar este prefabricado también. Porque de lo contrario voy a tener exactamente el mismo tema que hice con el primero. Por lo que eliminó este script completo e ir por aquí y mover ese mismo script completo. Ahora si golpeamos play, deberíamos estar trabajando bastante bien. Si morimos, podemos engendrar de nuevo a donde empezamos y seguir cucharando y cosas. Obviamente, hay unos cuantos aquí que ya están ahí ese tipo de desove sobre los demás, pero la esencia está ahí. Lo último que tenemos que hacer es en realidad asegurarnos de que estos viejos estén despejados para que sepamos que estamos limpiando todos los viejos para que no tengamos duplicado una deportes y encima de cada otro. Y la forma en que vamos a hacer eso es ordenándolos. Entonces vamos a crear un nuevo objeto y vamos a llamar a esto engendrado brilla. Así que voy a seguir adelante y asegurarme de que tenga el objeto de los flujos de cuchara. Y entonces voy a querer agregar esto como referencia a mi guión de desowner mapa en mi reproductor que puedo asegurarme de almacenar todos mis defectos dentro este script de flujo de hueso en el Hoegaarden hacer eso 000 igual que lo hicimos con el medio ambiente, con nuestro piso y nuestros antecedentes en nuestro piso. Voy a hacer lo mismo con una cucharada. Que una vez que muera puedo borrar este punto fluye y me aseguré de que todas las viejas reglas se eliminen. Voy a hacer eso abriendo mi guión de desovador de mapas. Y por aquí, estoy configurando la transferencia y la oposición, pero también quiero establecer el objeto padre, lo que significa que quiero establecer el objeto, este objeto que estoy dividiendo ahora es también un niño. Esto podría no sonar importante, pero como acabo de decir antes, lo estaremos usando como espacio de almacenamiento. No es así que hace un seguimiento de la ubicación ni nada por el estilo. Así que ve por aquí y establece flujo, paz. Dot transform, dot set padres. Y se podría decir que la transformación de puntos, pero los padres iguala cosa, pero parece pensar que esa es una vieja forma de hacerlo. Entonces esta es la mejor manera en que no sabrán el soporte abierto. Y ahora tenemos que poner algo aquí, pero no tenemos una referencia a lo que queremos almacenar estos activos. Vayamos aquí. Público. Los electrones forman este almacenamiento. Entonces vamos a ir aquí y escribir almacenamiento ahí. Y no necesitamos decir padre punto ni esa posición ni nada por el estilo. Esto sabe exactamente lo que queremos hacer. Así que tenemos nuestra variable de almacenamiento de transformación y estamos haciendo dot set parent, que es básicamente una manera elegante de decir poner todo ahí dentro. Lo último que tenemos que hacer ahora es que tenemos que seguir adelante y arrastrarlo al almacén. Y si lo hacemos, ahora deberíamos ver que cada vez que instanciamos un flujo, se pone dentro de esta cuchara fluye cosa. Lo cual es realmente, realmente genial porque entonces si morimos, bueno, quiero decir no hay cosas que van ahora, que no es un punto extra sobre si morimos, de qué podemos hacer si lo sacamos en juego ahora, podemos entrar la cuchara fluye y podemos eliminar todos estos viejos flujos que no necesitamos , lo cual es realmente genial. Obviamente aún no hemos organizado los triángulos del todo, así que nos aseguraremos de hacerlo más tarde en un segundo, usar exactamente el mismo método. Pero ahora si vas así, podemos ver que los pisos se engendran exactamente de la misma manera que se almacenan flujos duplicados normales, lo cual es super cool. Ahora, estoy seguro de que notó los triángulos que estamos viendo por su cuenta. Así que en realidad vamos a arreglar eso rápidamente. Si entramos en activos y nos vamos a nuestro flujo, podemos ver que los triángulos nacen de este triángulo engendran guiones. Así que vamos guiones triángulos nacidos y luego hagamos exactamente la misma línea de código que acabamos de hacer por aquí. Floppy start transform sí establece a Terran, excepto que esta vez queremos ponerla a nosotros mismos. Vayamos aquí y escribiremos triángulo, libretas telefónicas de Francia establecen padre. Y entonces solo voy a escribir transform con equipo minúsculas, es decir, la transformación o donde sea que se ejecute este script porque eso va a ser el piso. Copia eso a través y ponlo aquí abajo. Perfecto, Eso debería funcionar perfectamente bien si ejecuto mi juego ahora, podemos ver que todos los triángulos están en realidad desove dentro de los flujos por aquí. Posición uno, posición dos. Y si vamos por aquí, bajo uno triángulos están dentro de ellos, que es exactamente lo que quiero. La última parte de este código de limpieza que quiero hacer es asegurarme de que mis triángulos y todo lo demás se eliminen una vez que muera. Eso va a ser un poco más complicado. Así que voy a ir aquí a mi guión del Gerente Estatal y podemos ver que tenemos este procedimiento de tinte, pero quería necesitarlo desde aquí porque eso va a ser un poco confuso. Entonces en cambio, quiero ir a mi guión de desowner mapa y hacerlo desde ahí. ¿ Eso hace que sea un poco más sentido como qué grabación de guiones de nosotros podríamos hacer. No hace ninguna diferencia porque la declaración de guión está en el jugador como son los mapas Warner. Pero sólo por el bien de los intereses, creo que será más fácil si lo hice desde aquí, por lo que es menos confuso en el futuro. Lo primero que voy a hacer es que voy a hacer un nuevo procedimiento y luego lo llamaremos vacío público. Y lo voy a llamar almacenamiento claro. Entonces la sexual más fácil porque puedo ir de almacenamiento o aquí tengo mi almacenamiento se sentía como ningún almacenamiento. Puedo limpiar a cada niño del almacén. Y de la forma en que voy a hacer esto, voy a ir a punto, por niño. Entonces voy a querer que el niño vaya primero, segundo, tercero, cuarto, o quinto. Si escribo 0, consigo el primer hijo, primero para conseguir un segundo hijo, pero quiero conseguir cada uno. Y vamos a hacer eso usando un bucle for. Así que voy a ir entonces voy a querer llamar a una nueva variable. Y aún no tengo una variable, así que hagamos una variable local int x Entonces voy a decir completa. Y si recuerdas la sintaxis de bucle for , esto debería tener sentido. Voy a repasarlo de nuevo porque estoy seguro que muchos de ustedes lo han olvidado porque estaba arriba en 15 episodios atrás. No lo sé. Cuatro x es igual a 0. Eso significa que quiero conseguir el primer hijo y me voy x menos que ahora. Quiero hacer esto para tantos niños como el almacenamiento tiene caimanes de almacenamiento, dot child count. Eso me va a dar números si va a ser uno, este código siempre se va a ejecutar una vez porque es 0, es menos que el recuento de hijos porque se va a ejecutar una vez y luego va a ser uno porque lo voy a aumentar al final. Voy a conseguir x plus plus. Ahora recuerda con for-loops y confunde que mucha gente hace es que separen los parámetros usando comas. Por lo que dicen x menos de 0 coma x más, pero en realidad usamos semi-colones. Así que asegúrate de tener x es igual 0 espacio de punto y coma que x menos espacio de punto y coma de Recuento de hijos X más más. Y solo recuerda eso porque eso es un error que mucha gente comete. Esto es en realidad todo ¿Podríamos necesitar destruir cada uno de estos objetos hijo porque podemos ir por x menos que el recuento de almacenamiento X aumento. Entonces si tenemos dos hijos, va a ser 0 aumento por 11. Y luego porque es también es comparablemente menor que los atajos. Así que esencialmente en el trabajo que he puesto x por aquí, punto de almacenamiento conseguir niño x Y vamos a seguir adelante y destruir esto. Vamos a teclear la paja abierta soporte de almacenamiento punto obtener objeto niño. Y si todo funcionara, siempre que llamemos a este estado, debemos despejar cada uno de los objetos. En realidad vamos a querer llamar a esto tan pronto como respondamos. Porque si pensamos en cuando llamamos si morimos, vamos a caer por el suelo. Entonces por aquí en el reframe, lo último que tenemos que hacer es que tengamos que crear un enlace a las formas de partido. Así que vamos a los mapas de República nacidos, lo llamaremos matemáticas. Y vamos a entrar aquí para responder y vamos a ir matemática dot Clear Storage. Ahora antes de volver a Unity, primero tenemos que asegurarnos de que estamos destruyendo el objeto del juego, no la transformación porque podemos ver este código aquí. Dice punto de almacenamiento get child, pero eso nos va a devolver una transformación. Para ir a arreglar esto, simplemente vamos niño dot GameObject. Y eso se va a referir en realidad al objeto del juego, no al componente de transformación. Basta saber que si decimos perro conseguir hijo, eso devuelve el tipo equivocado de cosa, eso devuelve un niño transferido. No devuelve al niño real. Por aquí estamos obteniendo el objeto de juego, que es el objeto niño real. Queremos destruir a la comunidad backend. Solo tengo que arrastrar este mapa engendrado hacia arriba a la variable de mapa almacenada en el reproductor para asegurarme de que estén vinculados. Y luego si voy adelante y golpeo Play, debería ver que esta cuchara fluye poco a poco se está poblando por diferentes pisos. Ver hay dos y si muero, todos deben ser despejados, lo cual es realmente genial porque significa que esto está funcionando tal y como queríamos. No hay más flujos duplicados, lo cual es realmente genial. Si has notado unas cuantas áreas pequeñas, juego nuevo, por ejemplo, me he dado cuenta de que a veces no puedo saltar al tercer piso o a otras después de eso. Eso está completamente bien. Vamos a abordar aquellos en el próximo episodio, todos los episodios siguientes. Por ejemplo, en realidad nunca hemos controlado si podemos o no podemos saltar cuando lo hicimos obviamente no queremos que eso fuera cierto porque en este momento no era una parte súper importante de nuestro juego. Obviamente arreglaremos todos esos más tarde. Para cuando hayas completado este curso, tendrás un juego completamente libre de bug-free. Si tu prueba nuevo juego ahora y pocas cosas son un poco dudosas, no te preocupes, todas se resolverán. Y si tienes un script de desove de flujo, lo has hecho genial. Ahora si sigues y tu código funciona igual que el mío, lo último que tenemos que hacer es añadir un poco de variedad a nuestro mapa, y lo vamos a estar haciendo más adelante en el curso. Obviamente, como he dicho, hay algunas áreas que aún necesitamos resolver. Algunas cosas pueden mejorar, pero en realidad se ha creado nuestro bucle básico de juego. También hay algunos cambios de equilibrio que quiero abordar. Al igual que, no creo que siempre sea posible saltar de ambos. Entonces vamos a más tarde en episodios tal vez aumentar la gravedad y aumento salto falso y cosas así a los que son juego. Pero si todo está funcionando y tienes un juego semi funcional que puedes desovar y volver a intentar muchas veces quieres un gran trabajo. Lo has hecho asombrosamente, y te veré en el siguiente video. Voy a mover nuestro juego se va a hacer antes de lo que piensas. Buen yogur alrededor. 14. Mejoras menores: Oye ahí, y bienvenidos de nuevo a la unidad. Ahora, en los últimos diez o tantos episodios que hayamos creado este bastante desnudo huesos, pero en realidad un juego móvil bastante impresionante con este, el primero o uno de los primeros juegos móviles que se han hecho gran trabajo. En realidad es una locura pensar cuánto has logrado. Has hecho un juego móvil desde cero usando tu propio código y puedes generar un mapa. Puedes saltar por encima de obstáculos, puedes responder, puedes saltar, moverte. Es realmente, realmente genial, Buen trabajo, todo el mundo, has estado haciendo increíble. Ahora bien dicho, hay algunos problemas con nuestro juego móvil en su estado actual. Y es posible que realmente los hayas notado cuando juegas prueba en tu propia construcción. Y ahí sólo unos bichos. Y la mayoría de estos errores son en realidad errores de lógica que han sucedido. Hemos hecho algo de repente y luego lo cambiamos y luego se crea un poco de error lógico. Y no son los bichos más fáciles de notar. Pero si se puede entender lo constantemente haciendo una vez que los explique, van a tener mucho sentido, así que me sumerjo justo en ello. El primer bicho que podrías haber notado, si vas adelante y golpeas Play, si me estoy deslizando, en realidad no tienes que presionar saltando para deslizarte, pero si haces eso, no puedes saltar a espacio presente. No voy a saltar. Esto no es un problema con mi barra espaciadora. No es problema con nada malo. En realidad es un problema con esta variable a tierra. Se puede ver por aquí, si estoy jugando, voy a ver terreno se establece en verdad. Y cuando lo dejo se puso falso y se fue otra vez, etcétera, cierto por dy me arriesgaré amplio. Ahora si voy así, en realidad pone lo falso y luego no podemos saltar. Y la razón de esto es porque nuestro terreno la variable se basa en si estamos entrando o saliendo de una colisión. Entonces si se piensa en deslizarse por encima, vamos a lo largo, yendo adelante, entramos en una nueva colisión por aquí, y luego salimos de uno. Pero porque salimos después, eso va a anular y decir, está bien, estamos en el animal de tierra. Eso es algo muy, muy simple de arreglar. Todo lo que tenemos que hacer es que necesitamos un cambio ligeramente el nombre de nuestros procedimientos para que no tengamos que hacerlo cada vez que entramos en una colisión, queremos asegurarnos de que estemos castigados. Cuando siempre estamos en una colisión, vamos a hacer eso muy fácilmente. Nosotros vamos al movimiento abierto, vas a guion de movimiento. Y vas a querer cambiar esto en colisión entrar dos en colisión, mantente encendido. El estado de colisión es prácticamente exactamente lo mismo. Es igual de frío. Cada fotograma que estamos en el terreno, cada cuadro es almuerzo alrededor del suelo se asegurará de que le estamos diciendo al juego que estamos castigados, eso es sta AY. Y simplemente reemplace enter con estancia. Así sucesivamente colisión permanecer 2D. Perfecto. Ahora si seguimos adelante y volvemos a hacer clic en Jugar, deberíamos ver que todo debería estar funcionando bien. Ahora podemos saltar, lo cual es genial. Ahora lo segundo que quiero abordar es UCI que estoy haciendo en este momento, pero me parece que a veces cuando hay picos, es bastante difícil saltar por encima de ambos. Y eso tiene que ver con la escala grubby y la velocidad pagará. Eso no es un error, eso es sólo un tema de equilibrio. Entonces voy a seguir adelante y arreglar eso ahora mismo. Voy a ir con mi jugador. En realidad voy a hacer que la gravedad escala tres, así que es un poco más fácil de controlar. Entonces para compensar que voy a aumentar mi fuerza de salto, pero no por demasiado automatizar mi salto 13. En realidad he probado esto y he encontrado que es la forma más eficiente de arreglar esta área. Ya puedes ver, es bastante más fácil controlar cuando quiero saltar porque lo estoy haciendo con más frecuencia. Y esto no hace que el juego sea un poco más difícil a veces, pero también es mucho más fácil de controlar, lo que en mi mente es algo muy bueno. Te recomendaría que vayas y hagas eso porque he encontrado que es mucho mejor para la jugabilidad. Una vez que hayas hecho eso, puedes ver que estoy saltando con estos con absoluta facilidad ahora, lo cual es realmente genial. Ahora lo otro que quería asegurarme de que hagamos es que no quiero poder saltar todo seguir moviéndose mientras estemos muertos. Esto en realidad es realmente fácil de leer también, gracias a nuestra máquina estatal. Si voy adelante y he abierto mi Gerente Estatal, verán que mientras muera, mi estado está listo para morir . El motivo por el que dejé de moverme es porque tengo aquí un guión de movimiento que dice si el estado del estado punto es igual al movimiento sencillo, pero de lo contrario no he dicho nada más. Lo que está pasando si golpeo esa cosa, simplemente ya no voy a anular mi rígida velocidad corporal. Así que sólo tipo de diapositiva. Sigo adelante por el impulso o la inercia más bien, pero simplemente sigo adelante. En realidad estoy escribiendo otra declaración otra cosa. Y entonces mientras no esté jugando, quiero asegurarme de que mi velocidad sea siempre 0. Rb. No la velocidad es igual, y podría escribir nuevo vector dos ceros, pero en realidad solo voy a escribir vector dos puntos 0, y eso es exactamente lo mismo. Esta es sólo una forma más fácil de decirlo. La teoría de Vacuolar es básicamente para asegurarme mientras no esté jugando, soy un taburete muerto. Y esto es realmente genial porque eso significa que en realidad vamos a estar anulando nuestro código de movimiento para que cada fotograma que estamos muertos, no sólo vamos a no seguir adelante, vamos a parar muerto en su lugar en el eje x. Y vamos a establecer nuestra velocidad y a 0. Para que podamos ver aquí arriba nos detenemos, lo cual es realmente genial. El problema es porque estamos sentados en y velocidad 0, cada fotograma que en realidad no realmente va a llegar hasta que no lo movamos todo. La gravedad de la unidad todavía se deslizará lentamente así. Se puede ver por ahí, todavía me estoy moviendo hacia abajo. Eso es un poco un problema. Pero puedo arreglar esto muy fácilmente diciendo que la escala de gravedad de punto RB equivale a 0. Se podría pensar que eso es todo lo que se vende. Pero hay que recordar volver a poner esto a lo que queríamos en cuanto vuelvas a jugar. Vamos a hacer eso yendo aquí a reclamar y fijar nuestra escala de gravedad a tres. Mientras estén jugando muy balanzas , ¿o son tres? Y cuando no lo estamos, nuestra escala de gravedad siempre se establece en 0. Voy adelante y abro mi juego una vez más. Podemos ver que estoy bien. Y si muero, como señor, me detuve y luego vuelvo a mi escala de conducción, lo cual es realmente, realmente genial porque voy a ilustrar cómo se ve esto cuando morimos mucho mejor en mi opinión. Ahora, la tercera y última cosa o comentario si es para, por este punto. Pero otra cosa que quería abordar en este absoluto, quiero que los hagas un poco más cortos porque creo que estos son un poco demasiado largos. Entonces voy a hacer estos 2.8. Solo voy a cambiar ambos individualmente porque los desempaco de la prefabricada, por lo que ya no están ligados a ese prefabricado. Simplemente entra en la prefabricada y escribe 2.8 por aquí. Y eso realmente debería arreglar todo lo demás para ti, lo cual es realmente genial. Ahora tenemos un poco más de un salto y tenemos que saltar a través de ellos, lo cual es mucho mejor. Es como si fueran pequeñas islas. Ahora eso nos lleva a la segunda última cosa que quiero cambiar en este episodio, y eso es fricción. Ya verás si voy así y me caigo, no sé si voy a ser demasiado pesado, pero sí, perfecto. Voy a quedarme aquí. Y esto no es genial. Y la razón por la que está sucediendo es por mi fricción. Ahora voy a colocar la fricción se establece en el ajuste de fricción predeterminado. Debido a que está configurado en el ajuste de fricción predeterminado, básicamente estoy continuando moviéndome hacia la derecha. Estoy tratando de saberlo, pero estoy rellenos. Entonces como resultado, solo estoy como que me quedo en su lugar. Entonces para arreglar esto, voy a estar haciendo un nuevo material de física. Voy a hacer esto haciendo clic derecho en crear en 2D y luego material de física hoy. Y voy a llamar a esta capa. Y todo lo que voy a hacer es que voy a poner esta fricción dos ceros. Entonces iré con mi jugador y arrastraré eso a mi cuerpo rígido. Se puede ver lo que pasa ahora es a medida que me estoy moviendo, ya no debería quedarme ahí. Debería deslizarme anotar, lo cual es perfecto. Eso es exactamente lo que quería pasar. Ahora cambiamos bastantes cosas, pero hay una última cosa que quiero asegurarme de que abordemos en este episodio, realidad va a ser una forma más optimizada de arreglar una cosa. Antes. Anteriormente, por aquí cambiamos nuestra escala de gravedad RV A, pero lo hicimos cada fotograma. Eso realmente no es genial porque eso significa que estamos anulando a alguien ya está sucediendo. No es bueno para, para el rendimiento. En cambio, lo que quiero hacer es hacer un procedimiento que lo haga por mí. Y voy a hacer esto con un nuevo concepto llamado parámetros. Voy a entrar aquí y voy a crear vacío público, llamarlo reiniciar gravedad. Voy a ir por aquí. Voy a poner aquí la escala de gravedad del perro RB. Eliminar ese de allá. Ahora, voy a querer llamar a esto cada vez que cambie de estado. Entonces si voy a mi gerente estatal, tenía saber exactamente cuando mi estado está muerto y dónde está jugando mi estado. Lo primero que voy a hacer es hacer un enlace desde la declaración I GO TO movimiento. Ya tengo un enlace al revés, pero quiero hacer un enlace de esta manera es Algoma Public Movement, y lo llamaré movimiento. Entonces lo que voy a querer hacer, voy a querer llamar a este procedimiento tanto cuando muera como muevo restablecimiento gravedad. Y por aquí, mueva la gravedad de restablecimiento de puntos. Pero voy a querer configurarlo a dos cosas diferentes están aquí quiero ponerlo a 0, y aquí quiero ponerlo a tres. Y la forma en que vamos a hacer eso, podrías escribir dos procedimientos, pero una forma mucho mejor de hacerlo es solo usando parámetros. Así que voy a ir por aquí a mi reciente gravedad y voy a entrar en estos dos corchetes y voy a escribir int x Bueno, esto en realidad va a hacer es que va a decir, de acuerdo, cuando Fui a llamar a este procedimiento, ingreso un valor para este parámetro. Es algo así como un valor de entrada. Se puede ver aquí arriba, dice que no hay argumento dando lo corresponde a lo requerido formal orgulloso de x Si hago doble clic en esto, puedo ver dónde está el aire. Está por aquí. No estoy diciendo lo que quería poner x aquí, introducir el valor de 0 aquí, y el valor tres ahí. Todo está bien. Ahora he llamado a este procedimiento aquí y dado a diferentes valores por aquí, me he puesto a 0 y aquí he dicho los tres. Entonces todo lo que necesito hacer es volver al movimiento. Y en mi restablecimiento gravedad necesitaba dicho albedo escala de gravedad es igual a x Ahora hemos logrado dos cosas completamente diferentes con el mismo procedimiento usando parámetros. Ahora este es un tema completamente nuevo, pero quería cubrirlo en algún momento de este episodio porque pensé que sería útil más adelante en caso de que necesitáramos básicamente es como valor de entrada. Entonces me dan diciéndote qué hacer y dándote un poco de información para hacerlo con. Y eso nos permite crear una forma mucho mejor de restablecer la gravedad. Ahora todo esto atributos necesito reabrir Unity. Bien, mi jugador se asegura de que arrastré mi movimiento por aquí. Y si voy adelante y pego Play, podemos ver ahora hemos logrado exactamente el mismo resultado con una forma mucho mejor de hacerlo. Podemos ver que nos detenemos igual que tuvimos, y empezamos de nuevo, lo cual es genial. Entonces esto podría haber parecido un poco de un episodio extraño, pero solo quería usarlo para enseñar los parámetros constantes y arreglar todos los pequeños problemas. Y creo que te vas a enterar de este episodio, vas a juego es mucho más agradable de jugar. Enhorabuena, has terminado el módulo base de este curso, creando un juego móvil. Hemos hecho un juego móvil donde puedes jugarlo. Tener un bucle de juego. Se puede, cuando se puede perder. Pero viene mucho más y ahora nos metemos en lo divertido. Estoy seguro de que has notado que ni siquiera hemos hecho nuestro trasfondo se mueva con nuestro jugador todavía. Ese es un cambio muy sencillo. Obviamente no lo voy a hacer ahora. Maestro fuerte, el final de este episodio. Pero en el próximo episodio y episodios a seguir, vamos a empezar a prepararnos con todas las cosas realmente divertidas que vamos a añadir en nuestro sistema escolar. Vamos a sumar mejoras visuales, audio, música, todo lo que realmente hace un juego móvil pop está llegando en la segunda mitad de este curso. Pero al final de este episodio, realidad deberías haber terminado la parte central base de tu juego, lo cual es realmente, realmente genial. Gran trabajo a todos. Increíble. Y si eres juegos móviles trabajando igual que el mío es un trabajo increíble como siempre, por supuesto, enlazar todos mis scripts en la descripción o los recursos más bien para que puedas vincularlos. Y buen trabajo. Una vez que termines este episodio, estás casi a mitad de camino allí. La parte difícil de este curso es en realidad ahora postura y nos estamos metiendo en lo divertido. Gran trabajo a todos. Te veré en el siguiente video. 15. Puntuación: Oye ahí y bienvenidos de vuelta a Unity. Nuestro último episodio, dijimos que nuestro juego o los conceptos centrales están más o menos hechos y eso es cierto. Pero hay bastantes formas en que podemos mejorar nuestro juego para hacerlo aún mejor. Obviamente, ni siquiera es un juego móvil todavía porque no lo hemos tirado para subir. Pero vamos a cambiar todos estos cool, en realidad divertida parte del desarrollo de juegos móviles. Obviamente las partes anteriores han sido divertidas, pero estas mi opinión, todas las mejores partes del desarrollo de juegos móviles. Es lo realmente creativo que puedes añadir en el diseño de sonido, mejorar tu juego, cómo quieres, todas las cosas realmente divertidas. Entonces todo eso va a ser en la segunda mitad de este curso. Y eso va a empezar hoy con nuestro sistema escolar. Antes de sumar en nuestro sistema escolar, primero quiero asegurarme de que nuestro juego, podamos hacer algunas mejoras menores a. A partir, voy a arrastrar el fondo debajo la cámara principal para que lo tenga como objeto niño. Y lo que esto puede hacer es asegurarnos de que nuestra cámara principal siempre sea seguida por un objeto hijo. Si vamos a nuestro juego aquí y hacemos clic en Jugar, podemos ver esto en acción. Ahora nos siguen el fondo, que es realmente genial, realmente forma sencilla de arreglarlo. Ahora, el segundo cambio que quiero hacer es que quiero ir a mis antecedentes. Y quiero seguir adelante y voy a ir Agregar Componente Edge colisionador 2D. Y entonces puedo ver aquí mi nube de borde. En realidad es casi Hola, quería, solo quiero arrastrarlo hacia abajo. Así que voy a ir offset, arrastrarlo al fondo en aproximadamente menos 1.9 o menos dos, si quieres. Esto básicamente va a actuar como un muro de la muerte para que si un jugador cae por estos huecos, muera. No sólo caen en el abismo. Voy a etiquetar esto como un obstáculo y voy a asegurarme dispare y me quedaré máquina se dispare y me quedaré máquinaen realidad va a cuidar de todos los restaurantes. Si le pegamos a Play. Ya podemos ver, si me caigo por aquí y un teléfono a la Gap, hecho muero y vuelvo al principio, lo cual es realmente genial. Ahora esas son algunas cosas menores que quería hacer. Pero obviamente el punto principal de este episodio va a ser agregar un sistema de puntuación. Así que vamos a entrar bien en eso. Antes de hacer eso, necesitamos crear componentes de la interfaz de usuario de unidad. Por lo que obviamente nunca lo harás antes. Por lo que iremos a Window Package Manager. Necesitamos bueno aquí a este menú Unity Registry si podría estar ahí por defecto. Entonces haz clic aquí y luego ve al texto Mesh Pro y haz clic en Instalar. Ahora bien, esto es básicamente Unity solución dos objetos de texto. Es muy potente y fácil de usar herramienta como esta por aquí. Y en realidad es más o menos el predeterminado que quieren que uses. Si no estás usando esto, entonces es lo que se considera un legado o como una versión anterior. Entonces vamos a querer usar esto. Entonces vamos a hacer clic derecho aquí podemos ir UI text, text Mesh Pro. Eso va a crear esto y va a hacer estallar esta ventana. Haga clic en Importar, elementos esenciales de TMP. No tienes que agregar los extras. Y luego si nos desplazamos hacia arriba, podemos ver nuestro texto por ahí. Ahora, no me gustó este lienzo. Este lienzo básicamente actúa como un espacio de almacenamiento para todos nuestros componentes de la interfaz de usuario. Y este es el texto. Si lo sacamos del lienzo, ya no podemos verlo. Así que asegúrate de mantenerlo ahí dentro. Cambia el nombre de tu lienzo a UI esto, lo que me gustas, no tienes que hacerlo. Y vamos a cambiar el nombre de nuestros textos para anotar. Entonces vamos a ir a nuestra interfaz de usuario y vamos a cambiar este modo aleatorio de superposición de espacio de pantalla a cámara espacial de pantalla y luego arrastrar nuestro Cameron, Este es mi modo aleatorio preferido. Puedes quedártelo si lo deseas, pero te recomiendo que lo cambies. Y luego vamos a seguir adelante y mover nuestro marcador a por ahí. Ahora esto sí se ve bien, pero a veces la unidad tiene unos bichos donde si sales y vuelves a entrar, en realidad se mueve para asegurarse de que haces eso y luego moverlo. Esta es la posición realmente correcta. Ahora voy a probar esta tapa en un cambio esto al tamaño de fuente 75 es bastante más grande. Quiero hacerlo audaz, y voy a seguir adelante y hacerlo mucho más grande para que podamos almacenar eso ahí. Y voy a arrastrarlo todo el camino allí. Esto va a actuar como nuestro marcador. Si escribo tienda y luego entro a una escuela imaginaria, podemos ver por aquí cómo se ve eso en un juego. Creo que se ve bastante bonito. Podemos moverlo un poco a la derecha, y eso está perfectamente bien. Ahora tenemos que empezar a codificar la lógica real en cuanto a cómo va a funcionar esto. Así que vamos a crear un nuevo objeto y vamos a llamar a esta ganancia de puntuación. Entonces voy a entrar en el guión. Voy a ir a hacer clic derecho crear guión C-sharp. Nanocoulomb es una escuela. Ahora este script básicamente va a decirle a este texto qué mostrar. Y vamos a resolver el marcador del jugador en base a lo lejos que estén de la pista escolar que se ve por ahí. Muévete, pero en realidad no es eso. Pero si sumamos belleza de gouache, este rastreador de puntuación queremos posicionar en el lugar puntos de partida. Voy a ir aquí y voy a poner menos 8.52 eso en lo siguiente y luego simplemente moverlo hacia abajo. El valor y realmente no importa. Esto es básicamente un acto como nuestro camión y ver hasta qué punto el jugador se ha movido de ella o cuán lejos la fase movió nuestra distancia, que es nuestra escuela. Así que adelante y asegúrate de que eso sea menos 8.52 o donde sea que te coloques en base a plantas, asegúrate de copiar eso. Entonces ve a aquí y arrastra tu guión de partituras hasta allí y luego ábralo justo arriba. Ahora, una vez que esto se abra, vaya a la cima y vamos a importar algunas cosas. Vamos a usar cosas que no sean colecciones de sistemas y genéricos y murales mecanografía del motor usando Unity engine dot UI, en primer lugar, y luego también escribir usando producto TM, eso es texto Mac Pro. Esto nos va a permitir anotar guión cómo queremos sin confundirnos. Entonces vamos a crear una transformación pública. Y vamos a llamar a este un jugador. Debajo de eso, vamos a crear un int público y tirar esa escuela y una prueba de malla de texto público. Vamos a llamar a este texto o más bien el texto completo no es mejor nombre. Entonces vamos a entrar en nuestro procedimiento de actualización y vamos a escribir puntuación igual. Y ahora vamos a querer restar transformar y el lugar transformarse, pero eso nos va a dar un flotador. Así que antes de escribir, vamos a escribir matemáticas F dot around to int. Y eso básicamente va a asegurarnos de que podamos redondear lo que sea el valor del flotador a una pulgada. Y entonces sólo nos vamos a ir. Jugador dot transformó oposición de X menos nuestra transformación proposición que x. y eso va a resolver nuestro marcador cada cuadro individual, marco para nosotros, lo cual es realmente genial. Entonces voy a bajar aquí y voy a ir a desplazar texto. Ahora quiero almacenar lo que sea este marcador en esta cosa. Así que voy a ir al texto de la escuela punto txt igual, y ahora voy a poner mi valor escolar en, pero no quiero normalmente quería hablar con fuerza, que significa que lo estoy convirtiendo de un entero a una cadena. Esta pequeña cantidad de código realmente nos dará una escuela, pero queremos agregar un poco más. Queremos asegurarnos de añadir puntuación, entre comillas. Asegúrate de ponerlo entre comillas, un colon y luego un espacio, y fuera que vamos a poner un plus. Por lo que comita anotar espacio con un codon plus y luego escuela. Y eso lo va a hacer para que se vea mucho más bonito. No sólo nos va a dar un número, nos va a dar una puntuación y un colon, igual que tenemos por aquí y editarlo. Ahora antes de volver a Unity, en realidad me he dado cuenta de que estamos usando la única cosa aquí, las mujeres para usar un texto Mesh Pro, tú GUI. Sólo asegúrate de cambiar eso. Eso es sólo una cosa menor que olvidé añadir y que hará nota emitida. Cualquier otra cosa que sólo va a hacer un problema a tu código. Entonces abre Unity y deberías ver tu pista escolar por aquí. Asegúrate de arrastrar tu juego a la transformación y tu partitura al texto de la tripulación Mesh. Tú boya. Y por ahí se puede ver esa etapa glitch click de nuevo, se restablecerá. Ahora si le pegamos a run, esto realmente debería hacer todo por nosotros. Podemos ver cómo la escuela comienza a las 0 y realidad está aumentando igual que 12 si morimos. Entonces está de vuelta a 0. Y eso es realmente, realmente genial. Ahora lo último que tenemos que hacer es que tenemos que asegurarnos de que tengamos una escuela secundaria. La forma en que vamos a hacer eso es que vamos a hacer una variable más. Vamos a ir a la secundaria pública. Entonces sólo vamos a tener un nuevo procedimiento. Lo llamamos su vacío público. Vamos a decir, si la puntuación es mayor que la secundaria, entonces la secundaria, lo siento por estos. Entonces la secundaria es igual a anotar. Eso básicamente va a asegurarse de que tan pronto como moramos, comprobamos si nuestras escuelas mejores que nuestra preparatoria actual y si está dentro de una búsqueda de nueva preparatoria, nosotros siempre hay que llamar a esto desde nuestras máquinas estatales. Vamos a ir a Gerente Estatal y crear una referencia a este gerente de escuela pública para lo que acabamos de atrapar a nuestra escuela, pero es un gerente escolar. Y luego por aquí en el dado, vamos a decir después de este restablecimiento gravedad, vamos a decir Score dot n Eso básicamente va a ejecutar ese procedimiento. Por lo que en cuanto morimos revisamos nuestros puntajes mayores que una secundaria. Obviamente, una secundaria se va a fijar a 0 al principio. Entonces si volvemos a u y d, sólo tenemos que asignar un valor a nuestra referencia por aquí. Entonces si vamos a nuestro jugador, podemos ver que nuestra máquina estatal no es una ciencia que se asegure de arrastrar en su camión escolar por allá. Para que podamos almacenar nuestra cosa. Y si hace clic en Jugar, en realidad deberíamos tener un sistema de bachillerato totalmente operativo. Si vas aquí a rastreador escolar, mira cómo preparatoria 0 y nuestro puntaje es 14. Si morimos nuestra preparatoria, etcétera, 18. Y luego si morimos antes de llegar a los 18, no se restablece, lo cual es realmente genial. Ahora lo último que vamos a hacer es que sólo vamos a hacer una copia del texto de partitura para arrastrarlo hacia abajo. Y vamos a llamar a esta secundaria. Haga clic aquí. Asegúrate de cambiar esto a puntuación más alta. Entonces sólo vamos a tener eso justo debajo. Quiero hacerlo un poco más pequeño por lo que es menos prominente. Piensa que eso me queda bien. Y luego tal vez un poco abajo. Y luego por aquí, si es mayor, sólo vamos a asegurarnos de que configuramos nuestra nueva sonda de malla de texto público. Usted come. Vamos a hacer una llamada Secundaria como calor. Sólo vamos a poner un comentario como hicimos última vez, texto de secundaria. Entonces por aquí vamos a decir que punto de texto escuela secundaria equivale a punto a cadena de secundaria y luego paréntesis. Esto es básicamente para asegurarnos de que mostramos lo que es nuestra preparatoria cada vez que ahora debemos asegurarnos de asignar esa preparatoria. Así que una vez que se cargue de nuevo, ponga esa preparatoria, voy a cambiar el nombre de la mía también la secundaria, así que sé exactamente lo que es. Eso debería funcionar perfectamente bien. Volvemos a tener ese problema, pero eso está bien. Vuelve a nuestro juego. Y podemos ver que nuestra preparatoria es 453 en este momento porque no lo estamos anulando. Si nos estrellamos, entonces se establece en 18. Y si vamos más que eso, podemos ver que ahora es 27, lo cual es realmente cool. Lo último que tenemos que hacer es agregar esos mismos textos que teníamos aquí. Asegúrate de copiar eso a través. Por lo que tenemos puntaje más preparatoria y luego solo vamos a cambiar esto a la secundaria. Entonces todo debería estar funcionando perfectamente bien. Este código corto de aquí, en realidad vamos a hacer toda nuestra secundaria por nosotros. Y con esa pequeña llamada de método del Gerente Estatal, que hemos vinculado, todo estará funcionando perfectamente bien. Simplemente adelante y ábrelo. Y si corremos, podemos ver nuestras preparatorias Carney por tres porque eso es lo que entidad que si haces esa secundaria 18, sigue adelante. Tratemos de pasar los 18 en esta ocasión. Sólo a los 29. Si muero, son 37 y se salvó si voy a los 18 y fumo va a sobrescribir, lo cual es realmente, realmente genial. Por lo que otro gran paso hacia la dirección correcta para un juego móvil. Gran trabajo, todos, y los veré en el siguiente video donde vamos a cubrir ahorros que nuestra preparatoria se ahorre incluso con cierre y recargue el juego. Te veré en el siguiente paso. 16. Guardar: Oye ahí y bienvenidos de vuelta a la unidad, o en este caso Visual Studio. Ahora en este episodio bastante corto, solo vamos a repasar un sistema de ahorro rápido para que nuestro juego empiece a abrir el guión escolar que creaste al igual que tengo ahora. Ahora aquí arriba podemos ver puntuación es matemática, F dot round end, player dot transform que nos lleva la escuela y podemos tener nuestro Score Text sido asignado aquí. También creamos esta variable de secundaria, que básicamente va a comprobar si tenemos un puntaje alto o no, lo cual es realmente, realmente genial. Es realmente, realmente sencillo asegurarnos de que podamos ahorrar como preparatoria cuando cocinamos el juego y podemos recuperarlo una vez que lo carguemos. Y eso es usar algo llamado prefs de jugador. Ahora una unidad que tiene este sistema incorporado para ahorrar y podemos usarlo para juegos móviles porque mientras se almacena localmente en el dispositivo, nadie va a poder hacer codificar eso porque va a estar encendido un teléfono, así que es genial. Por lo que aquí tenemos un sistema para ver si nuestro puntaje es más alto que una secundaria. Debajo de esto, básicamente somos una secundaria de cierre de sesión. Y esto es básicamente decir, está bien, tienes una nueva escuela secundaria. Y si tenemos una nueva secundaria, vamos a querer salvar eso. Entonces vamos a escribir en mayúscula P, jugador prefs, punto, y luego establecer int. Ahora podemos básicamente poner lo que queramos llamar a un entero dentro de estos corchetes. Entonces voy a nombrar el mío. El puntaje pondrá una coma y luego ponemos el valor que queremos poner dentro de las escuelas. Voy a escribir en la secundaria. Si podemos ver estamos salvando nuestra preparatoria en el juego escolar aproximado. Entonces por aquí en la parte superior vamos a decir estrella nula bajo el personal cuando iniciemos el juego. En otras palabras, cuando dejemos de jugar de nuevo, vamos a asegurarnos de que consigamos esa variable entera y establecemos la puntuación más alta para que sepamos cuál es nuestra preparatoria. Por aquí. Vamos a decir jugador prefs, dot y getint, open brackets score. Eso básicamente va a devolver lo que pongamos dentro de la puntuación. Y voy a seguir adelante y pondré la secundaria igual a eso. Eso va a ser realmente genial. Pero ahora está en el inicio de cada juego que dijimos en la preparatoria a donde lo guardamos como cada vez que se obtiene una escuela secundaria. Debajo de esto, simplemente puedo decir texto de secundaria. En realidad podemos simplemente copiar esta línea. De hecho, arrástralo por aquí, texto de secundaria. Y ahora estamos poniendo la preparatoria en la estrella. Estamos mostrando lo que es con estos simples qué, tres líneas de código. Obviamente podríamos añadir también arcilla o tal vez dot save al final. En realidad no hace tanto. En mi experiencia, he encontrado que lo salva sin esto, pero si quieres, puedes hacerlo. No lo sé. A lo mejor es algo que no me he topado con lo que ahorra. Entonces tal vez solo ponerlo ahí por buena medida, pero en realidad no es esencial en mi experiencia. Después con estas cuatro líneas de código, nos fuimos, ella creó nuestro propio sistema de ahorro. Tenemos nuestro ahorro de secundaria cada vez que obtenemos uno nuevo y leerlo cada vez que empezamos el juego, esto realmente va a funcionar perfectamente. Ahora en el próximo episodio, vamos a ir todas las mejoras visuales. Y después de eso, vamos a entrar en todo tipo de otras cosas ahora de nuevo, pero es realmente bueno tener este crucial sistema de ahorro establecido en un juego de una manera tan simplista. Espero que hayas disfrutado este episodio realmente corto, y te veré en el siguiente. 17. Mejorar los elementos visuales: Oye ahí, y bienvenidos de nuevo a la unidad. Ahora en este episodio, esta va a ser una de las cosas más geniales que vamos a añadir a nuestro juego móvil. Vamos a mejorar los visuales diez veces más que eso en realidad. Quiero decir, si volviste a hacer eso ahora mismo, no se ve mal, pero no se ve muy bien. El problema con nuestro juego en este momento es que tiene amarillo sobre azul y verde, y tenemos rojo. Simplemente no es un gran esquema de color. Sólo voy a mantener esto como amarillo porque creo que las plaquetas bonitas, pero quiero cambiar algunas cosas. Podría cambiar el tiempo de las cosas. Entonces para empezar, voy a hacer que el fondo sea negro porque creo que eso se verá bastante cool. Así que voy a seguir adelante y arrastrar eso de derecha a abajo. Ahora tenemos un fondo negro. Ahora, lo segundo que voy a hacer es que voy a ir con el jugador y voy a hacerlos un poco más brillantes así. Creo que eso se ve bien. Entonces voy a ir a estas piezas de flujo y en realidad voy a cambiar ese color a azul. Así que voy a ir por aquí, déjame abrir los pisos y ver que estos cambios surtan efecto. Voy a hacerlo como un bonito azul claro por ahí. Creo que eso es bastante bueno. Voy a copiar ese hexadecimal. Puedo ponerlo en el otro para ir al medio ambiente despegue pisos y luego estallar eso justo adentro. Creo que eso se ve mucho mejor. Ahora la última vez que alguien va al triángulo y lo hace un poco más rojo. Entonces ahí vamos, Eso se ve bien. Ahora declaro juego, creo que es una mejora visual muy grande que podemos ver. Ahora se ve mucho mejor. Se parece más a un juego de arcade real, como un viejo juego de arcade que a lo que teníamos antes, el raro esquema de color. Pero en realidad podemos hacer esto mucho mejor con el uso del post-procesamiento. Si no has oído hablar de ello antes. post-procesamiento es básicamente estos efectos que podemos añadir visualmente a nuestro juego para que se vea mejor. He ido adelante y creado este post objeto vacío, aún no le he agregado nada. Solo asegúrate de que si no lo has hecho ya, solo puedo eliminar el mío, muéstralo. Voy a ir a crear vacío, y lo voy a llamar post-procesamiento. Eso es en realidad mucho mejor. Entonces vamos a centrarlo en el medio. Asegúrate de que todo esté configurado en 0. Entonces voy a entrar a mi gestor de paquetes de ventanas. Y en realidad voy a agregar este paquete de post-procesamiento y esto te lo va a permitir. Todo lo que quiero hacer es hacer clic en Instalar. Y sólo va a tomar un tiempo. Una vez que haya terminado de compilar scripts en todo, podrás empezar a publicar añadiendo el juego CIO de post-procesamiento. Entonces ahí vamos, bastante rápido y voy a hacer click en mi objeto de post-procesamiento. Y voy a seguir adelante y voy a hacer clic en un volumen de post-procesamiento. Por lo tanto escriba el volumen del proceso de post. Ahora aquí es donde realmente vamos a crear nuestros efectos de post-procesamiento. Pero antes de hacer eso, necesitamos agregar una capa a la cámara, que básicamente la habilita para que podamos tener postprocesamiento. Así que voy a ir a postprocesar gametos por aquí, capa post-procesada. Y esto va a ser lo genial. Vamos a ir por aquí y tenemos nuestro gatillo. Ahora la lista se puede establecer en nada. Así que eso es básicamente decir, está bien, que tipo de post-procesamiento. Si nos fijamos aquí, establecemos lo que queremos para poder agregar postprocesamiento. Entonces en realidad me voy a poner a la capa de agua, no por ninguna otra razón, aparte de que no vamos a usar la capa de agua. Entonces eso es algo así como una capa de repuesto. Tenemos que hacerlo agua y dejar todo lo demás igual. Entonces voy a ir a mi post-procesamiento. Voy a cambiar esta capa por aquí a agua, que es realmente genial. Ahora voy a marcar esta es la casilla global. Y voy a ir al perfil y vamos a hacer clic nuevo. Eso va a hacer un perfil de post-procesamiento para nosotros. Y si vamos a ganar va a poder ver esto en acción. Voy a ir aquí por efecto inmunidad. Y hago clic en gluten. Y este va a ser nuestro primer efecto post-procesamiento. Si aumento la intensidad aquí, se puede ver como que hace. Obviamente eso es un poco mucho, pero eso es algo así como el efecto general de la floración. Agrega este bonito azul. Se puede ver que va a hacer maravillas para nuestros juegos. Voy a hacer mi Bloom. A lo mejor algo como vinculo cinco es probablemente una buena, tenemos algo bastante bonito de neón pasando por lo que cabe. Voy a dejar mi garganta a uno porque creo que en realidad está bien. Y todas las demás cosas que voy a dejar como el buey, creo que eso se ve bastante bien. Podría haberlo hecho, quiero cambiar el color a algo así como rojo obviamente. Y luego tengo una chica roja, amarilla si una de la barra amarilla y todo lo que se ve bastante fresco, pero también le agregan tal vez una verde o una azul si la azul, pero voy a dejarla como blanca. Y ahora podría agregarlo a los datos azules porque, pero ya voy a ver, creo que el blanco se ve bien finanzas encendido para desmarcar ese color. Ahora voy a sumar mi segundo de mis tres efectos y voy a añadir un efecto neto vago sobre si estoy pronunciando ese derecho, voy a ir aquí a la intensidad. Voy a aumentar la intensidad a alrededor. Se puede ver una especie de lo que está haciendo que es el efecto neto natural. Voy a hacer de la mía algo así como 0.3. Entonces es un poco sutil, pero se puede ver como que en los bordes. Si lo hice 0.5, eso será un poco mucho, al menos 0.3. Creo que es un buen punto medio. Entonces el último factor que voy a añadir va a ser la gradación de color. Esto puede ser bastante complicado, pero no te preocupes, no vamos a estar usando todos estos. Solo vamos a hacer clic aquí el modo y cambiar esto a Rango de baja definición. Y luego por aquí nuestra temperatura no dejaría fuera el tinte. Podemos irnos, pero en realidad vamos a asegurarnos que la temperatura esté fijada en 0, que es, entonces vamos a ir por aquí a estos tres abajo y estos son los cambios bastante grandes saturación, brillo y contraste. En realidad voy a cambiar esto a diez, brillo de diez también. Y asegúrate de que mi contraste esté tal vez lleno. Tengo incluso a las diez también, pero creo que eso hace que se vea un poco menos agradable. Entonces hagámoslo lleno incluso a través y seamos mejores. Y podemos ver ahora tenemos lo que creo que es un millón de veces juego de mejor aspecto. Si voy adelante y pego Play, puedo ver que este juego, en mi opinión, se ve diez veces mejor que lo que hizo. Ahora parece un juego real. Esto en realidad se parece mucho a uno de los primeros juegos que he hecho llamado raíz cuadrada. Sí, es algo así en lo que estoy basando este curso, pero sí, puedes ver cómo el juego se ve mucho mejor ahora tenemos los efectos de brillo de luz, y tenemos todos ellos bonitos visuales que agregamos. Tenemos los mejores colores. Creo que eso se ve bastante bonito. Ahora, lo último que quería hacer es agregar un efecto de muerte y lo vamos a hacer con un sistema de partículas. Ahora esto va a hacer que nuestro juego se vea millones de veces mejor. Confía en mí, va a haber un buen efecto cuando estemos pidiéndome que lo explore y luego vamos a responder, eso va a lucir realmente genial. Pero antes de hacer eso, voy a querer seguir adelante y asegurarme de que deshabilitamos y habilitamos mi lugar para ello cuando muera porque en realidad ese es el primer paso de este proceso. Voy a ir aquí a mi guión de Gerente Estatal. Voy a abrir eso y creo un renderador público de sprites y lo llamo spread. Entonces por aquí bajo mi die void, simplemente voy a ir guión bajo y decir sprite dot habilitado es igual a falso. Y eso básicamente significa ir a cualquier sprites adheridos a ti, que va a ser el renderizador sprite de este Jugador. Ve aquí y desactiva así. Entonces no va a estar activo. Todo lo demás es siempre trabajo C21. Pero entonces la segunda cosa que voy a copiar este código y bajo responder, voy a establecer eso para que sea verdad justo al final. Básicamente, como lo estamos haciendo con muchas cosas como nuestra gravedad y todo lo demás. Sólo estamos configurando que sea algo más fuera del estado off ha cambiado, lo cual es realmente genial. Ahora solo necesito ir al jugador y asegurarme de que he asignado mi renderador de sprite aquí. Así que voy a ir a la cima. Y si trato de arrastrar esto hacia abajo, realmente no me va a dejar. En cambio solo voy a ir por aquí y voy a hacer click por ahí y seleccionar jugador. Y eso me va a dar el correcto, que es exactamente lo mismo que lo arrastró hacia abajo. Ok. No pude porque había tanto en el camino. Ahora me olvidé y juego mi juego. De hecho puedo ver esto en acción es si voy y estoy jugando y redondeo a un pico, mi sprite desaparecería y luego responderé, pero eso no se ve muy bien. Queremos agregar un efecto y lo vamos a hacer con un sistema de partículas. Voy a ir Agregar Componente. Voy a escribir en sistema de partículas. En cuanto hayas agregado tu sistema de producto, haz clic en el reproductor y haz clic en Shift H, que básicamente lo pone en aislamiento, usa solo lo que puedes ver, cual es realmente, realmente útil para nosotros. Entonces vamos a seguir adelante y vamos a empezar a agregar un sistema de partículas. Un sistema de partículas es, estoy seguro de que puedes adivinar que es un efecto de partícula. Y actualmente estos son todos los ajustes predeterminados, pero no queremos esos. Así que vamos a cambiar fue lo primero que vamos a hacer es que vamos a ir a la animación de hoja de textura. Voy a pasar por cada paso porque este es un componente bastante complicado. Me llevó mucho tiempo conseguir la caída de, pero tengo un parcial más grande pero ahora suficiente para hacer un bonito efecto de partícula para nuestra profundidad. Vamos a Texture Sheet Animation, compruébalo, y pulsamos sobre él y luego cambiamos este modo de cuadrícula a sprites. Entonces entra en activos del curso y arrastra tu plaza por ahí. Y ahora casi deberíamos estar usando R-cuadrado, que necesitan ir al renderer y seleccionar el material como Sprites Default. Y entonces estamos usando cuadrados normales ¿verdad? Ahora, regresa aquí y podemos ver que es un efecto de looping, pero obviamente no queremos que sea buceando porque no los tendremos una vez para desmarcar el looping. Y si hacemos clic en Reiniciar, podemos ver que este efecto continúa durante cinco segundos y luego se detiene. Y podemos verlo pasando, pero no lo queremos de todos modos, y queremos que sea como 0.2 segundos. Esa va a ser la exclusión de la ley judía. Y también queremos que haya mucho más rápido. Entonces no lo haremos, empezaré toda la vida para ser algo menos parecido a 0.8. Y podemos ver que todos nuestros productos van y luego se van. Para que eso sería perfecto y luego responderá. Ahora también queremos que la velocidad sea mucho más. Así que vamos a cambiar eso a diez y luego el producto va a ser mucho más rápido, lo cual es agradable. Y queremos que el tamaño sea un poco más grande. Así que voy a hacer que sea 1.5. Y tenemos estas agradables partículas más grandes, que es genial. Entonces por aquí en la emisión, aquí es donde vamos a cambiar un montón de cosas. Vamos a hacer de esta tasa con el tiempo un 100. Podemos ver ahora eso es un poco más bonito, pero en realidad no es suficiente. Así que voy a hacer esto 250. Ahí vamos. Esa es una buena cantidad de partículas. Podemos incluso hacer que se lancen 300. Pero no tienes que preguntarle. Ahora, voy a ir a Shape y en realidad mi forma como cono, que es perfecto para este hecho. Entonces deja todo ahí dentro. Ahora voy a cambiar dos cosas. En primer lugar, quiero cambiar mi velocidad a lo largo de toda la vida. Entonces marca esa casilla y luego ábrala. Haz click en el tamaño, solo vas a hacer click en este gráfico generado de forma automática por aquí, entonces podemos ver velocidad de vida, van a ser más pequeños a medida que avanzan. También puedes elegir ese si quieres. Es bastante similar, pero me parece que para explosiones, éste funciona un poco mejor. Eso es genial. Entonces puedes seguir adelante e ir al color a lo largo de toda la vida. Revisarlo, haga clic en Color. Y entonces vas a querer seguir adelante y click al final por aquí, este de arriba y hacer que 0. Y eso básicamente te va a dar un bonito efecto de desvanecimiento así. Ahora lo último que tenemos hacer es en realidad asegurarnos de que el color de estos sea el mismo que el color que estamos usando. Por lo que da click en el color, da click en esta multa para simplemente seguir adelante y elegir algún lugar de tu plaza. Ya se puede ver que se va a quedar bastante similar, lo cual es bonito. Ahora, hay algunos cambios que podríamos encontrar que necesitamos hacer, pero probemos esto por ahora porque podría funcionar perfectamente. Para hacer eso. Obviamente sí necesitamos codificar para decir cuándo queremos hacer las partículas. Entonces presiona Shift H de nuevo, de vuelta a nuestro juego. Podemos ver si la jugamos ahora está frente al fondo, lo cual es agradable porque nuestro fondo es menos diez. De no ser así, podríamos cambiar un factor aquí que lo haría ir al frente , pero lo es, así que está bien. Entonces vamos a entrar en nuestro guión. Aquí. Sigue siendo el Gerente Estatal. Vamos a crear un sistema público de partículas como ese en nuestra mina de carbón PS. Entonces por aquí bajo mi dieta, sólo voy a decir justo debajo de mi araña que casi se dicen ps, dot, play. Entonces paréntesis y punto y punto y coma. Bueno, eso va a hacer es que en realidad me va a dejar jugar este efecto mientras lo firme. Así que voy a ir aquí a mi guión y arrastrar mi sistema de productos por ahí. Voy a minimizar eso para que puedas verlo. Ahora antes de probarlo, vamos a seguir adelante y asegurarnos de que tengamos un plan descontrolado despierto porque lo contrario jugará tan pronto como empecemos. Vamos a hacer clic en él. Entonces empezamos, todo está bien. Si morimos debería funcionar. Podemos ver que soy muy simpático. Explosión de partículas se desvanecen efecto, lo que creo que es bastante bueno en este momento. Son pocos los cambios que podamos hacer. Por ejemplo, creo que necesitamos tener el color un poco menos al principio. Así que hagamos que este alfa baje a un 150 sobre el color a lo largo de toda la vida. Entonces lo último que quiero hacer, en realidad quiero sumar más soy como si fueran 500. Y también voy a hacer este tamaño un poco más pequeño. Entonces lo haré 1.2. Eso va a ser sobre nuevo efecto de partícula. También podemos hacerlo un poco más rápido, en mi opinión, lo hacen 15, déjame ir. Eso debería ser mejor. Si ahora nos detenemos. Deberíamos ver nuestro efecto de partícula en acción. Minuto que morimos, incluso podemos bajar aquí y verlo. Y ahí vamos. Creo que eso es bastante bonito. Oh, se le cortó la pantalla. Así que déjame mostrarte cómo se ve en un triángulo normal. Por aquí. Ahí estamos. Creo que eso se ve bastante bonito. Obviamente podría mejorarse. Tal vez intente jugar con ella. Ver puedes conseguir que la tuya se vea mejor que la mía. Pero creo que por ahora eso es exactamente lo que necesito. El gran noticia es por todo nuestro trabajo anterior y al presente se movió si caemos y morimos, como estoy tratando de ilustrar ahora, sólo hacer el bien en nuestro juego. Entonces no se mueve, lo cual es realmente, realmente genial. Ojalá después de hacer estos, usted ha hecho algunas drásticas actualizaciones visuales. Viga de acero y la tuya está mirando mucho mejor. Basta con echar un vistazo a cómo se veía nuestro juego justo al principio y míralo ahora creo que se ve un millón de veces mejor. Entonces grid que alguna vez, creo que estas mejoras de visión realizadas en nuestro juego se ven mucho más profesionales. Y estamos una vez más, acercándonos y más cerca nuestro juego quedando terminado tan mayor si todos, te veré en el siguiente video. 18. Diseño del sonido: Oye ahí y bienvenidos de vuelta a la unidad. Ahora, como estoy seguro de que recuerdas en nuestro último episodio, actualizamos fuertemente nuestro componente visual de juegos. Pero ha habido un aspecto del desarrollo de juegos que hemos estado descuidando todo este tiempo, y ese es nuestro diseño de sonido de juegos o componente de audio. Ahora obviamente esto se rompe en dos categorías principales de juegos, música y efectos de sonido. En este curso, o más bien este episodio, vamos a estar agregando ambas cosas. Ahora, sólo voy a ser un, un efecto sonoro para el salto y para la animación de la muerte y sólo una pista musical. Pero si quieres oxidar este video, puedes ir ham añadiendo tantas estructuras nuevas que quieras o efectos de sonido extra porque vas a estar usando exactamente el mismo proceso que voy a estar usando. Por lo que será fácil expandirse. Ahora para empezar esto, primero voy a hacer un manager de música. Así que voy a hacer clic derecho aquí, Create Empty, y voy a nombrar a este manager de música. Entonces voy a obviamente centrado igual que siempre lo hago. Y entonces voy a querer añadir a esto mi guión gestionado de música. Así que voy a ir a crear un nuevo guión de C-sharp y voy a llamar a esta música, manejarlo. Eso realmente va a ser un administrador de sonido. Puedes comer lo que quieras entenderme , mi manager de música. Entonces voy a seguir adelante y abrirla. El motivo por el que lo estoy nombrando manager de música es porque eso es obviamente lo primero que vamos a añadir, agregando el sonido todavía. Entonces voy a crear una referencia a, y esto es lo que llamamos fuente de audio. Esta es básicamente una forma unities de decir un reproductor MP3 o web. Entonces voy a ir fuente de audio pública, y voy a nombrar a la mía AS capital a De lo contrario, es la palabra como que obviamente está restringida. Entonces AS entonces voy a seguir adelante y crear un vacío público. Y lo voy a llamar laico. Seguro que no lo tiene filtro automático en el reproductor conecte o desconecte. Y voy a ir como arcilla oscura. Ahora esto es básicamente asegura cómo podemos vincular fuentes de audio. Yo voy aquí, muchacho, parado. Entonces por aquí voy a llamar vacío a esta arcilla. Entonces, en efecto, estoy diciendo como juego al principio, obviamente esta es una forma bastante tediosa de llegar allí, que tal vez habrás notado, pero solo estoy tratando de ilustrar algo, así que ten cuidado conmigo. Entonces por aquí necesitamos crear una fuente de audio. Así que vamos a seguir adelante al manager de música, porque obviamente vamos a sumar la música. Van a ir a los activos del curso y vamos a arrastrar el archivo de música ahí. Ahora este archivo de música es una canción libre de regalías de Internet, pero puedes usar lo que quieras. Solo asegúrate de que no estás usando música de Cohen que se infringe los derechos de autor de alguien. Si vemos que esto es libre de regalías, adelante y marca esta casilla. Y entonces vas a querer seguir desmarcando el juego despierto porque estamos haciendo eso manualmente aquí. Obviamente podríamos simplemente hacer clic en Jugar despiertos, pero como dije, estoy tratando de ilustrar algo. Entonces pon el volumen algo así como 0.5 y el pitch también, pienso en 0.9. Eso es básicamente ralentizar la canción hecha. Creo que suena mejor así, pero no tienes que hacerlo. Puedes cambiar el tono a donde quieras, realmente sube a tres y abajo dos menos tres cambiarán este 0.5. No recomendaría hacerlo, lo siento, 0.9, no recomendaría hacer nada menos que 0.4, lo contrario se pone un poco demasiado lento. Y entonces vamos a entrar en nuestros gerentes de música todavía, voy a agregar nuestro guión de manager de sonido o lo llamaría gerente de música. Voy a arrastrar nuestro abastecimiento de audio y podemos ver si desmarcamos el plan despierto, pero en cuanto hacemos clic en Play, nuestro juego va a dejar de reproducir música. Muy, muy cool. Ahora tenemos nuestro guión musical y obviamente puedes jugar con eso todo el tiempo que quieras. He cortado esto específicamente, por lo que debe bucle, pero si quieres hacerlo para que te desvanezca dentro o fuera, usamos pista diferente. Obviamente puedes cambiar todo eso. Acaba de cambiar el archivo de audio que estás haciendo. Todo esto está haciendo es reproducir un archivo al hacerlo. Si cambias la música, asegúrate de reajustar el tono. De lo contrario podría ser pero sensación lenta, gusto, pero en este momento todo está funcionando perfectamente bien. Ahora lo segundo que necesitamos agregar son los efectos de sonido, y vamos a hacer aquellos usando fuentes de audio. Pero el problema con el uso de fuentes de audio es que si tienes múltiples fuentes de audio en un objeto, se hace un poco difícil diferenciar entre ellas. Así que en realidad voy a almacenar fuentes de audio para el reproductor, un reproductor y uno en otro objeto. Realmente no importa lo que use. Podría usar el sistema de eventos si quisiera sostener un objeto de pisos de desove, que obviamente es un espacio de almacenamiento, realmente no importa. Voy a poner el mío en el medio ambiente porque ese es uno de los objetos más inútiles. Pero a pesar de que éste no se mueve, todavía va a reproducir el audio. No es que el audio se vea afectado por lo lejos que vamos a seguir adelante y agregar una fuente de audio. Y veremos que lo arrastramos la última vez. Esa es sólo una forma rápida de hacerlo. Y voy a añadir el efecto de tinte de esta fuente de audio. Entonces nos aseguraremos de desmarcar el juego despierto. Y quiero hacer el volumen también alrededor de 0.5. Podríamos tener que ajustarlos más tarde. Ya veremos que voy a ir a mi reproductor y me voy a desplazar hacia abajo y añadir otra fuente de audio y añadir el efecto salto, una vez más, cambiando el volumen a 0.5 y cambiando el Paraguay a falso. Asegúrate de que tanto el juego despierto bucle estén configurados en false para éste. Entonces todo lo que necesito hacer es que necesito entrar en mi guión y crear nuevo vacío público para jugar a entrar en mi guión y crear otros museos, voy a salir vacío público y tirar de éste, jugar salto. Debajo de nuestro vacío público. Lei di. Estas básicamente van a ser las otras dos fuentes de audio que voy a ir aquí y voy a crear como salto como dy. Y voy a renombrar esto como música para poder diferenciar entre ella. Y por supuesto va a reajustar eso ahí. Y luego voy a copiar este código exacto, obviamente solo cambiando qué audio. Así que algunas cosas por aquí, voy a ir como saltar el juego de puntos. Aquí. Voy a ir como dy dt. Ahora bien, si estás notando algo, estos procedimientos son bastante, bastante similares. Entonces podríamos realmente, si quisiéramos usar parámetros y luego simplemente llamar a un procedimiento. Pero a menudo he encontrado que el uso de parámetros puede darte algunos problemas en el Editor de Unity. Y así, por el bien de la simplicidad, no vamos a hacer eso. Lo que quiero decir con h en el editor de Unity es porque estos scripts se están enfriando por código, no habría problema en absoluto. Pero si queremos llamar al script a través de un objeto, quieres hacer click en un botón y en el vacío específico de Coolidge. Y teníamos demasiados parámetros. A veces no nos deja referirlo correctamente. Así que no te preocupes por eso por ahora. No va a ser un tema. Vamos a correr también, pero en realidad podríamos reescribir esto como un solo procedimiento. Solo estoy eligiendo no hacerlo porque esta manera es un poco más fácil de leer. Pero si te das cuenta de que Gran trabajo, y ahora sólo tenemos que entrar en nuestro gerente de escena. Tenemos que asegurarnos de que llamamos diapasón. Así que acude a nuestro director de escena y vamos a crear un gestor de música pública, buscar música de seguimiento. Entonces vamos a bajar a este tablero de buceo y desprovistos. Y vamos a asegurarnos de que lo llamemos en cuanto moramos. Entonces después del sistema de partículas, voy a ir a la música. Jugar morir. Perfecto. Y luego por aquí voy a copiar este código exacto. Y también vamos a querer jugar esto cada vez que saltamos. Pero obviamente eso no está vinculado con el Gerente Estatal que va al movimiento. Entonces vamos a hacer exactamente el mismo proceso. Me voy a hacer público, gerente de música o música. Entonces por aquí en el salto vacío, vamos a ir música dot play dados. En este momento. Vamos a querer crear saltos. Salto tan gris oscuro. Un poco de asignación tenemos que hacer antes de que esto funcione. Pero una vez que hayamos hecho eso, todo debería funcionar perfectamente LC. Hemos cambiado el guión de movimiento, el guión de State Manager, y el gerente de música. Entonces vamos a revisar todos los que tienen todo asignado que deben. Primero comenzaremos con guión de movimiento. No tiene un gerentes de música se aseguran de arrastrar eso. Tampoco el Gerente Estatal. Entonces bajo el manager de música, tenemos que asegurarnos de que en realidad tengamos las fuentes de audio adecuadas. Entonces arrastra como música por ahí, porque cambiamos el nombre, se reiniciará para asegurarte de que hagas eso. Arrastra el jugador tiene el salto y el ambiente tiene el tinte vacío. Y entonces voy a seguir adelante y jugar el juego y ya se puede ver cómo suena esto. Muy bien, eso fue genial. ver en esa corta cantidad de tiempo, realidad hemos creado un sistema de audio en pleno funcionamiento con música y sonido. Y lo bueno de hacer esto, obviamente podemos ver por aquí tenemos algún codebook bastante inútil llamando play desde un procedimiento de tienda que lo está haciendo por sí solo, que es no muy ideal. Pero la razón por la que quería hacer esto es porque ahora tenemos un enlace a nuestro audio y música. Y más tarde cuando creamos nuestro sistema de menús, vamos a crear funcionalidad para silenciar todas estas fuentes de audio. Y eso en realidad nos va a dejar hacer eso, lo cual es realmente, realmente genial. Estén atentos para ese Buen trabajo a todos. Ojalá todo funcione y obviamente voy a mi código y recursos si quieres, puedes cambiar estas cosas de audio para estar donde quieras. Simplemente arrastra tu nuevo archivo ahí y se actualizará todo. Y gran trabajo. Te veré en el siguiente video. 19. Sistema de menú: Hey ahi, y bienvenidos de vuelta a Unity. Y obviamente en el último episodio agregamos sonido y música apuntamos varias veces haciéndolo sentir mucho más receptivo. Podemos ver eso aquí igual que lo hicimos en la última fila. Tan super cool. Ahora bien, si bien esto es increíblemente genial, Algunas personas en realidad no pueden querer audio y sonido igual que nosotros. Espero que lo hagas al menos porque has tenido que escucharlo para el episodio pasado a la mitad. Vamos a añadir un sistema de menús que nos permita seleccionar si reproducir sonido o silenciado y también jugar el juego. Y nos llevará de vuelta allí cuando moramos. Esto en realidad va a ser bastante simple. Va a ser probablemente una de las cosas más complicadas que vamos a hacer, probablemente lo más complicado que queda por hacer en este curso. A lo mejor te podría encontrar agregar, añade un poco confuso. Pero aparte de eso este sistema de menú, solo se necesita un poco acostumbrarse, pero después de eso deberías estar bien. Así que para empezar, vamos a empezar primero haciendo un script de menú. Voy a llamar a nuestro menú de guiones. Entonces voy a seguir adelante y hacer doble clic en esto. Ahora antes de que incluso empiece a hacer mi menú, estoy seguro de que se puede pensar que no querría a diferentes estados. Vamos a querer un estado en el que estemos jugando. Estamos mostrando el texto de la escuela y la preparatoria. Y vamos a señalar dónde no estamos mostrando los textos de la escuela y la secundaria, que es exactamente lo que vamos a arreglar. Aquí. Nosotros, vamos a tener un vacío público y llamarlo menú. Directamente debajo de eso, vamos a tener otro vacío público y llamarlo menú alto. Entonces lo que vamos a necesitar hacer, vamos a necesitar crear un sistema donde podamos escondernos, asegurar botones específicos y otros elementos de interfaz de usuario basados en lo que queremos. Así que voy a seguir adelante y hacer eso ahora. En primer lugar, necesito realmente empezar a diseñar mi menú. Voy a ir aquí a mi interfaz de usuario, y me aseguraré de desmarcar la escuela y la secundaria. Así que una vez que esto se carga y luego haga clic en ellos, como así, haga clic en check para que no podamos verlo más. Y entonces voy a dejar de inclinarme mi menú. Entonces voy a ir a hacer clic derecho en la interfaz de usuario. Y voy a crear un botón con sonda de malla de texto. Ahora esto va a seguir adelante y autocompletar. Tampoco podemos ver porque nuestras capas de post-procesamiento un poco en el camino. Pero si voy adelante y escalo eso hacia arriba, deberíamos poder ver hacia fuera, pero agrega acordes brillantes de nuestro post-procesamiento. En realidad actualmente veo con esta nueva forma y hay un refrigerador se puede ocultar artilujos. Si vas aquí a la parte superior derecha, puedes quitarte todos los artilujos de la escena, lo cual es bastante útil en este momento. Voy a seguir adelante y cambiar el nombre de mi botón. Entonces voy a ir aquí a EU, pero tengo un curso de activos y verás por aquí tienes una jugada. asegura de que todos estos igual que pusimos la primera calle, estamos llegando a un píxel 1000. Vas a asegurarte de hacer lo mismo aquí. De lo contrario van a ser muy grandes. Y luego ve aquí a jugar una vez que hayas hecho eso y arrastrarlo y poder, podemos ver un botón Play bastante desfigurado. Entonces voy a ir al texto y borrarlo. Entonces voy a ir aquí y fijar el tamaño nativo. Y aquí tenemos nuestro botón de reproducción, que es bastante genial. Obviamente podría ser un poco más pequeño que una escala que sube un poco. Y luego voy a fijar su posición en la x y la y a 0. Ahora podría encontrar que estas coordenadas de posición son mucho más grandes. Si trasladamos esto a 60, sólo mueve diapositivas para eso. Pero si trasladamos a nuestro jugador a la posición 60, puedes ver que van completando tu proyección. Y la razón de eso es porque existen diferentes coordenadas. Estas son coordenadas UI y la otra una coordenadas mundiales. Así que simplemente no te confundas ahí. Si pongo esto en 601960, no va a ser lo mismo. Hay código que puedes convertirlos, pero no vamos a necesitar hacer eso en este episodio. Tan afortunado para nosotros. Entonces voy a seguir adelante y recontarlo en mis artilujos. Puedo verlos de nuevo. Y voy a asegurarme de poner eso a 0 y moverlo un poco hacia abajo. Creo que quiero que mi botón Play sea del mismo color que el piso, así que voy a seguir adelante y hacer eso. Creo que eso se ve bastante bien. Entonces voy a querer sumar en mi obra de teatro y Opciones de sonido. Voy a hacer muy similar. Voy a hacer clic con el botón derecho aquí y ir al botón UI mensaje de texto Pro, y llamar a este sonido. Por aquí, voy a escribir u1 y música de calidad, lo siento mis botones de música y sonido. Y luego voy a ir aquí y borrar ambos los objetos de texto adjuntos a estos. Mueve ambos por aquí a la esquina superior derecha. No te preocupes por estas flechas. Eso es solo Unity trabajando cómo funcionan los botones. Y voy a mover la música ahí abajo. Y luego voy a ir aquí y voy a arrastrar música a la música como lo hice con un sonido de reproducción y el sonido y click Establecer tamaño nativo para ambos, igual que lo hice. Entonces siempre voy a escalar estas bajadas. Haré esto alrededor de 0.4.4. Eso me parece bien. Y el mismo teléfono de sonido completo, que es genial ahora en realidad asegúrese de que sean exactamente la misma exposición por lo que están justo debajo el uno del otro. Creo que eso se ve bastante bien. Ahora tenemos nuestro juego con un sistema de menús en la parte superior derecha. Podemos seguir adelante y cambiar esto a lo que creo que voy a cambiar estos colores. Veré cómo se ve amarillo. No es genial. Creo que los voy a hacer todos azules, pero en realidad puedes hacerlo lo que quieras si es enorme, encuentra la parte. Sí, eso se ve bien o cualquier otro color que funcione a la perfección. Entonces lo último que tenemos que hacer es que obviamente necesitamos crear un juego de pelota de título. Así que voy a hacer clic derecho en una interfaz de usuario, texto texto Mac Pro y cambiar el nombre de esto a título. Entonces voy a mover esto hacia arriba. También voy a querer escalar esto **** mucho más grande. Eso me gustaría. tal vez no sea tan grande, pero lo suficientemente grande la institución para mover el y hacia abajo. Entonces entonces voy a cambiar algo de esencia aquí. Entonces, antes que nada, voy a establecer la alineación al centro y al centro, por lo que está justo en el medio. Entonces voy a renombrar. Voy a asegurarme de que lo tenga antes de cambiar el nombre acción y asegurarme de que mi tamaño de fuente sea bastante grande. Entonces creo que tal vez ciento cincuenta millones, doscientos, eso probablemente sea bueno. Yo no diría texto nuevo por ahí. Voy a seguir adelante y de hecho mover ambos ligeramente hacia abajo otra vez. Asegúrate de que el título y el sonido de reproducción ambos se movieron hacia abajo y podemos ver que se ve un poco mejor en mi opinión, entonces que siempre necesitamos hacerlo del mismo color para que encaje. También podríamos cambiar la fuente si quisiéramos. Ioc no instaló paquetes de fuentes. No voy a poder hacerlo, pero voy a dejar el mío como flecha por ahora. Voy a nombrar el mío. ¿ Quién? ¿Cuadrado? Ahora si no puedes llegar a un nombre tan brillante como el cuadrado enfriado, no me toqué. Puedes usar por nombre donde quieras. Enfriado al cuadrado es claramente el mejor nombre, pero si no has podido venir con algo que no se sientan mal tú mismo. No todos somos genios creativos como yo. Y después de que hayamos hecho eso, nuestro sistema de menús en realidad se ve bastante completo, lo cual es bastante genial. Ahora todo lo que tenemos que hacer es en realidad programar lógicamente hechizos. Porque si golpeamos Play ya que necesitas volver a poner estos activos, porque así es en realidad como llegué a mi avión que golpeamos play. No queremos estos botones de una manera porque razones obvias. Entonces voy a entrar, queremos seguir adelante y programar la lógica a estos. Así que voy a ir a mi sistema de menús por aquí. Voy a crear una referencia cada uno. Ahora antes de empezar, asegúrate de ir a la parte superior y a la derecha usando interfaz de usuario punto del motor de Unity y usando el protocolo de mensajes de texto, igual que lo hicimos la última vez. Entonces voy a querer crear unas ODS e ir a texto público Mesh. Tú crias. Y lo vamos a llamar porque ese va a ser nuestro título. Y entonces vamos a querer crear un botón público. Y vamos a llamar a esta obra de teatro, llamada La siguiente música. Vamos a llamar al siguiente sonido. Entonces tenemos que ir por aquí a UI. En realidad voy a poner mi manuscrito justo en UIs para solo conducir eso allí. Entonces asegúrate de que firmé mi cosa. Así que reproduzco el botón para reproducir mi botón de sonido al sonido, mi botón de música a la música y mi título allí. Y casi terminamos. Lo último que tenemos que hacer es que necesitamos crear una referencia al puntaje, al puntaje más alto. Sólo vamos a sumar algunas comas y luego poner las justo ahí cuando carguen. Pero el marcador ahí y la preparatoria ahí. Ahora lo que tengo que hacer es que necesito crear lógica para cuando quiero mostrar cuál. Así que obviamente cuando estoy mostrando el menú, quería asegurarme de que todo excepto el título y la escuela esté mostrando lo siento, la escuela y la preparatoria. Y cuando estoy contratando menú para asegurarme exactamente lo contrario. Y voy a hacer esto con parámetros porque sé que he mencionado en el episodio anterior que a veces Unity tiene cosas extrañas con parámetros. Pero a menudo he encontrado que eso es en realidad solo cuando estás usando más de un parámetro. Así que voy a llamar a esto desde el código, así que va a estar bien en realidad, pero voy a seguir adelante e ir aquí. Y esta en realidad puede ser una forma mucho mejor de hacerlo. Voy a salir al vacío público, cambiar de banca. Y entonces vamos a tener un booleano y lo voy a llamar x Ahora a partir de esto, en realidad podemos establecer cada uno porque obviamente vamos a querer ponerlos a ser completamente contrastando. Quieres decir ya sea todas estas análogas o ambas de ellas y tampoco lo harán los demás. Así que voy a ir a aquí, título dot GameObject. Se me hace referencia al juego objeto set activo, luego abrir corchetes, y luego estoy obviamente podría entrar X aquí. Entonces dependiendo de donde entramos para x, pondría el título activo a eso. Y básicamente voy a asegurarme de que me puse hacer esto cada uno de ellos. Entonces Tyler Rhodes Family, voy a querer ser lo mismo para calavera, la misma puntuación completa. Y en realidad podemos llamar a las líneas de código pulsando Control D. Eso es bastante útil luego a través la misma música de reproducción completa. Y por el sonido. Obviamente esto puede ponerlos todos o nada y no queremos hacer eso. Queremos establecer que la escuela y la preparatoria sean diferentes. Sólo voy a poner un signo de exclamación justo delante de eso. Y eso básicamente va a decir que no X. Waits código funciona es que estoy diciendo que estoy entrando un booleano x ya sea sí o no, verdadero o falso. Y voy a llamar a este punto si queríamos esconderlo todo excepto la escuela, traje cambio de menú falso y luego va a decir ok, Así que al título falso, la escuela no falsa ni verdadera, la secundaria no falsa ni verdadera, y todo lo demás falso. Y obviamente si hago lo contrario, va a poner esto verdadero, este verdadero, este verdadero y estos dos falsos, lo cual es realmente, realmente genial, Es una forma realmente simplificada de hacer esto. Entonces todo lo que necesito hacer es que necesito crear una referencia a este menú desde mi máquina estatal. Iré a menú público. No quiero llamarlo menu, así que tengo un enlace. Y luego voy a ir aquí a mi tablero donde estoy enfriando todo lo demás. Y en realidad voy a decir menu, dot change menu. Y yo por supuesto, entré por aquí para que todo esté centrado cierto excepto la escuela y la preparatoria. Y luego bajo el vacío responder, voy a hacer algo muy parecido. Voy a subir aquí bajo mi cosa y poner el menú a false. Ahora, lo que esto básicamente va a hacer es que se va a asegurar que cuando morimos, el menú se muestre y luego se remonta. Eso no es del todo lo que queremos. Te mostraré cómo se ve eso ahora. Si seguimos adelante y golpeamos el juego, primero antes de que juegues, en realidad tenemos que asignar lecturas. Así que vamos a nuestra máquina estatal y asegurarnos de que configuramos nuestro menú Menu y luego pulsamos Play. En realidad voy a silenciar el audio porque puedo hablar para poder hablar con nosotros. Voy a ir con mi manager de música y voy a seguir adelante y golpear mute en la música y ya son lo mismo con el reproductor. Sólo voy a ir aquí y hacer clic en Silenciar. Y lo mismo con el medio ambiente. Entonces no voy a tener ninguna antes. Si no haces esto, está bien. Sólo estoy para poder hablar sobre ello y no ser destrozado por el muy fresco restar otra vez. Entonces si voy adelante y pego Play, esto en realidad está bastante cerca de lo que quiero. Podemos ver que todo se está mostrando a la vez. Si muero sólo se muestra el menú y luego eso se muestra. Pero obviamente el menú no es muy útil para este empleado hace clic aquí. Realmente no hace nada que no sea ideal. Así que voy a cambiar un poco esta lógica de código. En lugar de decir, tener un retraso y luego responder automáticamente, voy a llamar a esto responder nulo desde el menú, y te mostraré cómo funciona eso si sigo adelante y comento esto fuera para que todo lo que está haciendo es esperar y entonces no pasa nada. Por supuesto, esto es una especie de uso este código, pero lo vamos a usar más tarde, así que no lo elimines. Entonces voy a ir por aquí a mi cosa de juego y desabrochar, haga clic y haga clic aquí. Y voy a arrastrar a mi jugador. Déjame ir. Sin función. Voy a ir hasta aquí abajo a Gerente Estatal y voy a hacer clic en responder. Y lo que esto realmente va a hacer es lucir bastante cool. Vamos a ver obviamente todo está justo ahí cuando empezamos, que es exactamente como queríamos. Pero si morimos, no respondemos. Y entonces si queremos hacer click en esto, sí respondemos. Y eso es en realidad bastante cerca cómo queremos que nuestro sistema de menús funcione, lo cual es de nuevo, realmente, realmente genial. Ahora hay algunos temas. En primer lugar, quería asegurarme de que estos dos estén deshabilitados cuando empiezo porque no es así como quería ir. Lo segundo que quiero asegurarme de que tengo es que quiero asegurarme de que el jugador no esté realmente en estado de movimiento al inicio del juego. Voy a quedarme en gerente estatal y voy a poner mi estado en inactivo. Empiezo realmente no importa lo que pongas aquí porque solo estamos comprobando si está jugando encendido. Así que incluso podrías poner muerto, eso realmente no importa. Y entonces lo otro que voy a hacer es que voy a poner mi gravedad obviamente en mi movimiento a 0. Empezamos por ser suspendidos en el aire, lo cual es muy similar al día del escritorio sin efectos alelos. Volvamos a la Unidad. Y podemos ver cómo se ve esto por aquí. Si empiezo, estoy suspendido y en cuanto hago clic en Play aparezco, lo cual es realmente genial. Si muero, voy a tener eso nuevo y pop up y todo está funcionando perfectamente, cual es realmente, realmente genial. Ahora los pocos cambios se deshacen. En primer lugar, quiero hacerlo para que vuelvas al principio y respondas incluso antes de que tengas todos los demás efectos. Por lo que en realidad tenemos que volver a esa co-rutina. Vamos a poner esa respuesta vacío de nuevo aquí. Pero en lugar de convertirlo en un Boyd, vamos a cambiar en dos. Entonces voy a salir al vacío público. Voy a llamar a esto un punto. Nuevamente. Echo de menos voy a manejar toda la otra lógica excepto establecer la posición y establecer el más o menos ir por aquí, vamos a cambiar eso. Y ahora lo va a hacer es cuando moramos, vamos a volver al principio, pero no vamos a poner nada más. Entonces vamos a cambiar nuestro botón para llamar a este vacío en su lugar. Ve aquí a mi botón, UI, abajo al botón de reproducción. Y voy a seguir adelante y cambiar eso a Gerente Estatal juego de acciones. Eso es bastante guay. Ahora, si voy adelante y juego mi juego, puedo hacer click, iniciar el juego. Podría morir. Y luego hay un retraso y vuelvo. Pero no necesito mostrarme todavía tampoco. Así que volvamos a nuestro código. Vamos a cambiar esa lógica de menú. En lugar de cambiar el menú tan pronto como moramos, en realidad voy a configurarlo cuando respondamos, lo cual es bonito, bastante cool. Ahora ya verás cómo funciona esto en juego. De vuelta a mi juego. Haga clic aquí. Podemos ver que empezamos con el menú click Play. Podemos jugar a lo largo de una alta velocidad, obviamente salvados como lo hicimos hace un tiempo. Y respondemos como de vuelta estamos recibiendo, lo cual es realmente, realmente genial. Lo último que tenemos que cambiar, tenemos que asegurarnos de que estos botones en realidad en realidad web también. Eso también va a ser bastante sencillo. Sólo vamos a entrar en nuestro manuscrito de nuevo. Y vamos a hacer una nueva voz y lo vamos a llamar cambiar audiencia, vacío público. Y vamos a llamar a este cambio de audio. El que se va a cambiar de audio. El otro va a estar frío. Cambiar música. Eso básicamente va a decir si queremos cambiar la música. No vamos a hacer esto en carrozas, el público brillante Música. Y 48. Entonces todo lo que vamos a hacer aquí es que los vamos a poner, cambiarlos para aprender música iguala no a música. Eso básicamente sólo significa que si es cierto, lo hace falso, es falso, lo hace verdad. Obviamente quiero poner eso por ahí. Voy a poner lo mismo por aquí para audio es igual a no auditor. Entonces, por último, tenemos que hacer es necesario tener un acceso a nuestros sistemas que realmente puedan reproducir la magia de la música. Sólo voy a seguir adelante y crear un gestor de música pública. Llama a esta música gestionar. Entonces voy a ir a la música manejar dot, y luego vamos a encontrar la fuente de audio que quiero. Entonces si vamos aquí, podemos ver que en realidad fue llamado tan nefasto como saltar a la música. Cuando en realidad para el audio, me voy a poner como Guy como saltar el mutante para ser lo que sea el audio es. Algo, el Dr. Newton iguala audio. Y voy a copiar este código exacto y poner eso aquí abajo, excepto esta vez como salto. Entonces voy a hacer algo muy parecido por ahí. Voy a bajar aquí y luego un punto de música set como la música es igual y luego cambiarlo a música de allá. Estas menos cinco líneas de código en realidad nos van a hacer tener un sistema muy cool que puede alternar entre audio silenciado y no silenciado. Volveremos por aquí. Tienes que hacer un poco de asignación primero. Así que vamos a asegurarnos de que soy mánager de música esté vinculada ahí. Y ve a nuestra cosa del sonido y asegúrate de que tenga un evento onclick. Arrastrando la interfaz de usuario, haga clic en ninguna función haga clic en el menú y luego seleccione el aquí que dice Cambiar audio. Ve aquí y haz exactamente lo mismo con la música, arrastrando tu menú de interfaz de usuario y esta vez cambia de música. Ahora antes de jugar, voy a seguir adelante y asegurarme de que en realidad he dejado de silenciar todas las cosas que silencié antes para que pueda mostrártelo porque no tengo que estar jugando con nuestro juego a poquito. Así que sigamos adelante y dejemos de silenciar todo. Y te mostraré exactamente cómo funciona esto. Podemos ver que podemos silenciar el audio con facilidad y sin hacer clic seguir adelante. Simplemente hacemos lo mismo con nuestros sonidos. Si voy aquí, puedo ver que mi reproducción un sonido ha sido realmente silenciado. Si deshago clic que no lo tiene. Para que pueda tocar con solo sonido y música. Muy, muy cool. Ahora bien, esto es obviamente lo básico de nuestro sistema de menús. Creo que hemos dado algunos saltos bastante grandes en nuestro juego, y es lo último grande, grande que necesitamos agregar el próximo episodio podemos hacer monetización y luego se acaba de arreglar ahora juego de pelota y estamos en realidad listo para ponerlo en el móvil. Tan gran trabajo a todos. Espero que disfruten lo absoluto y te veré en la siguiente. 20. Monetizar nuestro juego: Oye ahí, y bienvenidos de nuevo a la unidad. Ahora esta es la característica principal perdida. Vamos a sumar dos de nuevo, este es el último paso. Entonces de lo que voy a hablar de la característica completamente nueva estamos agregando y eso es la monetización. Después de eso, voy a juego móvil está más o menos hecho. Sólo tenemos que obviamente ponerlo en móvil y construirlo. Y podemos ver que todo va a funcionar perfectamente bien, lo cual es realmente, realmente grandes mutantes, has recorrido un camino muy largo en tu viaje de desarrollo de juegos móviles. Tan gran trabajo que has hecho sorprendentemente. Ahora, los juegos móviles siempre usan anuncios para monetizar. Eso es un poco exagerado, pero prácticamente cada juego móvil por ahí usa anuncios de algún tipo porque es una manera realmente genial de monetizar tus juegos. Y agregarlos no es súper fácil, pero en realidad no es tan difícil como se podría pensar gracias al paquete add de Unity. Ahora, vamos a pasar por este proceso paso a paso. Asegúrate de seguir todo lo que hago porque hacer pequeños cambios puede resultar en pequeñas cosas raras que tienes que hacer. Así que solo asegúrate de seguir todo exactamente. Detente, pasa a guiones y vas a querer importar este script de Ad Manager. Ahora si vas a los recursos de este video, encontrarás que hay un guión de Ad Manager por ahí. Y puedes seguir adelante y en realidad descargar eso y eso te dará el script de Gestor de anuncios. El motivo por el que no lo incluí en los activos del curso es porque te va a dar errores en cuanto lo descargues. Va a decir que el anuncio no existe. Eso está completamente bien. Eso es solo porque aún no hemos habilitado anuncios en nuestro juego por hacerlo una vez que hayas instalado eso y probablemente tengas tus dos horas ahí, ve a Ventana, selecciona General, y selecciona servicios. Una vez que hayas hecho eso, deberías ver esta cosa. Tardará un tiempo cargarse y luego obtendrá estas listas de servicios. Todos ellos deberían estar fuera por ahora. Así que ve a anuncios y es posible que no te lleven a esta pantalla de inmediato. Ahora la razón por la que me llevaron a esto es porque obviamente ya estoy firmado en Unity porque antes he usado Unity. Pero si esta fue la primera UTI, Portugal, hiciste todo este juego móvil, posible que no lo firmes, por lo que te pedirá que firmes tu cuenta unitaria. Ahora, asumo que sí tienes una cuenta de Unity porque instalaste Unity Hub y creo que tienes que tener una cuenta de Unity para crear una. Pero si no lo hiciste, solo adelante y crea uno, habrá un proceso realmente sencillo. Obviamente puedes hacerlo en unity.com y simplemente hacer una cuenta. Entonces, una vez que hayas creado tu cuenta Unity o tu Unity Hub o cuenta, lo que necesites, entonces solo tienes que seguir adelante y te va a pedir que creas un videojuego. Así que vas a tener que elegir una organización. Tal vez te estés preguntando qué es esto. Si subes aquí al tablero, hace clic aquí. Te va a llevar a tu tablero de Unity. Y esto realmente va a ser donde se puede controlar todo tipo de cosas como esa. Obviamente, aún no he firmado, pero si lo asignaría, entonces me llevará a una página donde pueda crear organizaciones y así. Así que adelante y haz una organización si aún no lo has hecho, y entonces vas a tener reiniciándote en ti vas a recargar el deber y la organización estará ahí como uno de los desplegable opciones si tienes que elegir eso para seleccionar tu juego. Si no te has topado con alguno de estos problemas, no te preocupes. Sólo digo en caso de que alguien lo haga. Y entonces, por último, tienes que decir si vas a estar apuntando a personas menores de 13 años o más, y eso es así que eres compatible con la coppa? Adelante y haz clic en Sí, solo por una buena medida. Obviamente, no sabemos lo suficiente sobre los derechos de autor todavía para estar haciendo plenamente esa suposición. Si estás planeando lanzar un juego móvil, te recomiendo que hagas algunas investigaciones al respecto porque esa es una ley muy importante que tienes que seguir a la hora de hacer juegos móviles. Por lo que obviamente la Ley de Protección de la Privacidad en Línea Infantil . Pero si no lo estás, si solo estás tratando de terminar este curso y en contra de eso más tarde, solo tienes que seguir adelante y haz clic en sí o no. Realmente no importa, no es liberarse ni juego por el momento. Y luego te llevarán a esta pantalla. Ahora, antes que nada, clic en los anuncios y eso va a tomar un tiempo cargarse y se va a congelar. Tal vez va a cargar tus paquetes resueltos cosa, compilar scripts C-sharp, y después un tiempo debería habilitar todo. Entonces ADS está encendido. Ahí estás. Ahora podemos ver que tenemos anuncios en, dice la versión actual 3.7.5. Ahora esto realmente se instala automáticamente en Unity. No estoy del todo seguro por qué el mío se instaló automáticamente, pero una vez anterior lo estaba haciendo. No lo hizo, así que no estoy del todo seguro de cómo funciona. Te mostraré cómo instalarlo en caso de que el tuyo no lo haya hecho. Pero si siempre se ha instalado a la conversión y hay una versión posterior disponible, asegúrate de descargar la versión recomendada, no necesariamente la última versión porque encontré la última versión a veces me da problemas. Entonces si quiero que mi juego esté listo para anuncios, necesito descargar este paquete por aquí. Como dije, ya lo tengo. Pero ve aquí a Window Package Manager si no lo hace, está justo ahí. Y luego encuentra este anuncio uno. Y si no lo has instalado, da clic en Instalar obviamente en lo alto, así que no lo voy a quitar. Y también verás que mis flechas se han ido, lo que significa que mis anuncios están funcionando perfectamente. Lo último que quiero hacer es hacer clic aquí en anuncios y voy a habilitar el modo de prueba porque quiero asegurarme de que no estoy usando anuncios reales si estás probando tu juego o tu, la única cosa que En realidad no se te permite usar anuncios reales, tienes que usar anuncios de prueba, que es exactamente lo que estoy haciendo. Entonces voy a seguir adelante y voy a abrir el encargado de anuncios. Y podemos ver que todas estas áreas en realidad deberían desaparecer tan pronto como se refresca si no lo hacen, a veces Unity sí tiene problemas con él, como por ejemplo, podría no desaparecer. Si la cierro y reinicié, podrían desaparecer. Podrían no usar estos poco raros. Y ojalá para cuando estés usando Unity, habrán parcheado esto. Ya puedes ver que mis flechas parecen haberse ido. Ok, ahora eso pasó. Voy a ir aquí y en realidad sólo voy a ir a inquilino de AD a menudo encendido. Ahora, es importante tener en cuenta que estas flechas no son como resultado de nada que estés haciendo mal. Esto es unidad y tienen este problema realmente molesto. Así que sólo aguanta conmigo aquí. Si te pasa a ti, solo haz lo que estoy haciendo, ya sea apaga y enciende. Ya veremos si eso funciona. Podemos ver de mí que de hecho tiene trabajo. Por lo que ahora ha funcionado solo porque lo apagé y encendí. Se puede ver obviamente que no he hecho nada malo. No hay nada malo en el guión. Solo unities emiten si eso no funciona para ti, también puedes intentar desinstalar y volver a instalar en el paquete yendo aquí al Administrador de paquetes, luego yendo allí y quitándolo e instalándolo. Así que sí. Ojalá ahora debas estar en un punto donde tu juego tenga el guión y ya no tenga errores si lo tienes, genial. Ahora lo último que vamos a hacer es que solo vamos a mostrar un anuncio cada vez que moramos. Y eso es realmente fácil de hacer. Ahora antes de cambiar eso, en realidad me acaba de dar cuenta de que mi nombre de clase no es el mismo que el nombre de mi archivo, que es un área de la que hablamos antes. Así que sigamos adelante y arreglemos eso. De lo contrario, eso nos va a dar áreas en el futuro. Asegúrate de que esto sea lo mismo, ambos han subido este curso, debes estar actualizado, así que no te preocupes, pero si no lo es, solo asegúrate de tener eso y eso es lo cada guión voy a ir más para quedarse gerente y vamos a crear cualquier nuevo gerente de anuncios públicos. Lo llamaremos add. Entonces por aquí cuando moramos encima de todas estas cosas, vamos a llamar a nuestra respuesta nula. Y en cuanto respondamos por debajo este responder vacío dentro de la corrutina, vas a ir a añadir puntos, mostrar añadir paréntesis. Esto significa básicamente que cada vez que morimos, vamos a ver un anuncio corto. Ahora veamos si este era nuestro juego móvil real. Eso sería un poco molesto y no creo que sea justo tener a todos los usuarios ver uno cada vez. Así que en su lugar vamos a crear una variable entera. Nos vamos a hacer público y llamarlo añadir peso. En lugar de decir show ad, vamos a decir que agregar peso es igual a peso más uno. Y eso es básicamente una forma de decir, Ok, aumentado en uno. También podríamos escribir esto como añadir peso más es igual a uno. Eso significa exactamente lo mismo. Y entonces vamos a decir que añadir peso es mayor o igual a tres. Entonces quiero restablecer adecuado por lo que es 0. Y quiero seguir adelante y mostrar mi anuncio. No iba a hacer esto va a significar cada vez que morimos, vamos a aumentar basado en la aplicación. Así que cada tercer partido vamos a mostrar a un irlandés un poco más agradable. Si seguimos adelante y vamos a abrir Unity, vamos a vincular esto y vamos a probar si funciona. Google aquí a jugador, encontrará nuestro Gerente Estatal ahí. Asegúrate de hacer clic de nuevo para inspeccionarlo, pero en realidad no hemos agregado nuestros anuncios a nuestro juego. También necesitamos crear un nuevo objeto. Vamos a crear objeto, llamar al administrador de anuncios. Gerente de música, simplemente centrado arrastrando tu ventaja por allí y luego ve reproductor de audio y asegúrate de arrastrar eso a tu manuscrito estatal así. Si todo debería funcionar, deberíamos poder rastrear sumar peso por aquí. Si seguimos adelante y golpeamos Play, podemos ver solo ir a silenciar eso por ahora. Y luego por ahí, si voy adelante y golpeo juego, muero. Podría añadir peso está bien ahora uno. Adelante y muere otra vez. Mi agregado es igual a dos. Y si lo hago por tercera vez, lo que debería pasar es que en realidad estoy mostrando aquí vamos, perfecto. Esto es unities nos decían que nuestros anuncios están funcionando. Si ahora quisiéramos construir este juego y ejecutarlo, en realidad tendríamos anuncios de trabajo, lo cual es realmente, realmente genial, gran trabajo alrededor eso significa que al final la adición a nuestro juego está realmente terminada. Este es nuestro juego móvil terminado. Es increíblemente impresionante lo mucho que hemos podido hacer en un lapso tan corto de tiempo y es genial, Gran trabajo. Eso es increíble. Y lo has hecho sorprendentemente en este curso, bien hecho a todos. Y después de completar el video final tras esto, habrás creado tu primer juego móvil en Unity y C sharp. Trabajo tan increíble. 21. Acabado: Oye ahí y bienvenidos de vuelta a la unidad por última vez. Ahora te mereces una ronda de aplausos porque has creado un increíble juego móvil. Y si es tu primer juego móvil o uno de tus primeros movimientos nuestros juegos, has hecho un trabajo increíble, un gran trabajo. Casi terminamos con un juego móvil. Y hay algunas cosas que significan cambiar antes de construirla. Y luego te voy a mostrar cómo construirlo y probarlo en un emulador. O si tienes un teléfono Android o un teléfono Android, raíz cúbica del IRS, puedes probar en uno de sus teléfonos. Tengo un teléfono iOS, pero voy a estar mostrando cómo construir con un emulador. Pero antes de entrar en eso, realidad necesito cambiar una cosa que hicimos los escribimos consiguiendo en el curso. Si abres tu guión de movimiento, recuerdas que estábamos usando teclados. Y la razón por la que estábamos usando atajos de teclado para nuestro movimiento, o teclas del teclado más bien fue porque queríamos probar y toda la computadora. Así que ahora vamos a seguir adelante y cambiar eso porque queremos construirlo. Así que elimine esto y escriba input dot touch count mayor que 0. Y eso va a revisar cada fotograma que estabas sosteniendo. Si estoy poniendo a tierra, si tienes saltos para que puedas aguantar y continuar con el trabajo, lo cual es realmente genial. Ahora obviamente no vamos a poder probar esto porque no podemos saltar. No podemos tocar nuestro monitor porque estamos en una computadora. Y obviamente nuestros elementos de interfaz realmente funcionan automáticamente con la unidad. Luego ve a la parte superior aquí, haz clic en Configuración de compilación y asegúrate de que tienes tu plataforma correcta. Voy a construir para APK. No voy a comprobar eso. Y hay algunos ajustes por aquí. Puedes establecer todo tipo de cosas. Puedes establecer tu resolución lo que quieras tener paisaje, derecha o izquierda, todo tipo de cosas. Voy a dejar esos ahora. En realidad voy a asegurarme de que sólo pueda ir a paisaje porque no quiero que en el juego sea retrato. La imagen de splash que puedes agregar si quieres. Eso es como una imagen al principio. Otros ajustes que voy a dejar ahora hay algunos ajustes de publicación, pero esto realmente podemos salir. Sólo tenemos que ir aquí, necesitamos hacer clic en Construir y tenemos que seguir adelante. Aquí es donde mi proyecto está almacenado en mi computadora. Voy a seguir adelante y ahorrar y va a dejar de construir. Ahora ese es un proceso bastante largo. Entonces dale un minuto. Una vez terminado de construir, tu juego será exportado. Si te has topado algún error al intentar construir tu juego, veces Unity sí tiene errores que podrían no ser tu culpa, tal vez con el módulo que instalaste o algo así, simplemente escribirlos directamente en Google. Y te prometo que lo más probable es que haya alguien ahí que haya tenido exactamente el mismo tema tienes y lo arregló a menos que innumerables veces y la mayoría de las veces ha funcionado. Así que solo prueba eso que debería arreglar cualquier problema que tengas que no he encontrado. Una vez que haya terminado de construir, estarás todo listo para probar tu juego móvil. Yo ambos Androides, estoy probando en el emulador de Android no jugador. Por supuesto, puedes usar un teléfono Android o iOS si no lo hiciste, y si votas por el IRS, creo que puedes descargar una extensión de Mac en un MacBook para instalar y probar juegos móviles desde allí. Ahora, antes de probar, hay algunas cosas que hay que notar. En primer lugar, dependiendo de qué plataforma utilices, si quieres probar tu juego como yo, tienes que asegurarte de que has establecido tu ID de juego al mismo que ganarás fue registrado como, que soy va a mostrarte cómo hacer ahora, todos los anuncios no eran funcionados. Así que obviamente, una vez que pongas tu juego antes de ir a ganar, preferentemente ve aquí a servicios, haz clic en anuncios y asegúrate de que has establecido cualquier plataforma, ya sea Android o iOS, este ID, asegúrate de que lo hayas configurado aquí para el ID del juego de cadena en el Add Magic, ve a abrir el administrador de anuncios y asegúrate de configurarlo para que tu cadena sea esa cadena de números. Una vez que hayas hecho eso, el anuncio debería funcionar perfectamente en tu juego. La segunda cosa a tener en cuenta con resoluciones, ahora, ganarás podría funcionar perfectamente para tu dispositivo, pero puede haber algunas cosas que están ligeramente fuera de tu resolución. Si este es el caso, simplemente cambie resolución de su pantalla en el Editor de Unity y mueva algunas cosas. Cuando estaba probando este elemento del juego mueve algunas cosas a la derecha, pero en general todo funcionó perfectamente y mi resolución estaba bastante bien. Adelante y arrastra eso al jugador NOX. Se puede ver que va a instalar mi juego para mí. Aprendiendo. Y dice Instalar Completo. Entonces puedo cargar mi juego. Volúmenes han estado aquí una cosa. Podemos ver que está funcionando bien, eso es genial. Si voy adelante y pego Play, puedo saltar igual que lo he estado. Y puedo aguantar, saltó, y voy a seguir saltando, que es realmente, realmente genial efecto morir. Tiene esa profundidad con la que empecé. Puedo contar la música si quería que todos apagaran el sonido y seguir moviéndose. Siempre hablo y sigo adelante. Y si muero tres veces, voy a mostrar en un segundo, veré un acto de prueba de unidad, que es realmente, realmente genial. Puedo seguir adelante y saltarme eso una vez que se hace y cerrarlo y podemos ver que estoy de vuelta a mi juego, que es realmente, realmente genial. Eso nos lleva al final de este curso. Has creado tu primer juego móvil usando Unity y C-sharp. Has hecho un trabajo increíble y te das una palmadita en la espalda y haciéndolo todo el camino hasta el final del curso, has aprendido habilidades invaluables de unidad y c-sharp, y ojalá hayas adquirido conocimientos suficientes para empezar a hacer tus propios juegos móviles ahora o incluso mejorar el que hemos hecho. Soy conocido por uno. Podemos usarlo en un icono para que solo puedas entrar en la configuración de tu juego por aquí, Configuración compilación de archivos, ve a la configuración del jugador. Y por aquí puedes seleccionar un nuevo ícono que no eras. Obviamente hay diferentes, iconos adaptativos Legacy Round, puedes elegir los de allí. Pero obviamente, el editor de Unity ahora está esperanzando que se vea mucho más familiar. Y el mundo del desarrollo de juegos es ahora tu ostra, especialmente el desarrollo de juegos móviles. Gran trabajo a todos. Quiero agradecerles muchísimas por tomar mi rumbo. Ha sido un placer llegar a enseñarte el desarrollo de juegos móviles. Y ojalá hayas pasado un rato divertido y aprendido mucho. Usted sí, por supuesto, tiene permiso para usar cualquiera de los recursos en este curso y cualquier cosa que construimos para moldear en su propio juego móvil. Si quieres mejorar esto y lanzado como tu propio juego móvil, puedes hacer exactamente eso. Tan gran trabajo a todos. Ha sido una experiencia increíble y espero que haya sido para ti también. Gracias de nuevo por inscribirse.