Transcripciones
1. Descripción del curso: en este entrenamiento, vamos a tocar los patrones de diseño y especialmente el patrón de controlador de vista del modelo, que es ampliamente utilizado en los legisladores de Aptiva y puede ser muy útil en el desarrollo de juegos para que
vamos a empezar a marcar la U. Y usando la unidad y herramientas. Entonces vamos a tocar un objeto inescrutable, lo que nos permite seguridad editor indie de datos y usarlo cada vez. Y luego vamos a tocar el controlador del juego para tomar las entradas del jugador y enviar comentarios al jugador para hacerle saber si Blade está bien o mal para esto, vamos a usar un tap tap venganza o un tipo de juego de guitarra héroe. Entonces con esa oportunidad más Aito y te veré en el próximo video
2. Una descripción de los patrones de diseño: Durante este primer capítulo, vamos a tocar el controlador de vista modelo, que va a ser la base de tierra para los próximos capítulos de este proyecto de juego, cual va a ser una especie de héroe de guitarra o tap tap revenge tipo de juego donde el jugador tiene que tocar diferentes entradas y ritmo con la música. Y entonces lo que Ah, podemos ver aquí es que la jugabilidad es una jugabilidad muy centrada en los datos. Entonces significa que vamos a tener que manejar datos para las pistas. Y así vamos a tener que Ah, Thor, los datos. Y entonces también vamos a tener a Teoh que use estos datos y en este capítulo, trabajando para tocar en el manejo de los datos, creando algunos datos básicos. Y lo que vemos aquí es que Ah, tenemos una serie de entradas esperadas se muestran es Colin Y así lo vamos a hacer muy sencillo por ahora donde sólo tenemos una entrada por ella una en. Pero tal es arriba, abajo, izquierda, derecha Entonces las niñas desplazadas abajo con un set beat por minuto perímetro en el reproductor, Miss presionó los botones y dividirse con la música y las representaciones de entrada cambiarán para reflejar la acción de los jugadores Como ¿Me perdí? ¿ Lo entendí bien? ¿ Me equivoqué? El jugador tiene que saber si se juega bien, y si se juega, probablemente tenga que conseguir algunas recompensas. Si reemplazas probablemente. Entonces vamos a tener una buena visión general de lo que vamos a estar tocando en el capítulo. Vamos a tener una vista rápida de los patrones conocidos,
que son las ve envidia, que es el controlador de vista del modelo o el M V M para modelo View View View y el M V P para el presentador de
Model View, que están diseñados patrones. Entonces veremos cómo debilitarnos rápidamente burlarnos de la vista en unidad, usando la herramienta U Y para que podamos darnos una bastante buena idea
representaciones bastante buenas fuera de cómo va a ser la vista, y luego cómo van a ser los datos al igual que con él. Entonces vamos a tocar el modelo de pista. Entonces es que vamos a tocar la estructura de datos. Vamos a hacerlo para que los datos sean independientes de la jugabilidad que vamos a tocar en datos reutilizables y tocar en la civilización vamos a tocar también en generar datos
simples, Aleatoriamente dijo que no tenemos que crear nuestro datos propios en el inicio mismo del desarrollo. En fueron a tocar la visualización de datos en edición también. Y luego vamos a tocar la vista de pista, que está representando la pista en la vista del juego, utilizando algunos modelos de disciplina que vamos a hacer referencia. Y luego vamos a poblar la vista con esos sujetos prefabricados. Y luego vamos a animar la vista. Y más tarde vamos a tocar el controlador de jugabilidad, tomando las entradas del jugador manejando todas las mecánicas de juego iban a tocar el patrón singleton, que pierde por acceder a un mando o exceso de un componente de juego dondequiera que se encuentre en la escena sin tener que hacer referencia manualmente a ella. Y luego vamos a tocar en las vistas de la playa es lo que queremos hacer es actualizar los puntos de vista cuando juega el jugador, dijo que el jugador sabe si ha jugado a la derecha. Por lo tanto, empecemos con una visión general rápida del controlador de vista del modelo. El controlador de vista del modelo nos dice que nos separamos en contraposición a una arquitectura competente , una común. Es autosuficiente, por lo que la confianza va a trabajar con la de los demás. Pero hay autosuficiente. Muy a menudo un competente tiene sus propios datos. Tiene hits en representación de los datos, y maneja las entradas del jugador en una banda de forma innata por lo que es Es viejo, autosuficiente en un diseño. Mejor, tendemos a separar las cosas para que sean más modulares para que sí debilite las cosas de cambio. La idea de un controlador de vista de modelo es que se puede intercambiar un controlador vory de forma rápida y muy fácil sin tener que cambiar otro componente fuera del ecosistema. En este patrón, lo que vemos es que tenemos un modelo, que son los datos mismos, y en el otro extremo está el usuario, y en el medio hay un controlador y una vista. Se tomará la vista. El modelo tomará los datos del modelo y presentará los datos al usuario en una forma
dada. Y entonces el controlador, por otro lado, tomará la entrada del usuario y modificará los datos. Y así siempre que los datos cambien, entonces la vista de fechas y así sucesivamente y así sucesivamente. Este es el controlador de vista del modelo. Este es un patrón de diseño que es ampliamente utilizado en el desarrollo de APS. Ahora hay algunos otros patrones que son muy similares a ese patter de controlador de vista de modelo y tal es el modelo de vista de modelo donde lo que puedes ver aquí es que hay una capa
diferente de abstracción entre el modelo y la vista donde tienes un ver modelo, lo cual está bien. Conocemos esos datos y conocemos la vista. Pero lo que queremos hacer aquí es asegurarnos de que se pueda tener una visión que de alguna manera sea capaz adaptarse
a un modelo. Por lo que podría tener, como una vista muy generosa, y así podría potencialmente mostrar diferentes tipos de datos. Y esta es la idea fuera del modelo de vista Model View, que también se utiliza en el desarrollo de juegos. En ocasiones otro patrón de diseño, que de nuevo es muy similar a éste, es el presentador de vista media, el presentador de vista de modelo, a diferencia del controlador de vista de modelo original. Se puede ver que el presentador está entre el final del modelo de ti, así que no es la vista que realmente data en el modelo, sino la vista se actualiza con base en el presentador, el prisionero es el gerente es el gerente global, y maneja los datos y da la vista. Le da los datos a mostrar, y la vista luego mostrará los datos, y tomará las entradas del usuario. Entonces, dicho eso, estos son solo patrones diseñados. No son sólo como algo que hay que seguir con mucha precisión. Es algo con lo que puedes jugar y cambiar es lo que necesitas, aunque suele ser bueno conocer esos patrones de diseño, probablemente, y entenderlos para que siempre que quieras crear tus propios veteranos de diseño, entonces no terminas en recrear de alguna manera un patrón que ya es una caída en las trampas de patrones de diseño desconocidos. Entonces con todo ese combustible removido, es hora de practicar. Y esto es lo que vamos a hacer en el próximo video
3. Mocking de la pista: Entonces, como vamos a empezar a trabajar en este patrón de controlador de vista de modelo, vamos a tener que ah, trabajar en los tres componentes al mismo tiempo. Pero tenemos que empezar con uno de ellos. Y siempre habrá gente que, como Teoh, comience por el final. Y, uh, normalmente, me gusta Teoh. Comience con la vista, que es más
en cuanto a cómo se va a ver la vista, uh, al final y cómo su y ha llegado a funcionar y cómo va. Teoh, pórtate. Por lo que me gusta ensuciar primero la otra vista. Ahí. Sólo estoy hablando de Ah, fresco nuevo, ¿verdad? Por qué, Trudy, proyecta con unidad Y acabo de añadir, Ah, sencillo lienzo aquí. Ah, especie de estudio. Entonces lo que vamos a hacer aquí es empezar a Mokin arriba de la vista y luego vamos a empezar a trabajar en la modelo, uh, justo después. Entonces lo que voy a hacer aquí es venir en el panel de creación y voy a entrar en el que quieras y pedir crear un nuevo lienzo. Estoy creando dos lienzos porque el lienzo que ya tengo es un lienzo a D y es una pantallas paga superposición y la que quiero Teoh Handle ahora va a ser un lienzo tres d Así y en realidad voy a renombrarlo Canvas tres D así y ahora qué Yo quiero hacer aquí es y decir que quiero llevarlo de superposición de espacio de pantalla a cámara de espacio de pantalla para que
pueda manejar tres proyección D. Y ahí solo voy a usar la cámara principal aquí, y voy a mantener los extremos llanos dissed y todos los demás ajustes a sus predeterminados. En realidad sólo voy a decir que quiero escalar con el tamaño de la pantalla y voy a dar una resolución de referencia fuera 10 80 por 7 20 por ahorrar resolución de 20 p. Y también voy a decir que quieren dedo del pie igualar la altura aquí y que quiero dar una referencia píxeles por unidad apagado 128 píxeles como este. Ahora que tengo esto, voy a importar un par de sprites encendidos, y así solo voy a ir importante la costumbre necesitas un paquete que vas a encontrar junto con este entrenamiento y ahí esto me va a dar las entradas de set off y también una zona de
gatillo que vamos a armar y armar. Entonces ahí vamos. Tenemos esos aerosoles aquí, la vida abajo justo arriba una rosa y también una zona de gatillo, que es sólo un cuadrado llano. Pero aquí tiene ajustes, como podemos ver en este depredador para que tengamos un margen y un borde para que podamos crear una plaza holo a partir de ahí. Lo que quiero hacer Aquí es entonces empezar a burlarse de un espectáculo de unos pocos me voy. Teoh dijo que, uh, voy a restablecer el zoom a esta nueva cura de lona y lo que quiero por ahora, sólo
voy a,
uh, uh, que conseguir la misma vista será más grande Y a partir de ahí, lo que soy ir Teoh crear es lo que va a ser nuestra vista de atracción, que voy a hacer un simulacro de una vista de pista. Y así para esto voy a entrar aquí y simplemente dije que quiero crear un panel y me voy a deshacer del fondo, especie de ver imágenes como esta, y sólo voy a hacerlo. Yo lo doy como un fondo por defecto. Voy a hacer que sea totalmente un horneado y darle como, uh, un fondo gris como este para que lleguemos a verlo. Y ahora voy a poner su línea Ah. Entonces primero voy a Teoh renombrar esto para seguir como te gusta esto y voy a cambiar esto que esté ah alineado en la parte inferior así y voy a darle un con off 3 20 como este. Entonces esta va a ser la representación fuera de la pista. Y ahora que tengo esto, voy a Teoh empezar a agregar algunos sub tú elementos como vimos que queremos tener cada beat representado como elementos de servir. Entonces lo que puedo hacer en realidad es simplemente duplicar este elemento aquí, y luego lo voy a llamar beat view así, y lo voy a padres a la unidad te gusta eso y voy a restablecer su posición y restablecer su escala así persona razonada, la habilidad es Teoh cambiado y voy a cambiar su altura. Entonces voy a darle como una altura de 40 y esto va a ser todo personalizable después. Pero por ahora, sólo lo
voy a sentar aquí. Y entonces lo que tengo aquí es ah es una sub vista aquí. Y lo que voy a hacer Teoh aquí es agregar en la vista de pista, voy a agregar otro componente, que es un grupo de diseño vertical. Y entonces qué? El Dodge es que colocará automáticamente todos los Niños de este objeto. Entonces ahora me voy a llevar este 100 aquí, y voy a darle, como, un color diferente que lo voy a hacer azul. Y ahora lo que podemos ver aquí es que si no aplaco este objeto un par de veces, entonces automáticamente colocará esos objetos ahí dentro. Ahora podemos ver que este compartimiento distribuirá automáticamente este objeto a lo largo de su altura. Por lo que también voy a añadir otro componente aquí, que es un tamaño constante, tamaño
común, miedo y el futuro condensado. O perderme para decir que quiero encajar el tamaño de este objeto en función del contenido de este objeto. Entonces con base en los Hijos del tema y ahí, voy a decir eso verticalmente. Yo quería ser la talla mínima. Y así lo que puedes ver aquí es que ahora todos los objetos van a ser retomados juntos ya que este objeto ahora es la altura de todos los objetos juntos. Y aún tengo acceso al espaciado aquí. Entonces si quisiera espaciarlos, como con 20 píxeles cada uno así, entonces podría hacerlo así. Entonces esto es Ah, este es un muy, uh, Foley Andy a hacer de esta manera y esto me pierde también. Entonces simplemente toma esta pista aquí y luego simplemente voy a hacer que esta pista pasee hacia abajo mientras vamos por el juego. Entonces lo que vamos a hacer es que al principio mismo del juego, vamos a inicializar la vista con toda la información que obtenemos de la pista, y vamos a llenar esto con toda la información diferente. Es ah, arriba, abajo, izquierda, derecha. Y entonces simplemente vamos a hacer que se mueva hacia abajo así. No, ¿qué? También voy a Teoh a hacer Aquí y dijo que quiero que esto controle el ah, los lazos de China y yo quería controlar el ancho, pero no quiero que controle la altura. Yo sólo quería controlar el con. Y entonces lo que también vamos a hacer aquí y ahora como entonces decimos que queremos cambiar los puntos de vista de un poco para que tengamos representación de izquierda, derecha, arriba abajo entradas. Y así para hacer esto, simplemente
voy a,
uh, uh, agregar O en realidad, podría simplemente duplicar esto y luego lo ejecuté. Y luego voy a poner esto para tomar por completo, ah, toda su transformación padre así. Y ahora voy a reemplazar la imagen fuente. También voy a restablecer la escala así y ahí voy a cambiar esto a usar de la,
um, um, izquierda Earl. Y también voy a decir que quería preservar,
uh, uh, la expectativa y también quería ser blanca. De lo contrario, es azul contra azul, y no es mucho ella capaz Y así tengo esto. Ahora, esto es esto va a ser mis cosas abajo va a ser mi vista de entrada izquierda. Y así voy a renombrar esto a izquierda, y voy a renombrar esto para dejar una habitación como esta y voy a deshacerme de todo esto . Y ahora que tengo esto, voy a duplicar esto un par de veces, y todo lo que tengo que hacer ahora es ah y decir, toma este y voy a decir bien, uh, y abajo. Y así, como cabría esperar, voy a llevar esto al gran Perot y escribí y abajo me gusta mucho esto. Y voy a reemplazar la imagen fuente para usar el abajo, rociado y arriba Sprite así y justo así. Entonces ahora tengo todos estos, um, objetos que podré usar más adelante. Y simplemente voy a cambiar, puedo darse cuenta de que llegó a restablecer la escala de nuevo para todos los demás objetos. Por lo que quizá quieras que Teoh asegúrate de que no sumes con esos valores como este. Y ahora voy a decir que no voy a tener diferentes colores para el año. El ritmo izquierdo arriba y abajo. Entonces, básicamente, solo
voy a tomar colegios arbitrarios que coincidan con los colores del
mando PlayStation cuatro . Entonces voy a establecer que la izquierda va a ser de alguna manera rosa y el abajo es azul. El derecho es rojo así, y el arriba va a ser verde así. Pero en realidad puedes simplemente elegir cualquier color que quieras. En un video más, veremos cómo realmente podemos aprovechar las entradas multiplataforma y tener diferentes conjuntos de sprites para la PlayStation, la Xbox y PC y otras versiones. Entonces esto es, Ah, casi todo lo que quería. Pero también quiero poder inclinar la pantalla para que tengamos alguna perspectiva es que
pudiéramos ver en el simulacro original Up. No queremos que este sea un juego muy dos d mucho a D. Queríamos ser más especie de un juego de tres d. Y así para hacer esto, realidad
voy a Vamos a volver a entrar aquí, y voy a añadir un nuevo panel como este a la vista de pista, y lo voy a llamar Tilt View. Y así la vista del trato va a seguir siendo un a raíz del lienzo tres como este, y simplemente voy a aparentar la vista de pista a la inclinación de ustedes así. Y ahí con la vista de hasta. Lo que voy a hacer aquí es y decir que quiero un poco de un nuevo offset desde abajo, como 100 píxeles y tal vez lo mismo en la parte superior, como 50 píxeles también. Y no, ¿qué? Quiero asegurarme de que haya que pondré el pivote en las bahías de vory Y así simplemente
voy a decir el otro pivote a, ah cero como este, y probablemente voy a tener que reiniciar esto ahora también. 50 y 100 así. Y lo que esto me permite hacer entonces, es rotar la pantalla aquí así e inclinar la vista. Entonces voy a usar un valor arbitrario de 60. Y entonces lo que eso siempre lo hizo hacer ahora no es cambiar la posición de la vista de pista. Y como pueden ver, entonces el viaje se va a mover en un espacio tres D sobre esto es lo que quería. Y así una vez más, puedo ya sabes, solo duplica esto unas cuantas veces, y voy a conseguir, uh, el efecto que quería que Teoh tuviera poco interés y hiciera esto y aquello. Se diciendo al día siguiente tienen trato. Vamos a estar, ah, preparando los pre fabs que podemos usar para en su lugar ella ocho letra y también vamos a
empezar a trabajar en el guión modelo.
4. Guardar elementos UI como prefabs: De acuerdo, entonces ahora que tenemos nuestro un moke arriba de la tribu, tú lo que también queremos que Teoh haga es agregar la zona de gatillo, que le va a decir al jugador dónde dos y cuándo realmente para activar, uh, el insumos. Y para hacer esto, simplemente
voy a tomar el objeto izquierdo aquí, y lo voy a duplicar y voy a reparar y a la a la fría Te gusta esto y sólo voy a reiniciar. Es, ah posición como esta 200 Y también voy a restablecer la escala 111 y así. Y ahora voy a cambiar esto para estar en la raíz así y sobre todo voy a alinear la posición y la gente así. Y así con esto, voy a renombrar esto para desencadenar zona así, y me van a leer del objeto niño aquí y allá. Voy a cambiar estos de nuevo a blanco, y también voy a cambiar esto para usar la zona de gatillo Sprite. Y ahí se puede ver que en el sitio de imagen tenemos este hermoso dicho Teoh rebanado, y simplemente voy a desmarcar feel center y por ONU chequeo centro de campo tendría muere que si hemos mirado el spread aquí, Este derecho tiene algunas fronteras y simplemente lo hará totalmente transparente dentro de las fronteras. Entonces con esto, esto me va a dejar apuntar a esta zona aquí y como más tarde queremos poder
poblar , atraer vista con objetos, obviamente no queremos tener este objeto o realmente en la vista de pista. Y así están todos configurados aquí. Lo que también voy a hacer aquí es entonces simplemente seleccionar todos esos objetos ahí dentro. Voy a desmarcar el objetivo refundido porque esto no es intratable. Entonces no necesito ah, tener la otra opción de desayuno objetivo ahí. A lo que voy a hacer Teoh. Aquí está y simplemente simplemente entrando aquí y creando una carpeta nueva a la que voy a llamar pre fabs así. Y voy a entrar aquí y arrastrar y soltar el último y derecho y y y abajo pre fabs así. Y así los voy a dar en la vista ahora, sólo tienes un compañero ideal donde voy y lo que quiero hacer. Pero después sólo vamos a deshacernos de ellos y volver a poblar la vista con los datos que provienen de la pista. Y así en el siguiente video, vamos a empezar a trabajar en el modelo de pista. Entonces en todos los datos que queremos poner en un en un track musical
5. Cómo dar forma a los datos de la pista (modelo): De acuerdo, Entonces en este video, vamos a estar trabajando en el on the track pattern o el track model off the de este model view controller Better. Y así hacerlo y simplemente va a crear una nueva carpeta que en Canticle scripts como este. Y en esta carpeta voy a ir a crear un nuevo guión C agudo y voy a ir pista así, y voy a empezar a editar la pista así. Y entonces con lo que voy a empezar, en realidad sólo
voy a deshacerme de todo esto, y voy a, um esto todo en el espacio de nombres una especie de me gusta hacer esto. Hace que sea tu carta para, ah, manejar el proyecto. Y así con esto aquí, sólo
voy a seguir la pista para ser comportamiento inmoral por ahora. Y podemos pensar en ello como ser un jugador de pista de alguna manera. Y sólo voy a pensar en cómo son los datos? Por lo que el modelo en el controlador de vista del modelo es muy importante porque son los datos que
usamos para mostrar la vista. Pero también son los datos que utilizamos en el controlado o dos controlado el juego. Y así es muy es la raíz misma de un controlador de vista de modelo. Y entonces qué? Voy a Teoh empieza a preguntar. Aquí es lo que es una pista? Cual es toda la información que queremos tener en una pista. Por lo que muy obviamente podríamos empezar a pensar lo suficiente. Ah, bueno, tiene un título y tiene un nombre de autor y tiene una descripción. Tiene disco, nombre y demás. Y así todo esto es bonito de los tuyos, y simplemente no los voy a meter aquí. Pero probablemente lo haremos en un capítulo posterior, o para empezar a mostrar colecciones de tracks y dejar que el jugador tregua entre varias pistas. Pero son en lo que realmente quiero que Teoh se centre es, ¿en qué va a hacer esta pista en mi controlador? Se va a contar mi vista de pista. ¿ Cuál es la información a mostrar? Y va a decirle a mi y llegó controlador cómo usar esta información, y así básicamente va a ser una lista fuera de la información porque simplemente va a estar en la información que digamos es cada beat queremos tomar una entrada y queremos mostrar un input y queremos tomar una entrada y asegurarnos de que se juegue al jugador. Eso insumos. Entonces solo lo voy a representar como una lista de enteros. Podría crear algunos datos más inteligentes en cuanto a cuál es el ritmo. A lo mejor tiene una entrada en el tiempo y demás, pero esto es algo en lo que sólo vamos a meternos. Ah después, supongo. Pero por ahora sólo voy Teoh, hazlo muy sencillo. Va a ser una lista de enteros y aún así, si es cero, entonces se va a dejar. Significa que esperamos la entrada de la izquierda. Si es uno, entonces probablemente sea, Ah, abajo. Y si es también, está arriba. Y si son tres, es correcto. Y también voy a usar un default, un valor de menos uno para representar un beat vacío. Eso un beat que simplemente no queremos jugar. Y así para esto solo voy a decir que quiero crear esto una lista pública de enteros que estoy llamando beats y eso es todo. Y así cada vez que vuelva aquí, ahora
voy a crear un nuevo juego objetando aquí para que podamos echar un vistazo a eso. Tener los datos se representa. Y voy a llamar a esta pista un jugador así, y voy a añadir una pista de componentes. Y lo que podemos ver aquí es que esto ya es ah, Sarah realizable. Por lo que sólo puedo decir que quiero tener tres, y entonces el uno no es para que se juegue. Y el segundo es jugar el año la entrada izquierda y el siguiente es reproducir la
entrada descendente , por ejemplo. Y esta es la estructura de datos. Esto es lo que queremos que Teoh maneje como estructura de datos. Y también hay una información muy importante. En cuanto al controlador de juego son los beats por minuto porque se va a contar la jugabilidad . ¿ Cuál es el bit por minuto? ¿ Cuál es la velocidad de esta pista? Y esta es otra información que quiero agregar aquí, y lo voy a poner por encima eso que si tenemos como una pista muy larga, no
queremos que el dedo del pie encuentre esta información todo el camino hasta el fondo. Entonces voy a decir imagen pública o B p m igual y le voy a dar un valor diferente de 120 como este. Y así cada vez que vuelvo aquí, entonces obtengo la información del BPM aquí. Entonces esto es todo. Y lo que vemos aquí es que en este componente ah track aquí tenemos todos los datos y
podríamos empezar a sumar todo el making X. Si estuvieras en una arquitectura basada en componentes, comenzaríamos a agregar una mecánica lthough que mostrará la vista de pista y luego también montaría la mecánica de juego. Pero debido a que queremos separar los datos de la vista y del controlador, uno de los temas que tenemos aquí es que sí sabemos que queremos tener un objeto de juego para cada pista. Ah, que queremos poder jugar. Y así no queremos que este guión aquí haga referencia a un comportamiento modelo, y esto es lo que vamos a estar haciendo en el próximo video. Vamos a cambiar esta pista en un modelo de datos en lugar de ser un comportamiento motor
6. Separar los datos del componente: De acuerdo, Entonces en este video, ahora
vamos a convertir este ah modelo de datos en un modelo de datos real y totalmente un abandonado del modo de comportamiento que lo manejó. Entonces lo que voy a hacer aquí es entonces decir que quiero crear una nueva clase de objetos. Voy a hacer una nueva clase pública, y voy a llamar a esta pista, y voy a llamar a los datos de la pista para que no lo haga, uh s para que sea en el mismo nombre es el otro y así ahí dentro y simplemente voy a tomar esas dos líneas aquí. Entonces voy a tomar las propiedades de ahí en los datos de comercio y aquí dentro, voy a hacer referencia a una pista pública probando datos, que voy a ir por la pista así, y siempre que haga esta nota es que si vuelvo en el editor ahora, se
puede ver que todo simplemente va a desaparecer, y va a desaparecer porque estos datos de pista no son sobrevivibles por defecto. Por lo que significa que no se puede guardar en el formato de archivo de la unidad y así tenemos que cambiar esto. Voy a llamar al sistema Sarah Realizable. Y así este es un atributo que dice que esta clase es realizable por la NASA y así todas las propiedades pueden esterilizarse ahí. Y ahora voy a volver al editor, Y lo que vemos es que ahora tenemos la pista. Y así la pista está aquí y así podemos cambiar, uh, los perímetros que teníamos y yo podría tener múltiples pistas también, Por
ejemplo, podría hacer de ella una lista de pistas. Y lo que ahora estoy recibiendo anuncio de Teoh es a medida que pasamos, también
quiero ser ah, capaz de decorar un poco este inspector. Voy a usar un encabezado como este, que Duncan demasiado cool relajado. Voy a ir esta obra de teatro que configuraciones como esta y también voy a añadir un pensamiento que sólo para asegurarme de que las personas usuarios del editor entenderán qué es esto. Y así voy a sumar número fuera de latidos por minuto así. Y también quiero agregar un atributo de rango para que no podamos ir, por ejemplo, a cero minuto Bittner y así lo voy a usar rango de rango. Está revisado. Y así el atributo de rango simplemente tomará unos mínimos. Todos sólo dicen 30 y máximo va a ser 360 Lo cual debería ser bastante difícil, supongo. ¿ Y para que? No, Si vuelvo al editor, podemos ver que van a tener los ajustes de reproducción y los consejos de herramientas. Esto es Ah, esto ya es bastante bonito, aunque, Um, hace que sea poco difícil ahorrar porque,
ah, ah, todo
esto está en una sola escena. Entonces podría básicamente ahí La información sigue en referencia en el comportamiento motor
porque el es el comportamiento del dinero que hace referencia y crea y Cyril mira un nuevo
dato de pista . Y así esto no es muy útil para manipular en el editor. Si quería poder barrer pistas razonablemente y ni en tiempo de ejecución, porque en un momento definitivamente quiero poder quedarme con un solo jugador y simplemente barrer los discos de alguna manera. Entonces solo quiero poder sudar las pistas y simplemente no tener que cambiar al jugador para barrer la pista que hace referencia. Y así es lo que vamos a estar tocando en el siguiente video cuando un Baluch Annette tuvo que Tom Lee aislar la medalla de pista del comportamiento motriz.
7. Cómo convertir los datos un tipo de activos personalizados: Entonces en este video vamos a estar viendo cómo aislar totalmente la medalla de pista del comportamiento
motor para que podamos hacer referencia a cualquier pista manteniendo el mismo jugador de comportamiento. Y entonces lo que voy a hacer aquí es luego volver en el guión del camión aquí y básicamente, sólo
voy a deshacerme de esto aquí así. Y voy a quitarle esto de nuevo a la pista así. Y yo simplemente me voy a deshacer de esto también. Y ahora voy a decir que la pista ya no está heredando de uno de comportamiento, sino heredando del objeto descriptivo. Descriptivo se objetará, representa datos. Por lo que es un objeto Cerulli Zobel hay otras formas de varios ojos objetos puedes utilizar
la centralización XML . También puedes usar Jason Civilization si quieres intercambiar datos. Ah, totalmente fuera de la unidad, es muy fácil ah intercambiar datos utilizando otros formatos. Pero la forma más fácil que dentro de la unidad para hacer esto en el editor en en Runtime es usar el script, objeto
herbal y objeto tan desacreditable y perderme para crear datos personalizados dentro del Editor de
Unity y para referirlos más adelante. Y así lo que voy a hacer aquí Thio Thio es entonces si hago esto, entonces si vuelvo al teatro que esto ya no funcionará. Entonces simplemente me voy a deshacer del jugador de pista. Como podemos ver aquí. El componente track on me dice que el script Associated no se puede cargar porque ya no es un comportamiento motor. Entonces no, simplemente
voy a deshacerme de este objeto aquí. Y hay un atajo muy rápido que me pierde para crear los datos. Y lo hago agregando el menú de creación de activos. Ah, atributo aquí y allá. Voy a darle un nombre Munyon. Y así el nombre del dinero va a ser solo voy a decir unidad Coach Flash late flash un nuevo draft como este, y también espero darle un nombre fino por defecto y el objetivo del archivo por defecto va a ser no beats track dot asset y porque de esto sólo va a ser un activo. Tiene que salvarse, no acredita. Y así solo voy a hacer esto así y cerrar la declaración de atributos y
ahora cuando vuelva aquí. Sí. Lo que puedes ver es que no voy a entrar aquí y nunca puedo crear en el
menú final aquí, necesitas un entrenador late nueva pista. Entonces primero voy a crear una carpeta nueva y voy a llamar a esto pistas así y en las pistas, voy a ir a crear una nueva una nueva pista. Voy a llamar a esto 120 bpm así y se puede ver que ahora tengo la capacidad de
hacer más o menos lo que estaba haciendo antes. Pero esto ahora está en formato de datos. Ahora está en el archivo que luego puedo usar. Y también puedo, uh, guardar esto y distribuir esto muy fácilmente. Es muy fácil de manejar editor indie y muy fácil de mirar en tiempo de ejecución ahora que tenemos Ah , esta de las cosas más importantes que tenemos que hacer cuando creamos modelo de datos es formas rápidas de
generar de alguna manera datos falsos o datos de degustación porque es simplemente no quiero tener que entrar aquí y decir:
Bueno, Bueno, quiero tener cinco y el primero con tres va a ser menos uno y así sucesivamente. Quiero poder generar esta tesis probando datos antes de crear cualquier tipo de editor pierde
datos a ambos o a los datos dentro del editor, que vamos a tocar más adelante. Pero quiero poder generar algunos datos de prueba de forma real rápidamente, y esto es a lo que vamos a estar tocando en el próximo video.
8. Generar datos aleatorios (para prueba): Entonces en este video, vamos a estar buscando cómo generar datos de degustación muy rápido desde el editor. Entonces para hacer esto, simplemente
voy a volver al,
uh, uh, modelo de
pista aquí, y lo que voy a hacer aquí es, entonces voy a empezar a agregar algo de información para generar estos datos. Normalmente no pondrías la información que genera los datos en el propio modelo. Eso pondrías en una clase A netted porque la clase editor será responsable de
generar los datos. Y así los datos no deben contener los errores paramédicos que utilizó para generar los datos . A menos que quieras poder regenerar los datos y quieras centralizarlos ahí rápidamente, y así para que sea muy fácil, solo
voy a poner eso en el modelo de pista en sí y lo más de nuevo para poner los datos en el propio modelo de pista para que eventualmente pudiéramos usar esos métodos en tiempo de ejecución y poder generar algunos datos de fundido aleatorio en tiempo de ejecución. Pero normalmente de lo contrario mantendrías esto fuera de la pista. El modelo de datos para poner esto en clases de edición que solían generar el modelo en sí. Lo que voy a decir Teoh aquí es que voy a hacer referencia primero a un
entero público estático , que es al que voy a llamar input y que voy a hacer que sea difícil porque
quiero que esto sea lo más generar es posible. Y así por ahora hemos definido que queríamos poder Teoh usar entradas a para izquierda arriba y
derecha y abajo por lo que hace cuatro entradas. Pero posiblemente podríamos usar diferentes versiones como un stream down versiones, una versión más simple con solo dos o tres entradas o una más complicada como un
usuario Ah ventajoso , un jugador avanzado como un pro, tú jugador pro especie de insumos. Y entonces tendríamos que manejar más que solo cuatro entradas. Por lo que necesito hacer referencia al número de entradas que quiero usar para generar los datos para
que pase de 0 a 3. O posiblemente podría pasar de 0 a 7 si quisiera tener, como, ocho entradas diferentes. Y ahí simplemente voy a copiar basado, uh, esto porque esto sólo va a tardar demasiado en escribir. Pero déjame solo explicar lo que tengo aquí. Entonces este va a ser el pre roll. El pre roll es como ritmos vacíos maney lo queremos tener al inicio de la pista. Porque si no queremos que la pista comience con la jugabilidad en Stanley, queremos que el jugador se tome el tiempo para ver las notas comunes. Por lo que este va a ser el número off beats vacíos que no se jugará al inicio de la pista. Y luego vamos a añadir notas. Vamos a sumar beats por bloques. Y así es como ritmos mínimos maney que queremos tener en una cuadra. Y así es como maney número máximo de playa que queremos tener por cuadra. Y ahí este es el número mínimo fuera de playa vacía que queremos tener entre bloques y este es el máximo y número off beats vacíos entre bloques y al final mismo, los salarios tienen el número de bloques que queremos generar. Entonces la idea aquí es que solo vamos a hacer un gran bucle y vamos a empezar a añadir beats basados en rend um, valoran los números aleatorios para hacer esto. Entonces para volver a hacer esto, podría poner el método randomize. Podría ponerlo en una clase de editor para que solo esté disponible dentro de la unidad asistida o ya
no esté disponible para a tiempo y aún así mantener los perímetros en la propia clase. Pero solo voy a poner esto en la pista por ahora. Y así es ah, siempre un Teoh útil usar esto en tiempo de ejecución si quisiéramos generar algunos datos aleatorios. Entonces ahí voy a declarar una nueva división pública, y la voy a llamar Ejecutar demise así y en aleatorizar. El primero que quiero hacer es entonces decir que beats iguala nueva lista fuera enteros. Lo primero que tengo que hacer es restablecer esto. De lo contrario, sólo
voy a seguir sumando a ah, la lista y son lo que voy a hacer aquí es entonces empezar por el pre roll. Entonces para el periférico, voy a hacer un bucle completo, y voy a decir por entierro tu B es igual a cero y B siendo un menos que pre roll y luego ser incriminado cada Luke. ¿ Entonces qué? ¿ Qué estoy haciendo que estoy haciendo beats add porque es ah, es una lista. Es muy sencillo. Y luego voy a decir beats agregar menos uno. Entonces esto va a sumar el dato menos uno que quiero decir para los beats del GMT y luego veremos más adelante cómo podemos manejar esto. Ahora Lo que quiero que Teoh también haga no es decir cuatro y todos están seguros para el entero. Y voy a llamar a este B l Caylee Block igual a cero, Entonces bloquear siendo menor que el número de bloques y otra vez bloquear siendo incriminado cada vez. Y ahora voy a decir que quiero definir una nueva longitud de bloque ¿Te gusta cómo? Maney, ¿Cuántos ah beats vamos a tener en esta cuadra? Y así ahí voy a definir el va a llamar a esta longitud de bloque y la longitud de la mirada va a ser rend um range. Entonces voy a usar el rango aleatorio y se puede ver que son una de las cosas que he visto muchas veces, en realidad, uh, donde la gente tipo de esa lucha es entender que hay dos implementaciones del el método de rango. Ahí están maravillosos los flotadores y uno para los enteros y el de los enteros nos dice que el máximo es exclusivo. Por lo que si dices al azar 01 conseguirás Onley cero. Nunca conseguirás uno. Entonces si quieres un valor que sea aleatoriamente cero en uno, tienes que decir rango aleatorio 02 para que pase de 0 a 1. Y así ahí voy a usar,
uh, uh, simplemente bloque mínimo y bloque máximo como este Y y Granger dijo, más uno para que nosotros,
ah,
usemos ah, al otro el valor máximo. Ahora voy a decir que para entero ser igual a cero y luego ser un menos que Google reclama y luego el plus plus, voy a empezar a agregar algunos beats. Y así ahí voy a decir que terminó tu ser igual a Brendan Range tipo de lo mismo. Llave aleatoria. Y ahí esta vez voy a usar cero, y voy a usar la entrada,
um, um, entradas aquí valor que han creado Ah aquí. Entonces esta es una variable estática para que se comparta entre todas las pistas, y, uh, simplemente
podemos cambiarla más tarde si queremos. Y así ahí tengo esto Este nuevo,
uh, uh, número
aleatorio generado. Y así por el esto está basado en cero, entonces no quiero hacer más uno, porque de lo contrario eso terminaría con, um, valor. Habría fuera del fuera del euro y ahí dirán,
uh, uh, beats agregan ahí causan interés más allá del ritmo que acabo de crear así. Y así ahora que tengo esto,
uh, uh, lo que también puedo hacer es entonces sólo voy a hacer lo mismo con el intervalo y con
el intervalo, sólo
voy a ir esto entrar planos de agujero como este extremo de una longitud, y ahí esto va a usar intervalo mínimo y del máximo animal así. Y esto no va a usar el Intervalo Blaine para el máximo. Y ahí es que sólo vamos a, uh, esta vez decir que queremos sumar menos uno como hicimos para el pre roll. Y entonces qué? Esto es lo que esto va a hacer aquí es entonces decir que vamos a entrar en este bucle aquí por cada bloque que queremos crear. Entonces vamos a empezar a crear un bloque, y luego un intervalo un bloque, un intervalo, un bloque cuando intervalo. Pero no queremos tener un intervalo al final. No queremos terminar con un intervalo. Y entonces lo que podemos hacer aquí es entonces decir que si bloque Así que vamos a decir si bloque Ah, encurtidos el número de bloques menos uno. Entonces sólo vamos a hacer un descanso para que salgamos del bucle celular. Si hemos llegado al último bloque y para que así Tenemos esta función aleatoria ah generadora que podemos que posteriormente podamos usar. Y así por ahora, la única forma en que podemos usarlo si vuelvo al teatro solo para asegurarme de que todo esté bien ahí llego a ver todos los perímetros que tienen. Pero eso es todo. El único modo en que puede generar estos datos es mediante el uso de otro script, ese tiempo de ejecución. Y así es por ello que trabajar para empezar a trabajar en un editor personalizado para agregar aquí un botón personalizado que pierde al hacer clic en este fondo y generar esos datos aleatorios. Y esto es lo que vamos a estar haciendo en el próximo video
9. Editar los datos con un inspector de propiedad personalizado.: Entonces en este video, vamos a crear un hecho a medida ya sea para la clase de pista que pierde Teoh, Agrega algunos botones aquí que 'll es para activar el método aleatorizado que
ya hemos implementado. Entonces vamos ah, vamos en el guión aquí. Y voy a crear una nueva carpeta de set la cual soy Cantile 80 ahí. Y es muy importante nombrarlo editor así para que,
uh, uh, los scripts que hay en esta carpeta no sean evaluados en tiempo de ejecución. Y así cada vez que construyas, no se tomarán
todos los guiones que estén en una carpeta de editor. El edificio no generará errores ya que utilizas y haces referencia a algunas clases de edición. Y en esta carpeta del editor, voy a ir a crear un nuevo traje, guión
corto, que voy a ir editor de pistas así como así. Y ahora veamos qué podemos hacer cuando yo, uh, regrese aquí cuando se puede ver es que el ah, en uno de desarrollado se puede ver que esta, uh, tragedia
objeto o ahora es parte de la asamblea. Ves, editor
afilado uh, aquí y no parte de
la ah, la otra, para que veas que aquí no existe. Entonces está ahí dentro. Y así sólo se construirá para su uso en el editor. Entonces, ¿qué? Yo quiero ah, hacer. Aquí tienes y, uh, solo agrega el mismo espacio de nombre como este y así. Y ahora me voy. Teoh dijo que esto va a ser en 80 la clase, por lo que va a heredar de editor y se puede ver que editor no existe por una sencilla razón que tengo el y el editor de Unity usando. Y así ahora solo puedo decir editor como este y con una clase nativa, también
necesitamos agregar la costumbre que 'd o atributo aquí para decir qué tipo de objeto puede conseguirlo Y solo se iba a decir que está destinado a, um, lo es la pista así. Y ahora vamos a referenciar atraer desde dentro del absoluto. Eso es lo primero que queremos hacer es que queremos hacer referencia al objeto que el editor está editando actualmente. Entonces ahí estoy llegando a referirme a una nueva pista, que voy a enfriar pista ahí. Tenemos algunos métodos de mensaje que podemos usar tales es on enable y así sucesivamente. Habilitar se va a activar siempre que seleccionemos un objeto en el editor que muestre los datos. Y luego voy a decir track igual y luego también usado Target y Target es un
miembro heredado del final de la clase porque es solo un perilla Jek a Voy a tener que echarlo vuelta a una pista como esta. También lo que podemos hacer también es en una anulación al método que está frío en el Inspector Gree así y en el inspector gooey. Si solo hago el de un paseo así y luego vuelvo aquí y ahora selecciono la pista . Podemos ver que hemos perdido todos los datos simplemente porque simplemente no estamos mostrando los datos. Y así si quiero mostrar los datos, simplemente
puedo llamar a las bahías de la boya Inspector. Y al hacer esto, estoy llamando al miembro heredado el que estoy llamando apagado a la versión heredada en Inspector Goofy. Y así ahora voy a conseguir a Thea los datos mostrados de nuevo. Y ahora lo que quiero hacer es agregar más características a esto y así hacer eso, lo que quiero hacer es entonces comprobar si ya tenemos alguna, ah bits información en la pista, así que podría simplemente hacer si trek dot beats dot count es igual a cero, entonces quiero hacer algo en lo contrario probablemente mostrar un mensaje diferente y ofrecer diferentes, cosas
diferentes,
diferentes ahí dentro. Lo que voy a hacer es ir y agregar,
ah, ah, editor va usar editor booey layout para mostrar un cuadro de ayuda. Y en el timón, Boggs. Diré que la pista es siempre la pista simplemente vacía de ng en este In on Pass una cinta de mensaje, diré información de tipo de mensaje como esta. Y así sólo podemos comprobar realmente esto. Por ejemplo, si vuelvo aquí y diría que quiero cero. Entonces tengo esta información aquí. Me dice que la pista está vacía y así esta es Ah, esto es una cosa. Y ahora qué? También quiero a Teoh aquí no se dice en bobo diseño a la parrilla fuera botón. Y luego para las personas que ya han utilizado en el pasado el viejo Gu Easy Stam. Funciona como si las gafas funcionaran mucho igual que el viejo tallo grasiento. Entonces estoy llamando a este método que va a mostrar un botón y también devolver el estado
del botón cada vez que se hace clic. Y así volverá verdadero cuando hagamos clic en este botón. Por lo que también se acaban de decir, Generar Random Trek y pasaremos un estilo de editor passen. Es un estilo y utilizar los muchos, pero en muchos estilo de botones para esto en. Por lo que esto va a mostrar el botón. Entonces si vuelvo ahora al teatro, deberíamos ver este cuerpo y generar pistas aleatorias. Pero no hace nada. Sólo hará algo si pongo todo esto en una declaración if como esta y luego digo lo que
quiero hacer y lo que quiero hacer es y decir track randomize así. Y esta es la razón por la que he puesto este método antes de crear El método es un
método público para que pueda ser fácilmente evaluable desde el editor de pistas porque si lo fuera, si fuera privado que la tragedia de su clase no podía acceder a él. Y así ahora que tengo esto. También puedo simplemente copiar pegar esto y ahí simplemente voy a cambiar esto y ahí voy a establecer una pista aleatoria de fecha como esa para que tengamos tengamos un
mensaje diferente y ahí vamos. Entonces ahora tengo generar pista aleatoria. Doy clic en esto, y como podemos ver, el método funciona bastante bien. Y tenemos todos los beats y los ajustes aleatorios, la parte inferior. Entonces tal vez queremos realmente tomar esto,
um, um, manera diferente. Pero en realidad, lo que realmente quiero es no mostrar todos los latidos así. Y antes de hacer otra cosa, lo que también voy a hacer aquí es entonces agregar un algo muy importante. ¿ Cuál es? Cualquiera de utilidad y voy a hacerlo. Por lo general, el método se llama set dirty y tiene el objeto track. Y esto es muy importante porque cada vez que lo guardes, proyecta en inmunidad. Cuando guardas un proyecto y sigas, no guardas pisó la escena pero salvó el proyecto. Guarda todos los datos que sabe que tiene que guardar. Y si cambias algo a un objeto como un dato que cambias. Has cambiado datos en un objeto y tienes que decirle al editor que este objeto ahora está sucio. Por lo que tiene que guardarse siempre que guardes el proyecto o uno de ustedes guarde cada vez que salgas del editor. Y así ahora lo que también quiero que Teoh haga aquí es entonces volver en el ah, en el objeto de pista aquí. Y simplemente voy a agregar un y el atributo aquí para decir ocultar en Inspector porque
no quiero mostrar los bits Información en el inspector o al menos no quiero que se muestre así. Entonces ahora lo que realmente quiero Teoh que tienes aquí es solo la configuración de reproducción,
la configuración aleatoria, los encabezados de generaciones aleatorias y luego la parte inferior. Y entonces lo que voy a hacer Aquí está y volver allá adentro Y también voy a tomar el propio método bobo
inspector. Voy a subir todo el camino para que salga primero. Y así lo que podemos ver aquí ahora es que tenemos este cuerpo aquí ahora en lo que puedo hacer aquí es empezar a mostrar los datos de una manera diferente. Y así para hacer esto, voy a ah, volver aquí y voy a decir que quiero tener un 80 allá va a usar editor gree layout, y voy a usar el big in scroll view. Y voy a comenzar su vista cool así porque no quiero que ALS los bits se
muestren en el vory en muy largo camino. Entonces quiero ir a mostrar esto,
um, um, dentro de una vista de desplazamiento. Pero como podemos ver esto cruel de ustedes esperan que un vector tude conozca su posición. Entonces voy a tener que hacer referencia aquí. Voy a referir a una víctima, también, que voy a llamar a posición así y pero ahí voy a pasar la posición así . Y ahora también lo voy a usar ¿De acuerdo lee fuera otra vez. Y ahí esta vez voy a hacer la vista de desplazamiento final así y en medio de lo que sea. Cualquier cosa que ponga entre entre sí será automáticamente fecha dentro de esas vistas de desplazamiento. Voy a hacer un bucle y voy a hacer el bucle para entero. Yo igual a cero. Yo siendo Liz. Entonces el número off late en las pistas de playa que cuentan así y me
incriminan cada vez que quiero exhibir. Entonces voy a usar al Editor Gooey tarde. Sí, pero otra vez. Y voy a usar el encendedor indígena. Entonces tenemos formas realmente diferentes de mostrar un indígena que es un campo, o pop y así sucesivamente. Pero sólo voy a usar a los indígenas más tarde. Y así la calumnia imager está pidiendo valor y un valor mínimo y máximo. Entonces ahí voy a decir que quiero pasar track dot beats y luego tomar ah, la actual sea información. Y entonces diré que el valor mínimo es menos uno en el valor máximo va a ser track dot in bitch. Y en realidad, esto va a ser las entradas de la pista de vidrio menos una, porque ah lo rastreó, que es una, um, una propiedad estática. Entonces es un sensato a nivel de clase, no el nivel de instancia, y para que solo voy a hacer esto así, y si vuelvo al inspector, entonces llego a ver dentro de una vista de desplazamiento toda la información. Lo que en realidad no podemos es, sin embargo, es que la vista de desplazamiento no es scroll herbal. Y no es escalable porque le decimos que muestre un pergamino de ti dándole una posición. Pero nunca asignamos esto de vuelta así y esta es la forma en que
funcionará la mayor parte del editor de widgets . Es ese el encanto que se muestre la vista de depósito de garantía, dada una posición, y luego también devuelve la nueva posición. Por lo que simplemente podemos actualizarlo así. Y como estamos en ello, lo que también podemos hacer es no decir que podamos. Ahora lo es los datos generados aleatoriamente. Al hacer esto, simplemente
diré que mostramos el valor. Pero si esta tierra de cambios, entonces actualizamos la devaluación también. Y si hago esto, entonces sólo ahora puedo desplazarme aquí. Pero también puedo actualizar y cambiar el valor si lo quiero así. Y así para terminar esto, lo que también voy a hacer aquí es entonces agregar alguna otra decoración a ah, potencialmente filtrar la información. Por lo que también voy a agregar un nuevo valor de toro, que voy a llamar display beach data así. Y ahí dentro sólo queremos hacer todo esto si tenemos alguna información porque de lo contrario, si no tenemos ninguna información, no tiene sentido tratar de mostrarla. Y así voy a hacer algo como esto si queremos mostrar la camioneta de datos a la que voy y llegar a esto. Y ahora voy a y otro widget, que es el editor Ah, 80. Ahí fuera Greeley, y hace frío, duda
completa y ah, le
pasamos el valor y lo pasamos simplemente el nombre. Entonces solo diré,
solo juega beats como este en, por
supuesto, actualizado el valor para que muestre el valor y actualice el valor. Si hacemos clic en él y luego decimos, si esto es cierto, entonces mostramos el resto fuera de toda la UE. Entonces voy a decir esta remontada en el editor. Y ahora lo que podemos ver aquí es que tenemos una bonita duda completa que pierde por mostrar o no mostrar deadbeats como este, y puedo actualizar las pistas. Y así podría, por ejemplo, ahora ir y crear una nueva pista para probar esto y lo que podemos ver ahora. Aquí, eso es interesante. Ah, lo que nosotros lo que vemos aquí es que, uh, sí, por supuesto, cada vez que creamos para los primeros fotogramas que acabamos de crear Ah, esto. Ah, este objeto, entonces Esta lista no ha sido una porquería inicializada todavía. Por lo que el inspector está tratando de acceder a la otra propiedad del número de la
propiedad de la cuenta de esa lista, y pero lo menos aún no se ha inicializado. Entonces qué podemos hacer Aquí está y decir pista. Tienen pista que vence a docena igual. No. Y el conteo es ah, cero y de lo contrario en realidad sólo hará otra cosa. Simplemente lo haremos Si esto es no, entonces volvemos así. Eso es aún más fácil y seguro. Simplemente exhibiríamos el beige en Inspector gooey. Ah, Y si no se inicializa, entonces simplemente salimos del método. Y así intentemos esto otra vez. Voy a deshacerme de esto y volverlo a hacer para asegurarme de que sólo vaya a despejar esto. Ve y crea una nueva pista. Y ahí vamos poco trabajo. Entonces y voy a llamar así a este 90 bpm y cambiar este valor aquí. Me siento así ahí dentro. Podemos ver que la pista está vacía y luego simplemente podemos ir y dicho Generar pista aleatoria. De acuerdo, así que eso es todo para la modelo. Por ahora. En los próximos videos, vamos a empezar a trabajar en la vista de pista.
10. Cómo configurar el componente de la vista de la pista: en este video, vamos a empezar a trabajar en la vista de pista. Entonces en el puerto de vista del controlador de vista del modelo, uh, patrón aquí. Y entonces lo que voy a hacer Aquí es y volver a la carpeta de scripts y en un nuevo
guión corto C , que voy a seguir de ti así, y lo voy a ordenar. Es ahora, misma cosa. También lo voy a poner en el nombre espacio late esto. De acuerdo, así. Y ahora aquí solo voy a deshacerme de todo esto por ahora. Y aquí dentro. Lo que sé es que este componente requiere algunas otras competencias para funcionar correctamente. Por lo que voy a empezar a agregar los atributos de componentes requieren y usar un tipo off. Y sé que requiere una vertical, y no encuentro la vertical. Uh, simplemente porque no estoy usando el motor de unidad. Tú ¿Por qué? Voy a añadir usarte al motor. Tú primero yo y luego puedo No, utilizas grupo de diseño vertical. Y así esto es lo primero que quiero que Teoh solo especifique. Y también quería, uh, usar aquí. Sé que también requiere un contenido fiebre tamaño común, trabajo
del dedo del pie probablemente. Entonces voy a agregar esto para que cada vez que agrego estos componentes a cualquier objeto y
automáticamente agregue esos componentes si faltan, y sé que también es común y eso se tiene que poner en un, um en un objeto u Y. Por lo que también voy a sumar uno con transformación directa como esta. Entonces lo mismo otra vez. Simplemente asegurándome de que voy a tener todos los componentes y evaluar para acceder a todos los comentarios que necesito. Ahora lo que quiero Teoh. Lo primero que quiero hacer aquí es hacer referencia a la pista, claro. Y por ahora, sólo
voy a hacer una referencia directa a la pista y lo veremos más adelante. Queremos tener una nueva referencia indirecta a la pista, pero ahí quiero tener una referencia a las pistas y vamos a hacer una referencia a un objeto
track, cual voy a ir track y va a ser privado, pero es va a ser tan realizable. Entonces vamos a usar los atributos rellenos serializados y es privado porque no
queremos tener otro común y empezar a meternos con ellos. Este miembro suele ser una buena idea simplemente usar variables privadas. Y si quieres existir, entonces tenía algunas propiedades, como conseguir métodos establecidos. Pero también sé es que quiero referirme a los pre fabs a los que voy. En cambio, ella comió, como la izquierda arriba, abajo derecha objetos que necesito en su lugar ella ocho basado en los datos que encontré en la pista Así que de nuevo voy a Thio Thio directo transformado. Sé que estos objetos necesitan tener unas transformaciones rojas. Yo sólo soy bueno. En lugar de sólo hacer referencia a un objeto de juego, voy a hacer referencia a una transformación de naufragio Así me pierden para asegurarme de que el objeto que meto tenga un registro de componente. Y luego voy a llamar a esta izquierda así y otra vez, usaré los, uh, varios ojos llenos de atributos y ahí sólo voy a hacer lo mismo con derecha arriba y abajo así. Y también necesito referirme a otra, que va a ser la referencia al espacio vacío er o divisor o tú lo llames también
voy a hacer una referencia a otra transformada de naufragio, que van a ser los restaurantes de la objeto actual voy a llamar a esto son transformados. Ahora voy a empezar a agregar podría usar el método despierto, pero no estoy seguro de que la unidad que se va a inicializar en despierto y no quiero poder controlar cada vez que se inicialice. Entonces voy a un nuevo método público proporcionar que voy a llamar bin it y se va a inicializar herbal con una pista. Entonces ese fue otro objeto, otro componente para inicializar esta vista de pista, dada una pista. Y así voy a llamar a esta pista así y así y pero ahí voy a añadir también el mensaje de la historia, y ahí dentro voy a empezar a hacer el en ella y luego voy a pasar la pista que hago referencia localmente en la en este componente y ahí dentro, lo primero que tengo que hacer es decir eso o transformar es igual a la transformada fuera del sujeto , pero como trinchera directa una como ésta para que nunca pueda volver a entrar. El editor aquí, y voy a seleccionar la pista de ustedes, y voy a añadir el componente try view así. Y ahí tiene una referencia a una pista. Entonces ahí podemos ver que aunque haga clic en esto aquí, esta unidad automáticamente me mostrará,
uh, uh, la serialización de objetos que coinciden con el otro tipo. Uh, aquí. Entonces voy a elegir el este aquí y allá. Podemos ver que nos queda arriba, abajo y vacíos. Y entonces lo que voy a hacer aquí es que entren a los pre fabs y me voy a llevar uno aquí, que voy a duplicar. Voy a llamarlo vacío y mostrándole al sujeto lo que voy a hacer. Aquí tienes y simplemente desactiva los componentes de la imagen para que no se muestre. Pero mantenemos el naufragio transformado con el tamaño, que va a separar al otro objeto. Y también me van a dar lectura a través de lo operable aquí. Entonces para hacer esto, probablemente sólo voy a arrastrar y soltar esto en la tribu. Tú aquí y luego deshazte del Perot. Diré que romperá la breve casualidad, diré que sí. Y luego daré clic en aplicar a, uh, fecha el tema aquí y ahora en la vista de pista en las referencias aquí. Lo que voy a hacer aquí es en Dragon cayó el abajo hacia abajo, se rió hacia la izquierda y derecha hacia la derecha y hacia arriba hacia arriba y la M g hacia la referencia
vacía como esta. Y ahora voy a deshacerme de los prefectos que tenía en la vista de árbol. Por lo que ahora tenemos todo lo que necesitamos para empezar a poblar el TRAV. Tú con la información que tenemos de la pista, y esto es lo que vamos a estar haciendo en el próximo para tratar.
11. Lectura de datos y rellenar el vista: Entonces ahora que tenemos todas las referencias a los objetos que queremos desmanchar ella comió configurada en el editor. Voy a volver a la clase de vista pista aquí en En el En su método, voy a empezar a agregar el ah, los métodos de creación de instancias. Entonces lo primero que queremos hacer es hacer una referencia a un objeto de juego. Entonces voy a hacer una referencia de objeto de juego, que voy a llamar a eso lúgubre, y luego voy a empezar una nueva para cada uno. Por lo general se dice ahí que es mejor usar un bucle for que un para cada
modo de rendimiento de bucle . Pero como esto va a estar abajo sólo una vez, el para cada uno va a ser justo es bueno. Y así voy a dio entero el en pista que late. Entonces para toda la información, toda la información de bits que tenemos en el en la pista que quiero hacer quiero instancia ella se comió un nuevo objeto y ahí voy a hacer referencia a un nuevo objeto de juego y voy a hacer cambio de ser. Y así diré que el caso cero. Entonces si la información es cero. Significa que queremos hacer izquierda y otra vez, totalmente arbitrario. Haber decidido que se dejaría a la baja tasa. Pero podría ser que pudiera ser cualquier cosa. Entonces solo diré que G es igual a la izquierda. Y recuerda, la izquierda es erecta Francia cálida. Por lo que necesito acceder a su propiedad de objeto de juego así. Y así esto va a ser así de eso. Entonces y luego voy a hacer un descanso así y luego a partir de ahí otra vez,
solo tienes que ir y copiar empresa basada en copia basada para todos los diferentes casos. Y entonces diré que si esto es uno o dos o gratis, entonces esto se va a dejar abajo. Pero y justo y allá, en lugar de agregar el caso menos uno, solo
usaré el caso predeterminado. Y así significa que si por alguna razón agregamos algunos, como otros números enteros, que no lo apoyamos, entonces simplemente nos quedaríamos por defecto al, uh, el otro objeto y ahí se iba a usar del objeto vacío. Entonces son básicamente te estoy haciendo luv. Estoy creando una nueva referencia a un objeto de juego y seleccionando el objeto de juego basado en el ritmo que yo todavía y ahora lo que necesito hacer es y simplemente en su lugar, ella se comió este objeto. Entonces voy a hacer objeto de juego en Stan. Ella comió y luego todo pasado G, y luego pasaré la transformada. Entonces todos dicen, toma la transformación de este objeto así. Pasaré la transformación actual de este objeto eso que se mete. Stan. Ella odiaba en este objeto cuando era niña de este objeto. Y esto como vimos, porque tenemos el,
uh,los uh, otros dos componentes
el grupo de diseño vertical en el futuro Constant Sezer, esto establecerá automáticamente de la vista. Probablemente. Entonces intentemos eso. Y así ahora tenemos esto. Tenemos la referencia a la pista. Tenemos la referencia a todo el otro objeto. Y así a medida que empiezo, entonces debería tener toda la información configurada. Probablemente ahora, uh, podemos ver esto, Y aunque una cosa que nosotros ah, que podemos ver es que obviamente comienza por el primer objeto. Por lo que comienza. Agrega que el 1er 1 luego el 2do 1 que el 3er 1 y así sucesivamente y así sucesivamente. Y así el tema que tenemos aquí es que la pista se invierte de alguna manera porque empezamos a agregarla por el bebé vía el principio. Entonces hay dos cosas que podríamos hacer Thio Thio para arreglar esto El 1er 1 es que podríamos simplemente reemplazar el para cada uno con un bucle completo en un conteo hacia atrás desde el final hasta el
principio y la otra forma que podemos hacer y que voy a preferir porque la letra un poco de mango meteo. El objeto que creamos es tomar una referencia. Entonces voy a tomar una voy a hacer una referencia a una transformada y la voy a llamar la Vista, y voy a decir que va a ser igual a esta esa esa transformada. Entonces estoy haciendo una referencia a la transformación fuera del objeto que acabo de crear. Y ahora te voy a salvar. No te sientas como primer hermano así. Entonces significa que cada vez que agrego un objeto, lo
añadiré a la parte superior fuera del del Harrick E. Y así, hacer esto cada vez que empecé esto otra vez haciendo esto entonces lo agregará y lo llevará a la cima porque de lo contrario se agrega al fondo. Entonces lo agrego y lo llevo a la cima. No lo llevé a la cima y así sucesivamente y así sucesivamente. Y así esto simplemente revertirá probablemente la pista. Y entonces lo que podemos ver es que la pista comenzará automáticamente por el pre roll. De acuerdo, entonces ahora simplemente voy a restablecer la posición predeterminada del tributo a cero en ¿Por qué? Para que empiece en el mismo inicio de la pantalla y eso ahí otra vez y lo que podemos ver que este sistema de tres D. U. U.
Y es ojos para un agradable realmente pierde al decir que queríamos que esta pantalla dijera que el A 100 pixeles de abajo fuera de la pantalla o 200 pixels y así sucesivamente y y luego realmente logramos que Teoh diga y dónde va a terminar la pista en la, uh resultante dos pantalla D. Ahora que hemos poblado la pista con ALS, la información de bits que queremos tener la pista para desplazarse automáticamente Talwar en la cámara , y esto es lo que vamos a estar tocando en el siguiente video
12. Animación del movimiento de la pista: Entonces ahora que tenemos la vista de pista poblada con toda la información del
modelo de datos de pista , queremos que la vista de intento también se desplace automáticamente con el tiempo. Y así para hacer esto, voy a volver a la tribu. Tú guias aquí, y voy a empezar a hacer algunas referencias a su posición y modificar su posición. Lo primero que vemos aquí es que la posición de ah objeto en Ah, ustedes dos d es referenciada por una víctima, también. Pero simplemente no quiero manipular ambos continentes. Yo sólo quiero manipular uno de los dos componentes dicho Para hacer esto, voy a usar un poco de,
ah, truco, truco, Teoh, hacer una referencia a la posición. Entonces voy a hacer un vencedor para referir que voy a llamar a posición y así va a ser un privado por defecto. Y ahí voy a añadir un exceso er así que voy a Teoh hacer básicamente voy a hacer una propiedad. Entonces ahí voy a usar un fragmento de código para crear rápidamente una propiedad y tener un realmente tocado en crear tus propias plantillas de código. En mi entrenamiento previo ahí y básicamente, solo
quiero decir que quiero que sea un flotador, y ah, ahí. Voy a llamarlo posición así, pero no voy a usar esto. Yo voy a usar. Voy a hacer un poco de truco donde lo viable es una víctima también. Pero el exceso de er está a flote ahí dentro. Siempre que accedemos a la posición de valor, queremos devolver el mi posición. Y siempre que modifiquemos el valor, entonces queremos comparar el nuevo valor con la posición Y. Y si es diferente a lo que queremos asignar el componente y de la posición al valor Y lo que vamos a hacer aquí es que siempre que lo haga, queremos cambiar. Queremos cambiar la posición fuera del naufragio, transformar. Entonces yo también lo hago Richt transforman no anclar. Posición es igual y están todos van y dicen posición. Por lo que posición anclada posición también es víctima. Y esto es lo que queremos actualizar. Pero no queremos actualizar ambas competencias. No queremos manejar el componente X. Simplemente queremos manejar el componente uno. Entonces hacemos un flotador hacia atrás, Hermana que devuelve la posición Y y que cambia la posición Y fuera de la
posición anclada cada vez que ah, siempre que la cambiemos. Y entonces ahora lo que quiero hacer es ah, hígado comenzando cada vez que,
uh,
inicializé uh, la vista, quiero decir que la posición es igual a nuestros trenes para él punto posición anclada. Y lo hago Hay sólo para, ah para inicializarlo, si
acaso hubiéramos tenido un, um, y compensar el principio. Y ahora cuando haga esto, también
voy a agregar un nuevo,
uh, uh, mensaje de
actualización haciendo esto Y ahí puedo decir posición menos ical, al, justo tiempo pasado. No construyas un tiempo y multiplicas este chico y valor arbitrario por ahora, antes de meternos en el controlador de juego para definir todo el cronometraje adecuado basado en los bits por minutos y así sucesivamente. Entonces solo multiplicaré esto por dos por ahora, solo Teoh para ver qué hace esto. De acuerdo, entonces vemos que se está moviendo, pero se está moviendo muy despacio, así que solo multiplicaré esto por 20. De acuerdo, entonces se mueve, pero está en contra de mover varios solos, así que solo multiplicaré esto por 100. Está bien, ahí vamos. Ya tenemos nuestra vista previa. Trabajo. Y podría haber tenido un multiplicador de velocidad a la vista de pista. Pero no es el punto porque esta vista de pista sólo va a ser impulsada por el
controlador del juego . Y es el trabajo de la pistola ahí, el controlador de juego a la cola. apagaría esta velocidad? El viajero debe bahías. Y ahora la vista de pista en sí. Y esto es lo que vamos a estar haciendo en el siguiente video ya que vamos a empezar a trabajar en el controlador de juego, parte del controlador de vista modelo.
13. Manejo de entradas personalizadas con los códigos de los claves: Entonces ahora que tenemos la tribu en la que trabajas, queremos empezar a trabajar en la parte controladora del controlador de vista del modelo, que va a controlar la vista y el modelo. En este ejemplo. No tiene que actualizar el modelo, que forma parte del paradigma del controlador de vista del modelo al principio es que el controlador haría un día los datos ahí, realmente no tiene que actualizar los datos. Simplemente tiene que leer los datos y también trabajar con trabajar la mecánica, lo que de alguna manera nos está llevando a una versión ligeramente diferente del controlador de vista del modelo que, como, forma de conocerlo. Lo que voy a hacer aquí es en crear un nuevo objeto de juego al que voy a llamar game plain manager o un controlador. Trae esto y voy a restablecer su posición en, y voy a añadir una nueva confianza que en la jugabilidad clínica, controlador como este y casi están buscando reposicionar. Este es script aquí en la carpeta de script y luego lo voy a empezar. Este este controlador de jugabilidad primero otra vez, yendo Teoh en el espacio de nombres aquí para que las clases antiguas estén dentro del mismo nombre, espacio. Y ahora voy a empezar a trabajar en este eso voy a mantener el esto hacia,
uh, uh, mensaje en los mensajes de actualización. Bueno, una de las reglas del controlador de juego aquí será tomar las entradas lo suficientemente pronto. Se quiere sacar la parte de entradas del controlador de juego para que pueda tener un controlador de
juego que sea totalmente independiente de la plataforma. Y esto es algo que vamos a tocar en el capítulo posterior como tener que
manejar entradas y administración multiplataforma, entradas multiplataforma y ajustes de visualización. Pero por ahora, solo
vamos a poner las entradas y el controlador de jugabilidad. Y básicamente, cuando quiero hacer dentro, la actualización es probar si sexual tal tecla se ha presionado donde se ha
presionado tal botón . Y hay dos formas de hacer esto en una inmunidad, puedes usar las sesiones de entrada o puedes usar un código clave. Y lo que voy a hacer aquí es usar un código de tecla porque pierde al usar ya sea un teclado o una almohadilla de
juego también. Entonces ahí voy a empezar a usar un bateador y alcohol. Ah, esto de aquí. Entradas como esta en su propia agregan un, uh, nuevo campo de código clave, que voy a llamar a la izquierda así en la misma cosa. Va a ser privado, y va a ser serializado. Entonces voy a hacer esto así,
Bruce, Bruce, y así a la izquierda, uh, abajo, uh, y justo así. Entonces estos iban a ser mis cuatro códigos clave para desencadenar en esto, poniendo esto en el inspector, luego perderme cada vez que vuelva al mando Campbell aquí. Esto me permite elegir qué clave debería estar usando ahí dentro. Puedo usar las teclas herbales del teclado, pero también podría usar en cualquier otro pad de juegos, botones y cosas así. Entonces van a usar la flecha izquierda y el cuarto abajo y el op Arrgh! En el camino correcto así. Y estos van a ser mis en Butch. Y así voy a llamar a esto insumos como este en su también llegar a hacer una referencia a la pista. Por lo que ahí otra vez, busco replicar esto e ir a visitar la pista. Y ahí voy a usar un campo serializado puesto para una oración. ¿ Viable? Va a ser una pista privada, que voy a llamar pista así, y esta va a ser la referencia a la pista. Y ahora, porque esta es la referencia a la pista, también
quiero dejar que otros componentes accedan a la pista, pero no quiero que puedan cambiarla. Entonces lo que voy a hacer aquí es entonces crear un er exceso como este y voy a hacer que sea un público y va a ser de tipo track. Y voy a ir por pista así con al final de anotado y ahí voy a implementar en contra, pero sin set. Por lo que implementando te consigues así. Yo sólo estaba diciendo pista de retorno. Entonces al hacer esto, soy un bebiendo otros comentarios para acceder a esta pista, pero sin poder cambiarla. Y así donde esto es algo que vamos a poner en el editor y que no podemos cambiar de otro competente y bueno, obviamente cambiar esto más adelante cuando queremos que el jugador elija una pista en tiempo de carrera y queremos tener como, una vista ah pista Pekar poder asignar una nueva pista al gestor de jugabilidad con el controlador de jugabilidad. Entonces lo que también estoy consiguiendo que Teoh haga aquí es que agregue un Este es otro truco rápido aquí, pero voy a agregar un nuevo, uh, resumen aquí. Entonces esto me permite, um, consigue, um, uh, información sobre lo que esta propiedad está haciendo aquí. Entonces sólo voy a hacer esto. Eso me gusta. Y voy a llamar a esto el evento de la pista actual. Y así si me meto en otro componente del que quiero saber cuál es esta propiedad de pista, entonces yo, uh esta es la información que puedo conseguir. Es más o menos lo mismo es una punta de herramienta o así cuando hago punta de herramienta como esta y dije la punta de herramienta para beats track para jugar, creo que eso. Y así esto va a aparecer en el editor y esto aparecerá en un comportamiento motriz cada vez que entre por una propiedad. Hay otra cosa del día que quieren hacer solo para que el pensamiento sea muy tenso. Voy a usar una región. Y así voy a llamar a esto el moto ser comportamiento, uh, métodos como este. Y ahí voy a acabar con la región así. A qué momentos nos vamos, agregó
Thio después, es otra región así que Y voy a llamar a esta jugabilidad. Entonces voy a dividir esto en diferentes regiones,
regiones o ensueño,
Handy como puedes más tarde ir aquí y luego elegir una región. Es como atajos que te llevan a diferentes regiones en el código. Entonces lo que voy a hacer aquí es entonces decir que quiero tener un nuevo método y lo voy a llamar, uh, plato beat como este y va a tomar un y en bota, que va a ser un entero. Y luego voy a agregar un log de depuración apagado esa entrada como esta, y ahora voy a poner en la fecha. Voy a decir,
si input, si input, esta es la clase de entrada de la unidad get key down. Que es esa tecla que se está presionando en ese marco y no en Lee El primer fotograma que se presionó y todos están dicen que se fue así. Ah, Entonces quiero decir jugar beat en todo pase cero, porque la tecla izquierda es básicamente los partidos, el otro el cero. Y así haré lo mismo con los cuatro. Y así todos dicen uno a y tres. Y esto va a ser abajo y, uh, y justo y ahí también tengo que ah, terminar esta región con n región y no otra región y región como esta. Usar regiones es muy, uh, sí, lleno. Siempre que sepas que tu clase va a tener, como, un set diferente partes fuera haciendo salida es el comportamiento motor y la jugabilidad. Entonces ahí estoy sólo quiero separarme. ¿ Cuál es la parte de inicialización? Y dónde están los métodos específicos de jugabilidad y los miembros simplemente dividiendo esto en dos regiones
diferentes. Pero esto es sólo realmente sólo para ayudarme eso esto fuera en cuando por la mañana desarrollarse. Entonces ahora voy a volver al editor y ahí voy a hacer referencia a una pista. Entonces voy a hacer referencia a la misma pista que tengo en el, uh en la vista de árbol así voy a ahorrar, y luego voy a empezar a tocar. Y ahí si presioné las teclas de flecha del teclado, entonces llego a ver que tengo esta salida de depuración aquí, y si hago doble clic en
él, me llevará ahí. Por lo que llego a ver que esto está activando el método play bit en pantalla. Pero el método va a ser el método en el que voy a agregar código Maura. Pero en la actualización, no
tengo tanto código que agregar. Solo estoy tomando las entradas y luego pasándola al bit de juego. Esto es de alguna manera algún pre trabajo, ya que sé que más tarde, quiero desarmar esto en otro componente fuera del controlador de jugabilidad. Entonces ahora que tenemos esto,
uh, esos insumos, esos insumos, queremos sumar la mecánica que decía que cada beat se mueve en el siguiente beat y luego
queremos asegurarnos de que cada vez que jugamos algo, siempre que presionamos y entramos, queremos poder hacer la pregunta es el insumo que acabamos de presionar, el que se va a presionar ahora y este es el hacer X que vamos a empezar a sumar en el siguiente para tratar
14. Implementar la mecánica de la tempo de la Gameplay.: en este video, vamos a empezar a trabajar en el manejo del beat fuera del controlador de jugabilidad. Entonces lo que queremos hacer es Teoh mantener un seguimiento fuera de qué ritmo actual se tiene que jugar en eso para esto. Lo que vamos a hacer es que vamos a empezar a trabajar aquí y vamos a empezar. Voy a añadir un nuevo, uh, método aquí cuando seguro voy a llamar a una votación, lo
voy a llamar siguiente beat. Y así básicamente, este método va a, uh, paso al siguiente ritmo cada vez que lo llame así Y ahí voy a ir y poner un registro de depuración ahí, y simplemente voy a depurar este tic dicho. Y así a partir de ahí, lo que quiero hacer es entonces Ahora quiero volver a tu voy a comportarte métodos y luego en la historia quiero usar invoke aquí,
quiero usar, invocado, invocado, remachado y en boga, reprendiendo. Voy a decir que quería ir por el siguiente beat, y ahí quiero tener cuidado porque esto no es tan seguro, es que estamos usando algún texto, y así son básicamente voy a decir que quería que me llamaran Avery beat. Entonces por ahora, solo
hagamos una prueba rápida y digamos que queríamos empezar de inmediato y luego queremos llamarlo cada segundo. Entonces básicamente, estamos pasando un perímetro para el intervalo en cuanto a, ah, la frecuencia a la que queremos llamar invocar repitiendo a. Entonces ahora volvamos al editor y veamos cómo funciona esto. ¿ Todo bien? Y así lo que podemos ver aquí es que ahora tenemos una garrapata cada segundo. Entonces ahora lo que quiero tener es algún sucesor rápido para tema el número off segundos por beat y el número off beats por segundo que puedo usar. Y entonces lo que voy a hacer aquí es ah, simplemente hacer un par de ex hermanas. Voy a hacer un flotador público, y voy a ir este segundo por beat, y esto se va a tener que conseguir y un conjunto privado para que pueda modificarlo dentro de la instancia. Y en Leigh lo leí de otras clases. Y ahí voy a hacer lo mismo aquí con otro que voy a ir beats por un segundo ahora quiero inicializar esos valores. Y así para esto, voy a implementar el método de despertar como este y en despierto, simplemente
voy a decir segundos por beat igual pista. Y luego voy a ir a buscar la información de track bpm, y voy a dividirla por 60 así. Y así, básicamente, ¿cuántos segundos por golpe? Es el número de beats por minuto dividido por 60. Y luego cuántos beats por segundo, entonces esto va a ser 60 dividido por la pista que BPM. Y así estos van a ser problemas X rápidos que podemos usar en otros componentes para simplemente referirnos al número apagado segundos Perbet en el número de bits por segundo. Y ahí, Ahora, puedo usar esto y decir que quiero usar beats por segundo. Y en realidad, voy a tener que, uh, renombrar esto y así ahora puedo volver al editor y probar esto. Y ahí podemos ver que va mucho más rápido. Como hemos dicho, el número de minutos de Pittsburgh 220. Entonces básicamente tenemos una garrapata. Cada segundo de salud. Ahora lo que quiero hacer es implementar un otro Exeter, que me permita acceder al ritmo actual que debería estar jugando. Y así para hacer esto, voy a volver al juego, jugar región, y voy a añadir unas nuevas propiedades. Voy a usar mi propiedad existir, señor, y va a ser de tipo y de daño, y lo voy a llamar corriente así. Y entonces lo que vemos aquí es que cuando sí obtenemos, entonces simplemente devolvemos el valor de la variable. Y cuando lo hacemos, A dijo, nos aseguramos de que los valores cambiaron y luego nos reasignamos el nuevo valor, y también quiero ver si hemos completado la pista. Entonces cada vez que lleguemos al final de la pista de lo que quiero poder cancelar la invocación y también, uh, detener la jugabilidad probablemente en algún sentido, um, eventos más tarde para decir que hemos terminado la pista. Entonces lo que voy a hacer aquí es en primer lugar, decir si, uh corriente es igual a la pista. Perro. Contar. Entonces quiero usar Teoh. Cancelar, invocar, y luego voy a pasar, uh, el siguiente método beat y también quiero almacenar algún valor para decir que si hemos completado la pista entonces más tarde quiero poder Teoh, utilizar un simple booleano que acaba de decir Si hemos completado entonces ya no quiero tomar las entradas en una. Entonces lo que voy a hacer aquí es entonces tener un toro son privados que voy a ir terminado y ahí dentro ya puedo decir que cancelamos la invocación en. Entonces decimos completado equivale a dos. Y ahora que he hecho esto, cada vez que llamamos siguiente beat, lo que voy a hacer ahora digo corrientes más plus Y así esto se va a aumentar el ritmo
actual para que se juegue y luego esto va a desencadenar toda la mecánica que nosotros usar
Teoh más tarde. Entonces ahora que tengo esto, quiero hacer el partido entre la información de beat y las entradas que estamos recibiendo de la fecha y esto es lo que vamos a estar haciendo en el próximo para tratar
15. Implementar los controles de entrada de la Gameplay: Entonces ahora que tenemos el beat Tickin, lo que queremos es Teoh dignidad, insumos y hacer el mucho entre los insumos y el ritmo actual. Lo primero que voy a hacer es volver al juego, jugar controlador aquí. Entonces lo que quiero hacer en el siguiente beat es Teoh saber si se juega al jugador y si no ha jugado entonces a menos que fuera un beat vacío, entonces quiero anotar alguna información perdida. Yo quiero decir que había algo para ser cuchilla y que nos lo perdimos. Entonces lo que voy a ah hacer es entonces volver aquí y también añadir justo antes de la completada también
voy a añadir otros mil 000.000.000 a los que voy a llamar, jugado y así. Y ahora con esto, voy a decir que si no jugó así y también voy a decir pista y ahí
voy a ir a conseguir los beats y ahí voy a pasar el ritmo actual. Entonces el que se suponía que íbamos a activar no recuerda menos uno, que es el valor que hemos asignado los beats vacíos. Entonces quiero anotar alguna información que diga que nosotros, uh, que nos hemos perdido lo que voy a hacer Teoh aquí es y decir D bog debug log Y en típico, voy a usar la cadena para Mitt Method en la que estamos pasando por aquí. Uh, una palabra clave de esto y voy a decir, faltó sólo para decir qué parte se perdió. Y ahí lo voy a pasar la caminata que late y actual para que sepamos si nos perdimos ah, izquierda y derecha o una perilla abajo y así sucesivamente. Y así así. Y luego Ahora también quiere decir que jugó igual cae como esta Acusación Teoh para
decirlo de esta manera. Y así ahora que tengo estas jugadas mil 000.000.000 de información, voy a utilizar para filtrar en la fecha para que me asegure que no podemos jugar dos veces dentro del mismo ritmo. Y así para hacer esto, simplemente
va a decir, si se juega así o uh, completado, entonces simplemente quiero volver y salir rápidamente de la actualización. Inter. Ahora que hice esto, también
voy a volver en la cuchilla ser, uh, método aquí. Y básicamente, voy a decir que si por el truco los bigs y usando la corriente llama menos uno, entonces básicamente jugamos intempestivamente. Jugamos como estábamos destinados a no jugar. Entonces fui Teoh, quiero buscar algo aquí. Y también voy a decir otra cosa aquí si y allá voy a decir que si esto es igual la entrada entonces jugamos la correcta combinación en De lo contrario significa que
jugamos . Pero jugamos la combinación equivocada. Y así me voy simplemente a Teoh, toma esto. Uh, aquí y yo simplemente voy a Teoh copia Pega así y así y me voy Teoh, úsalo aquí y allá. Ya voy, Teoh simplemente pasa la entrada así. Y yo voy a decir que jugamos en morir realmente así y en este, trabajando para decirlo, jugó bien y ahí se iban a decir tendido y vamos a pasar los segundos argumentos y vamos a decir esperábamos esto. Entonces vamos a decir que, uh, cuál se jugó en el que se esperaba uno, y así vamos a pasar entrada y luego uh, la corriente que tenemos aquí y allá. Voy a simplemente tomar el sol entrada aquí. Entonces, básicamente, si fue menos uno entonces y jugamos, entonces simplemente decimos que cuchillamos intempestivamente. Y luego logramos la entrada. Pero de lo contrario es si la corriente es la entrada, Entonces lo jugamos bien. Y luego mostramos cuál se jugó, ¿verdad? Y luego si nosotros, uh de lo contrario, entonces mostramos cuál se jugó, y luego cuál se esperaba? Y entonces esto es lo que necesitamos por ahora era para el controlador. Y luego haremos el partido con el viajero para que la vista de pista nos muestre al jugador si se jugó el ritmo correcto o no. Entonces ahora me voy, Teoh, prueba esta regla rápido. Y el editor y así ahí. Podemos ver que tenemos una,
uh, uh, izquierda para jugar primero para que yo pueda planear justo
arriba, arriba, y luego vemos que nosotros, uh recibimos el mensaje está aquí. Obviamente me perdí mucho simplemente por la vista de pista No está jugando a la
velocidad adecuada . Si te acuerdas. Bueno, teníamos la vista de pista para jugar aquí a una velocidad arbitraria. Por lo que el controlador de juegos de azar y la vista de pista en realidad no son del todo. Fregadlo. Y esto es en lo que vamos a estar trabajando en el próximo video.
16. Sincronizar el TrackView con el Controller: Entonces en este video vamos a empezar a vincular el controlador de jugabilidad y la tribu Tú. Y así lo primero que quiero que Teoh haga aquí es completar el controlador de juego y
asegurándome de que se detenga cada vez que llegue al final fuera de la pista. Yo quería a Teoh justo arriba. Entonces lo que voy a hacer aquí es en un y yo en un Meritor que voy a usar para un coraje en porque quiero el que quería parar al final, pero quiero Oh, quería esperar el tiempo suficiente para que la tribu te salga completamente de pantalla. Entonces lo que voy a hacer aquí es y decir que quería que Teoh cediera Y así voy a cualquiera. Aquí, um, simplemente voy a agregar una espera privada cuatro segundos, que en gran ducal espera y se detiene así y en despierto, voy a decir Esperar y parar igual a nuevo Esperar segundos en todo pasan aquí el simplemente el bits por segundo veces dos para que espere dos beats y solo podría usar
información diferente . Podría usar el número de beats en la patrulla, por ejemplo, o algo así. Y así voy a simplemente, Ah, ven Mai aquí y luego digo que quería ceder retorno, Espera. No paramos así y luego también estar habilitados, igual a caídas para que se apague cada vez que haya terminado de tocar la pista. Y ahora lo que voy a hacer aquí se dice entonces que después de que se complete aquí, entonces voy a decir Almacenado co rutina en su todo Pasa el peso y detente, espera y detente Hazlo aquí. Entonces ahora que tengo esto, quiero poder enlazar completamente la vista de pista con el controlador de jugabilidad. Y hay cada vez que tienes dos componentes en una arquitectura dependiente, tienes un componente que depende del otro. No se quiere tener dependencia mutua, y siempre es mejor cuando no se tiene un competente para asignar a otro o crear otro . Y siempre es mejor cuando uno simplemente está diciendo que buscará al otro, y eventualmente se suscribirá a sus eventos y cosas así. Entonces para esto, lo que voy a hacer es que digan que el controlador de tirando del juego es muy probablemente el único componente que siempre estará ahí. Esta es la que hace referencia a la pista, y ésta es la que dictará la mayor parte del comportamiento de la jugabilidad. Entonces ésta es la que queremos tener todo el tiempo. Y entonces lo que voy a hacer aquí es decir entonces que quiero que esto sea un singleton, y este singleton es otro paradigma que es totalmente compatible con cualquier otro
patrón de diseño . En realidad los patrones diseñados son igual que las referencias, y puedes modificarlos y hacerlos de alguna manera de la manera que quieras allí, igual que los patrones y al igual que la arquitectura fija que no puedes modificar. Entonces lo que voy a hacer aquí es y usar un fragmento rápido, ah, ah,
bueno que estoy usando aquí y que me va a perder por decir que quiero un
controlador de jugabilidad , que es la instancia. Y así si echamos un vistazo rápido a lo que hace aquí es que hace referencia a una estática,
uh, uh, referencia a un controlador de jugabilidad, y cada vez que lo accedemos, cada vez que vamos a acceder a la instancia, entonces lo se irá. Y si no existe ya, si no está asignado ya lo va a ir a buscar uno en la escena. Si no encuentra uno que vaya a entrar, crea uno. Y así crear uno aquí no tiene tanto sentido porque requiere tener información como qué pista tiene que jugar y así sucesivamente. Entonces simplemente voy a deshacerme de esto y simplemente decir, um, están aquí que quiero que Teoh se deshaga de eso y todos están solo dicen, si la instancia es no, entonces quiero ir a encontrarla en esto y ya está. Y luego quiero devolverlo. Y esto es Ah, esto es como algo muy común mejor. Ah, aquí. Y lo que quiero hacer aquí es y decir que quiero que la instancia iguale esto en despierto. Y entonces esto es lo que voy a hacer aquí, lo que tienes Y una cosa importante es,
ah, ah, cuando haces ah, solo denso es asegurarte de que cada vez que descargues, visto, por ejemplo porque cargas otra escena o algo así, entonces quieres asegurarte de que cuando lo haces sin distracción y en realidad lo usé en discapacitados, Pero voy a hacer en destruir en lugar en destruido que instancia igual no. Y entonces solo usaré el subrayado uno Para que pueda deshacerme de la SEC es que no
quiero que ningún otro componente pueda cambiar la instancia al control de juego de los controladores de
juego configurados en la escena. Así que volvamos rápidamente al editor aquí y asegurémonos de que estamos que todo funciona,
uh, uh, sin problemas, está
bien. Y ahora lo que quiero hacer es luego volver a la pista, tú aquí. Y así en lugar de tener que asignar un visor de pistas para asignar el controlador de jugabilidad a la vista de
pista y decir:
Hey, Hey, vista de
pista, este es el controlador de jugabilidad y por otro lado, yo sería haciendo como un controlador Gimpel. Esta es una vista de pista. No quiero tener que hacer todo este tipo de encuadernaciones. Yo quería ser automático. Entonces para hacer esto sé que el viajero nunca existirá sin un controlador de apuesta, cual puede que no sea cierto. Al revés, puede que
tengamos un juego jugado control sin vista de pista, pero no al revés Así que lo que voy a hacer aquí es decir que quiero inicializar cada vez que voy a ir en el inicializar aquí, Voy a entrar en el inicio. Y por ejemplo, en lugar de inicializar la vista de pista con su propia propiedad de pista, voy a ir y decir jugabilidad controller dot instance track. Y así va a ir y encontrar la instancia del control de jugabilidad para luego encontrar la
propiedad de la pista . Y así que me pierdan para simplemente deshacerme de esta referencia de pista manual que tenía hasta ahora aquí. Esto es bonito, uh, muy útil fingir porque no quiero tener que manejar diferentes informaciones de pista. Uno en la unidad, tú uno en el controlador de juego y así sucesivamente. Dentro del método, fui a hacer referencia al tamaño fuera de una vista de puja y al tamaño fuera del espaciado porque sé que los beats en la tribu se pueden disponer con algún espaciado. Entonces, ¿qué? Voy a ah, a hacer. Aquí y simplemente decir que después de esta posición aquí, voy a añadir un flotador el cual voy a ir beat, Tienes talla en otra que voy a ir espaciando así. Y cada vez que inicialicé esto, entonces voy a decir un tamaño más grande igual y simplemente voy a Teoh, usa el vacío y voy a ir a obtener la información directa aquí y la altura del rectángulo de la transformación vacía. Y ahí voy a decir que el espaciado es igual a conseguir componente y van a pasar. Uh, aquí, Vertical sólo fuera. Doug. Espacios como este. Y sé que me he evitado un pequeño grupo de diseño porque he agregado antes del que
requieres agarre de diseño vertical de componente. Y así me llevo el espaciado aquí. Estoy asignando al otro el espaciado, el valor de
inundación y el tamaño de vista grande. Y así básicamente, lo que necesito hacer aquí es entonces decir que usando el tiempo Delta, también
quiero multiplicar esto Mi en realidad voy a multiplicar esto por controlador Campli. Instancia Dodd segundos por golpe. Y quiero usar los segundos burbey porque voy a usar el beat, la
vista, vista, tamaño y el espaciado juntos, que es la cantidad de traducción que tengo que hacer cada vez que avanzamos de un solo beat. Y así fui a multiplicar esto por el número de segundos por beat para que podamos multiplicar esta mordida el tiempo Delta. Y así deberíamos conseguir una traducción que siga la, uh, la velocidad adecuada. Y así ahí simplemente voy a decir,
uh, uh, Biddy Assize más espaciado. Entonces ahora volvamos al teatro aquí y echemos un vistazo rápido al componente tractor aquí y podemos ver que el Tribune sólo hace referencia a una pista. Encontrará automáticamente el controlador del juego y se vinculará a él y encontrará su
propiedad de pista . Y así ahora, si hacemos esto, deberíamos ver que se necesita probablemente, y la velocidad debería poder conseguir muchas más combinaciones correctas que antes. Entonces ahora, en lugar de depender de la consola para ver si hemos jugado correctamente o no, en realidad
vamos a hacerlo para que la vista de pista muestre y cambie la pantalla para cada ritmo. Cuando, siempre que los toquemos correctamente o no, y esto es lo que vamos a estar haciendo en el próximo video
17. Agrega la opinión visual de la Gameplay: en este video. Ahora vamos Teoh al día, la vista con eventos desde el controlador de jugabilidad. Y voy a mantenerme alejado del mar Eventos de Sharp para este curso de capacitación, y voy a tocar eso en un capítulo posterior. Pero básicamente lo que queremos hacer aquí es que queremos intentar ver para ser notificados de a para recibir notificación del controlador de jugabilidad siempre que hayamos jugado algo, siempre que nos hayamos perdido algo y para que pueda actualizar el actual tú y dar retroalimentación al jugador en cuanto a si su, uh, falló o jugó probablemente o simplemente jugó el mal. Pero entonces lo que vamos a hacer Teoh aquí es antes que nada, vamos a volver a la vista de pista, y voy a añadir un nuevo, uh en olmo. Y así voy a añadir una Nina Teoh. Uh, aquí, esto voy a hacer una publicación, Um, que voy a llamar a Trigger. Voy a hacer este gatillo para que pueda ser de diferentes tipos. Simplemente está perdido o bien o mal. Entonces básicamente, vamos a tener alguna información muy básica que decir. Siempre que con jugado algo bien o mal o cuando nos hayamos perdido algo y entonces voy a añadir un nuevo método ah aquí, voy a hacer un nuevo método público para que el controlador de juego pueda acceder a él y va a ser, ah, evite método. Y lo voy a llamar trigger beat view así, y va a tomar un entero para el índice porque esto es lo que
sabe el controlador del juego ,
uh, uh, todo lo que sabe es ah, el ritmo actual. Y entonces qué? Queremos que Teoh pase eso, y también queremos pasar un gatillo. Entonces simplemente voy a pasar el tipo de gatillo aquí así. Y ahí dentro voy a hacer un interruptor y un interruptor basado en el gatillo. Piensa esto y di que el disparador de caso falló. Y son lo que quiero hacer así en caso de que dispare látigos derecho falten y dispare
derecho y rompan por si otra vez, dispare mal y esto y vuelva a romperse. Ahora lo que necesito hacer es referirme al componente de imagen que sé que existen en el beat ve los pre fabs que en su lugar hemos disparado en la tribu. Tú Bueno, lo que voy a hacer Teoh aquí es y ven aquí. Y voy a añadir una nueva lista fuera del compartimiento de imagen así, y voy a llamar a este bit views. Y cuando llego a la inicialización aquí, lo que voy a ah,
a adherir es un,
uh, uh, uso de la
puja es igual a nueva lista de imagen como esta. Y ahí ves que ya tengo el objeto creado instancia toothy de referencia, y estoy creando una referencia, una referencia directa al componente de transformación. Pero el componente de transformación ya tiene un sucesor en su muy fácil acceso. Entonces en cambio, lo que voy a hacer aquí es y decir que esto va a ser una imagen y allá voy
a decir, conseguir componente y pasar imagen como esta y decir que ahora quiero tomar esta instancia creado objeto de juego, y luego quiero llegar al componente de imagen que está en él desde ahí. Cuando puedo decir es ver punto uh, transformar punto conjunto s primer hermano. Eso es muy fácil. Y ahora con esto, también
puedo decir biff views ese anuncio y luego puedo pasar la vista que ahora es de tipo,
uh, uh, componentes de
imagen. Y así ahí estoy construyendo esta lista de componente de imagen a partir de ahí, y también es muy fácil para mí cosa de hacer, para referirlo más adelante. Y entonces lo que voy a hacer aquí es que digan que si nos hemos perdido, entonces quiero entrar en lo grande enorme y quiero pasar el, um, el índice que me dan y luego quiero cambiar el componente de color que cambia el propiedad de color de ese objeto. Y ahí voy sólo un collar que gris. Digamos que los pusimos grises cuando los echamos de menos, y entonces yo voy a hacer lo mismo aquí. Cuando los hagamos bien, sólo
voy a decir amarillo. Y cuando nosotros,
uh,
jugamos uh, la parte equivocada, vamos a usar otra esquina que no hemos usado hasta Forest, que es un Salyan. Y así con todo esto lo que,
la vista de pista ahora es capaz de exceso de vistas de bits individuales que son simplemente componentes de imagen ,
los componentes de imagen que están en los pre fabs y cambiar los colores en función de un tipo de disparador , que es un año que hemos agregado aquí. Y así ahora puedo volver en el controlador de juego y en el mando de jugabilidad. Lo que quiero hacer es crear una referencia rápida a la tribu tú. Entonces voy a venir aquí y voy a añadir un nuevo,
uh, uh, arrastró tu referencia así y voy a llamar a esta vista de trey, y luego voy a ir en el gol de la estela aquí y en el despertar. Lo que voy a hacer Teoh aquí es que es una vista de pista igual a encontrar tipo objetivo en el pasado try view del
Hollinger. Entonces básicamente, es decir encontrar la primera vista try que definió en la escena y que luego lo que también
puedo hacer es ah entonces decir si, uh, vista de
pista aquí, lo
diré solo si no, try view, que básicamente dice, Si trav eres no, entonces quiero emitir una advertencia de registro de depuración para que, uh, sepamos que no hay vista de pista en la escena, así que solo diré, uh, no se encontró ninguna vista de Frank y la escena actual como esta. De acuerdo, así que esto es Ah, esto es sólo una forma segura de hacerlo en un capítulo posterior. Altach on C eventos agudos y todo tocando en todas las fijaciones que podemos que podemos hacer en . Básicamente, lo que realmente quisiéramos hacer es usar eventos para que la vista de pista se suscriba al controlador de
juego y para que el controlador de juego Newton y ni siquiera tenga que
saber de la vista de pista. Entonces esto es aún mejor hacer esto. Pero en un controlador de vista modelo adecuado ahí está Es ah, habitual que el control y las noticias sobre la vista porque es su viejo apretado el uno al otro. Y así ahora que tengo esto, lo que voy a hacer es entonces venir en el siguiente bit aquí donde vemos que acabamos de perder el bit y también son una pista para ti, y entonces sólo iré a buscar el mensaje. Ahí hay un método que tengo aquí Trigger te puja y luego todos pasan la corriente, que es el ritmo actual que se suponía que íbamos a jugar y luego pasar. Trev, intentas ver niebla gatillo así, y luego voy a hacer lo mismo cuando también jugamos los beats aquí. Entonces obviamente, cuando jugamos intempestivamente, entonces hay ahí. No hay nada que mostrar. Y entonces tal vez quisiéramos que mostraras algo más. Pero esto es algo que voy a hablar joven más profundamente en el capítulo posterior como para manejar
al otro. Las recompensas visuales y también las recompensas de audio que quieres regalar al jugador siempre que el jugador juegue correctamente o no. Y así ahí dentro. Simplemente voy a decir que ahí hemos jugado la derecha,
uh, uh, mordió aquí y allá. hemos jugado el ritmo equivocado. Y así lo que sucede aquí es que excedemos la pista de ustedes cada vez que inicializamos. Después encontramos al primer viajero que confinamos en la escena. Y luego cada vez que
jugamos, vamos cuando activamos la gran vista. Y así lo recibirá el Trevi. Este mensaje recibirá este carbón a este método y en función del tipo de gatillo, cambiará el color apropiadamente fuera del ritmo actual. Entonces vamos a echar un vistazo a esto. Y lo tenía funciona. Una de las cosas que es bastante agradable que podemos hacer al respecto es que también podríamos decir que cada vez que nos perdemos, por ejemplo, podría agregar un descanso d pantano, Así que déjame hacer esto. Y luego Entonces esto significa que cada vez que tocamos ese descanso de depuración, va a poner al editor en pausa, igual que si hubiera hecho clic en el botón de pausa aquí. Pero hace esto automáticamente aquí. Y así lo que podemos ver aquí es que básicamente la zona de disparo que se mostraría es sólo ah, un poco. Solo hay un poquito de un desplazamiento. Y acabamos de colocarlo de una manera que le dice al jugador que su significado era jugar. De hecho, acaba de perder su recién faltado. Y así es Ah, este es el error que tuvimos. Entonces, ¿solo van a mover esto del tamaño del gatillo? Uh huh. Así. Y entonces supongo que ahora debería poder,
uh,
jugar uh, esto con eso que le falta nada. Entonces ahí vamos. Y en realidad, lo que acabamos de ver es bastante interesante es que como puedes darte cuenta, ahí tengo un poco sobre es que lo he jugado, y sin embargo va, Ah, en un descanso. Y esto es ah, simplemente cuando nosotros Ah, esto se trata simplemente de esto. Ahí se puede ver que cuando yo cada vez que juego el beat, no
pongo a la jugada viable a verdad, lo
que hace que en realidad dijera que no hemos jugado cada vez que llegamos al siguiente encuentro. Y así lo que necesito hacer aquí es entonces decir jugado igual a cierto en la obra, pero método. Entonces lo he hecho. Ya he hecho esto. Y así ahora lo que también voy a hacer es simplemente deshacerme de todos estos, um, los registros de errores aquí ya que realmente ya no los necesito por ahora. Entonces me voy a poner realmente horrible esto y voy a volver a la vista de la bandeja aquí. Voy a deshacerme de ese libro D aquí mismo y ahora sólo voy a volver a intentarlo y que podemos ver que se juega bien. Perdido, perdido. Tratemos de jugar mal ahí. Yo sólo voy arriba, arriba, arriba, arriba, arriba. Entonces y lo estoy haciendo justo arriba para que podamos ver eso cada vez que alcanzo la mano. Entonces el se volvió el amarillo, lo que significa que se han jugado probablemente, y otras formas se vuelven Zion, lo que significa que se jugó mal, y si simplemente no hago nada que el tren gris, lo que significa que se les echó de menos. Entonces esto es todo por ahora. Y en el siguiente video, sólo
voy a hacer un envolver rápido en DSM arriba de todo lo que hemos tocado en el entrenamiento y también voy a tocar en el futuro entrenamiento está llegando en el mismo proyecto para llevarlo más allá.
18. Retrospectiva de la curso: así que para terminar esto,
repasemos lo que hemos aprendido a lo largo de estos. Por supuesto, hemos tenido una visión rápida de los diferentes controladores de vista de modelo como patrón de diseño. Tal es el controlador de vista de modelo, así
como la vista de modelo, modelo de
vista y el modelo View presentador. Y luego nos metimos en esto y vimos cómo pusimos esto en unidad. Vimos que la clase modelo Onley almacena los datos y que hay notado para hacerlos y comportamiento
motor, que podría ser una clase herbal serialize y que derivar de script
ofrece objeto herbal es la conveniencia de manejar datos dentro el editor y que es, ah, mucho más fácil que tener que manejar Jason o la civilización XML. Tocamos la clase de vista y vimos que la clase pocas solo muestra los datos, por lo que tiene sentido convertirla en un comportamiento motor. También podría ser un comportamiento U. Y, y vimos que se actualiza cuando los datos cambian o también puede recibir eventos del controlador. Después tocamos el propio controlador. Vimos que sólo está destinado a manipular los datos que puede manejar la entrada, aunque eso en un escenario multiplataforma. Se recomienda separar las entradas del controlador y que pueda hacer referencia a la vista , aunque es preferible que la vista se suscriba a sus eventos. Y esto es algo que vamos a tocar en un capítulo posterior sobre Lean Todos vimos que patrones de
diseño son solo sugerencias ahí, solo patrones religiosos. Y dicho eso, vimos que aquí podríamos crear nuestro propio patrón, donde el modelo no actualiza la vista. Es el control de esas actualizaciones. El vista y la Vista simplemente tomarán los datos del controlador y se actualizarán a partir de eventos enviados desde el control o así para ir más allá. Podrás suscribirte a mi newsletter y recibir ofertas exclusivas. Union también se une a Unity Workshops Group en Facebook, y si quieres seguirme en Twitter, es en Unity Coach en Facebook. Lo mismo en que necesitas un entrenador o Facebook que llegue último. Necesitas un entrenador y en la comunidad de unidad, o como respuestas collab y Connect, me
encontrarás con AD. Necesitas un entrenador o una habitación de amigos hasta la próxima vez. Gracias por ver
19. Refactoring.: en este video, me gustaría traer si arreglan a los guiones que lo terminamos con el final de este capítulo. lo primero que quería señalar si tú Dan, con el proyecto final, probablemente ya
te hayas dado cuenta de esos arreglos aquí. Pero recuerda que yo estaba usando aquí en el on Inspector gooey Método A estaba usando este Teoh, en realidad evitar el error que obtuvimos cuando eso creamos una nueva pista en el Inspector. Y de hecho, me di cuenta de que inicializar esta lista aquí el mismo comienzo simplemente se deshace de este error en exactamente mucho más simple. Teoh, hazlo así. Otra cosa que quiero que señale Teoh. Y eso en realidad está siendo señalado a mi atención por uno de los estudiantes aquí en ustedes maniquíes, gracias a John quien, uh, en realidad señaló que segundos por puja y bits por segundo o realmente intercambiados. Entonces a pesar de que los usábamos en los lugares correctos en las voces adecuadas que dicen es que
funciona , probablemente el significado de que ellos el portador es realmente barrido. Y si lo pensamos como bits por segundo es en realidad cuántos beats en un segundo, lo que no son 60 divididos por el número de bits por minuto. Pero es el número de bits por minuto dividido por 60 y la voz en off dice que segundos por puja es en realidad al revés. Si fuera el valor el que realmente se invierte, entonces simplemente cambiaría el signo aquí, y eso sería bastante sencillo. El caso es que ahí está solo el es solo el nombre apagado, viable, así que todo está bien. Pero el nombre de esas variables y las er de acceso son en realidad engañosas. Entonces queremos renombrar esto y así hacerlo, lo que voy a hacer aquí es usar una de las características que es bastante poderosa en
desarrollo moderno que se llama reflector. Por lo que puedo hacer clic derecho en esto y ir y decir, renombrar cuando hagas esto en algo que en realidad es privado o que está dentro de esta clase . Entonces, por ejemplo, si fuera a hacer esto en, uh, la instancia, entonces conseguiría esto. Conseguiría un simple renombrar porque esto no existe y no puede existir porque simplemente porque es privado, por lo que no puede existir en ningún otro lugar. En otra clase, y luego simplemente puedo cambiar el nombre de esto y va a renombrar todas las ocurrencias del nombre de
esta cosa. Pero ahí, lo que es un poco diferente es que esto probablemente se usa en otro lugar, y en realidad lo es. Sabemos que se usa en la vista de pista donde lo usamos aquí como segundos por puja aquí. Entonces lo que podemos hacer aquí es que en realidad voy a cerrar este archivo aquí, y lo que podemos hacer aquí es que simplemente resaltar esto y luego simplemente ir y decir renombrar. Y cuando hago esto, entonces en lugar de simplemente renombrar todos los órganos, está dentro de la final. Se va a apuntalar este diálogo donde puedo cambiar el nombre y son lo que voy a hacer aquí no es si cambio el nombre por bits por segundo que terminaría con dos propiedades que llevan el mismo nombre, y entonces ya no podía renombró al otro. Entonces lo que voy a hacer aquí a partir de ahora es simplemente en un final de marcador a éste, y también voy a copiar esto y luego voy a decir, OK, ahora puedo hacer esto aquí voy a seguir, hacer renombrar y luego voy a renombrar estos dos segundos por ritmo así. Y entonces ahora puedo ir y renombrar al otro y renombrarlo como beats por segundo. Bueno, así. Y luego va a renombrar esto en todas partes del fuego, pero en realidad en todas partes de las soluciones que encontremos nuevamente en la vista de pista. Entonces ahí podemos ver que donde tenía segundos por golpe. Ahora tengo bits por segundo en su lugar, y es por eso que cerré el archivo antes que lo haría antes, porque si lo hiciera con el Open final, en realidad
lo habría hecho. Pero entonces, muy horno. Quieres Thio Thio tenerlo no tener Teoh para guardar el archivo que se ha cambiado. Si lo hubiera hecho como en realidad lo puedo hacer. Just Teoh demo el propósito aquí si hago esto aquí así y me renombré esto con como un par de subrayados detrás. Lo que puedes ver aquí es que ha cambiado este archivo, pero no lo ha guardado, así que si nunca vuelvo a la unidad asistida o muy a menudo terminarás con un error porque guardas el archivo que has modificado. Pero no guardaste todos los demás incendios que se modifica automáticamente. Entonces y también cuando Lo bonito es que en realidad puedes hacer esto en cualquier archivo. Por lo que no tienes que hacer esto en esta multa aquí. También puedes hacerlo. Piensa que están tan ahí. Simplemente puedo ir y decir renombrar y luego quitar el en partituras y luego lo va a hacer
al revés. Entonces esta es, Ah, característica
muy poderosa que quería mostrar aquí en este video. Y así de nuevo, gracias a John, quien en realidad señaló esto, fue mi error. Eso Ya está fijo y voy a abatar también los expedientes del proyecto final y los padres de los otros capítulos de esta formación también. Por lo que como siempre, Muchas gracias por su retroalimentación. Y gracias por ver