Realmente, y aunque no lo parece, sabéis mucho más de lo que parece, porque ya sabéis crear variables,
crear métodos, funciones, sabéis invocar al cabo de cierto tiempo o en un intervalo de tiempo repetido.
Sabéis acerca del motor de físicas?
Sabéis acerca de coloidales?
Acerca de triggers?
Sabéis sobreescribir funciones de la API de Unity, como estar Daito o el que hemos utilizado ahora,
que era el triguera entero o coliseo entero de más.
Y sabéis escribir mensajes por consola y destruir objetos encima.
O sea que sabéis hacer un montón de cosas.
Para mí, de las dos más importantes que habéis aprendido en este segundo juego.
Son las que están en el sistema de Spawn.
O sea, todo lo que tiene que ver con la aleatoriedad es un arma de doble filo.
Por qué?
Porque la aleatoriedad da variedad, hace que no sea tan repetitivo, que no sea tan predictivo el juego.
Pero también aumenta mucho la dificultad, porque si los enemigos que se generan aleatoriamente son
muy diferentes, podría ser que una partida fuera muy fácil.
Porque justamente la aleatoriedad ha creado una oleada sencilla y podría ser que otra fuera totalmente
infumable.
En general, la aleatoriedad es una herramienta muy buena, pero que debe ser manejada correctamente.
Por eso, en muchos casos vale la pena hablar de distribuciones de probabilidad y de que no todos los
números tendrían que ser igual de probables.
Aquí lo hemos hecho con un truco muy barato que es la raid de enemigos o se ha añadido?
Os he dicho que arrastrará más enemigos del tipo que queríais que saliera más.
Eso es una forma muy barata de conseguirlo.
La forma en la que lo hace realmente es implementando distribuciones de probabilidad donde ciertos valores
sean más probables que otros.
El ejemplo más clásico es el del Candy Crash, donde no todos los caramelos son igual de probables en
algunos niveles.
Sale más veces el caramelo azul que el rosa.
En otros salen más los caramelos rayados, en otros salen más los caramelos moteados.
Esa diferencia es de un nivel a otro.
Es lo que establece la dificultad del juego.
Una de las formas de balancear la dificultad del juego.
Y aunque todas ellas tienen una distribución que es de la misma familia, al ser más probable a un caramelo
en una o en otra hace que el gameplay sea totalmente diferente y que de hecho, muchas veces la gente
se encuentre, que se atasca en un nivel y que tiene que pasar 20 días para pasarse a ese nivel.
Pero de repente los siguientes les parece como más fácil porque ha cambiado la distribución de probabilidad
de los caramelos sin necesidad de meterme en todo esto.
La idea es que vosotros ya sabeis rellenar objetos en una raï.
Ya sabéis generar aleatoriamente uno u otro, por lo menos con la misma probabilidad, porque el Random
Ranch hace que todos los números, todos los rangos de valores sean probables.
Lo que vamos a hacer es utilizarlo para hacer un segundo reto.
Y es que van a caer bolas desde el cielo y el granjero tendrá que enviar cachos de pizza, si no al
perrito, a recoger esas bolas antes de que se caigan al suelo si las bolas caen al suelo.
Fin de la partida.
Os he preparado para ello.
Aquí los assets del segundo reto no los he subido.
Ayudo a mi ahora.
Ahora los subiré, si no, como siempre, los podéis buscar.
La base textos de Unity.
Vuelve a ser cría y Wildcat Challenge 2 Play Fetch.
La idea es ésta tenéis el granjero.
El granjero tendrá que mandar el perro a la bolita y evitar que la bolita caiga al suelo.
Como veis, vuelve a haber colisiones aleatoriamente.
Tendrá que enviar el perro, un perro u otro, o aleatoriamente caerán las bolas de diferentes partes
de la pantalla.
Aquí en este caso, yo ya me he bajado del packages.
Ya os digo que os lo subire y aquí de cosas nuevas que haya que tener en cuenta.
Hay materiales que hoy hablaremos de materiales de prototipado y materiales que sirven para dar color.
Básicamente, cuando no tenemos una imagen tenéis tres pelotas pelota o una pelota, dos pelotas, tres
cada una de un color.
Tenéis el perrito que hay que enviar a por las pelotas.
Tenéis un par de scripts que son más o menos los cinco que hemos creado nosotros.
Lo que pasa es que no funcionan.
Hay algo que está mal en esos scripts.
Vosotros tenéis que saber el que está mal distro y.
Ya sabéis de que va detectar colisiones, mover hacia adelante.
El Player Controller y el Respawn Manager son los cinco scripts que hemos creado adaptados para este
juego.
Aquí tenéis algunas animaciones del perro, algunos materiales especiales y algunos ruiditos, texturas
y demás.
Simplemente este Challenge 2 lo podéis importar a vuestro juego y se os habrá creado una nueva escena.
Exactamente lo mismo que hicimos con el de la avioneta.
Doble click se instalaba en el proyecto y debería aparecer una nueva escena.
Vamos a ver si la encontramos aquí.
Carpeta Talens 2.
Me ha añadido al proyecto dentro de Challenge 2 esta la escena Challenge 2 y la escena Challenge 2,
volvéis a tener el escenario.
Tenéis el granjero o la granjera?
Le dais al play y fijaros.
Ves que la cámara ya no es como antes.
Ves que ahora es una perspectiva, no desde arriba, sino desde el lado.
Aquí podéis ver que aquí tiró la bola cuando realmente no debería de tirar la bola.
Debería mandar al perro a por una bola y las bolas deberían caer desde arriba.
Cuidado si haceis que caigan por gravedad, que lo más normal, porque si la gravedad está muy alta
igual la bola aparece arriba y ya pega al suelo.
Si tenéis que cambiar las gravedades, que sepáis que vuelve a estar en Project Settings.
En Project Settings, donde hemos hablado del tiempo en Físicas hay una zona que pone Gravity y la primera
sabéis la gravedad es cero en el eje de las X menos nueve coma ochenta y uno, en el eje de las seis
cero en el eje de las tetas.
Esto es la gravedad que tenemos en la Tierra, más o menos la gravedad promedio.
Si queréis una gravedad más, como en la Luna, pues baja la gravedad a uno coma sesenta y uno, que
es la gravedad de la Luna.
Esto significa que cuando saltais o cuando lanzáis algo que cae por gravedad, lo hará con la misma
gravedad que tendría en la Luna.
Es como medio volando.
Es así de fácil.
Fijaros, es así de sencillo.
Por defecto yo lo dejaría en nueve coma ocho.
Si veis que las bolas os caen muy rápido desde arriba.
Sobre todo pensad que a ver ahora cuando arranques el juego, ahora todavía no, porque no pasa nada
aquí, pero a la que bolas se generen aleatoriamente arriba de la pantalla.
Si esto es mi escenario.
Está aquí está la pantalla.
Imagina si esto es mi escenario y quiero que se genere una bola de hecho.
Hola,
sabía que lo daban roto, lo que no sabía que lo daban tan roto.
Si él es padre, que probablemente lo que le pasa es que el spammer.
Si él es Pauner, veis que genera dog dog, dog, boys, que les genera toc, toc, toc.
Si en lugar de generar toc, toc, toc estuviera generando la bola 1, la 2 y 3 veces, que se caen
las bolas que se caen por gravedad.
Vale, voy a poner las tres bolas.
Ahora en teoría es así como debería estar ahora hablaremos de los cambios que tenéis que hacer vosotros
vez que van cayendo las bolas.
Si yo le pongo aquí la gravedad de la luna.
Veis como caen mucho más despacio?
Claro, esto significa que cuando estoy en el juego tengo más tiempo para llegar hasta ahí.
Y de hecho este carro está en lugar de espantar perros espania bolas.
El que lo ha configurado lo ha puesto todo al revés.
Dónde está el puñetero player?
El player espania bolas si lugarde las bolas es el perro, mando al perro por la bola o veis perro por
la bola?
No veis?
Se trata que combinando la gravedad por un lado que el perro choque contra la bola, que los coloides
sean los adecuados.
En este caso las bolas son esferas, hay un fiel colíder.
El estiércol ahí vendrá como anillo al dedo para poder detectar exactamente el área de la bola, pues
se trata de un juego muy simple.
Mi bicho, este mi granjero tiene que tirar al perro y el perro tiene que coger la bola antes de que
caiga al suelo.
Así de simple.
Puedes jugar con parámetros como la gravedad que decíamos y queréis que la gravedad sea más o menos
acelerada.
Tendréis que configurar, por supuesto, el manager, que es Pawnee.
Lo que toca ahora es Panea bolas y mi granjero dispara espania perros y mi granjero dispara bolas cuando
debería ser al revés.
Pero básicamente el objetivo es aquí se supone que hay un vídeo.
Me gusta mucho porque además ya te pone el vídeo para idiotas.
Esto debería ser lo que hay que conseguir.
Al final ahí está la bola.
Mandas al perro, recoge la bola.
Fin de la partida.
Mientras vayas jugando el objetivo puedes intentar coger tantas bolas como sea posible hasta que aparece
el mensaje derechismo.
Lo habéis visto vosotros?
Además, ya sabéis pasar.
Vale, pues esto debería ser el gameplay.
Fijaros que solo cambia que la camara no se ve desde arriba, se ve desde un lateral, pero por lo demás
hay colisiones con triggers.
Si hay movimientos horizontales y verticales, si se cae por propia gravedad con el Gravity o Gravity
Affected, si es lo que habéis aprendido, se pavonean aleatoriamente entre un diferente tipo de objetos.
Así que no quiero que sean bolas, que quiero que sea un patito de goma.
Te buscas un patito de goma, lo arrastras y caerán patitos de goma.
Vale, por tanto, el objetivo tiene que ser una bola aleatoria o un objeto aleatorio entre los disponibles.
Cae desde arriba desde una posición X aleatoria.
Cualquiera de este trozo blanco no hagáis que esta en el trozo gris en el trozo gris debe ser bastante
difícil porque te caerá muy cerca y será difícil darle al perro entonces cosas.
Cuando el usuario presione la barra espaciadora disparará un perro.
El perro tiene que salir disparado.
Si el perro colisiona con la bola, la bola se destruye.
De hecho, el perro ves que sigue hacia adelante.
No ves que el perro no es destruido.
En este caso el perro sigue hacia adelante.
En el nuestro se destruyan los 12.
Acordaros, se destruya la bola.
La bala, la pizza y el ciervo.
Aquí no, aquí el perro sigue para alante y cuando fallas falla si la bola toca el suelo.
Mensaje de que mover.
Cómo se que la bola ha tocado el suelo?
Pensadlo otra vez.
Triggers, coloides, etcétera.
Alturas incluso.
Os acordáis para saber que se salía de la escena si la altura es menor que dónde está el suelo mover?
Y evidentemente las bolas y los perros se tienen que eliminar de la pantalla.
Lo digo porque ahora no sé si os habéis dado cuenta.
Esto empieza a generar perros.
Y tengo aquí los perros en fila india, uno detrás del otro.
Aquí hay uno, aquí hay otro.
Joder con el coloides del perro.
Habéis visto Aidé?
Madre mía, esto no es un perro.
Me viene con una tele de plasma al perro, su puta madre.
Bueno, hay que toquetear las cosas para que sea adecuado.
Queda claro.
Por tanto, aquí vais a tener que repasar cosas como asignar variables, los arráiz posiciones aleatorias
dentro de un rey, testear el tamaño de los coloides que, como podéis ver, éste no es un colíder normal
y corriente.
Es un colíder de tamaño tele de plasma con un perro pequeño.
Generación aleatoria, colisiones, triggers y demás.
Vais a tener que volver a revisar para este segundo proyecto cosas que hemos visto que fallan.
Se pasean perros en lugar de bolas.
El granjero dispara bolas en lugar de perros.
Habéis visto que además, cuando los he cambiado, nada más es pavoneo.
El perro ya se destruye en toda la bola normal con el puto colíder Ketín.
Entonces fijaros que todo lo que hay que toquetear son cosas que están por aquí.
Fijaros que nada se destruye cuando sale de la pantalla.
Sigue ad infinitum.
El perro debería destruirse cuando sale de la pantalla, cuando sale de cierta región.
Y también fijaros que cuando he cambiado los perros por bolas solo se humeaban las azules.
Habéis visto antes probablemente el código del spawn manager que se les da a un manager X tiene algo
mal, no pasa nada y te scrip.
Aquí tenéis algunas variables como las que hemos utilizado y probablemente el problema está aquí.
Pues veis que siempre es Pavoneaba la que está en la posición cero en lugar de utilizar un número aleatorio.
Entonces aquí vais teniendo la idea punto extra para el que quiera demostrar que ha aprendido bastante.
Os habéis fijado que los perros que van a ser bolas salen siempre al mismo ratio, al mismo intervalo?
Eso es porque usamos el inbound, repiten.
Correcto.
Lo que pasa que podríamos variar en lugar de que estos siempre fueran spawn interval fuera variable.
Podéis hacer que sea un número aleatorio ahora.
España es uno de cara al siguiente.
Esperáis un tiempo aleatorio?
Para esperar un tiempo aleatorio tendréis que hacer dos cosas.
La primera es crear una variable que cuente cuánto tiempo ha pasado desde la última vez y que el déficit
se vaya incrementando con el timing del tatin.
Cuando supere la cantidad de tiempo genera una nueva.
De modo que no invoca.
Iréis al spawn, repiten, sino que llamarías directamente al spawn.
Vale.
O sea, la idea es que aquí en el ADAPT, grosso modo, sería que se prive Float Kanter, que empezaría
en cero y.
Float Next Wait Time.
Siguiente tiempo a esperar 5 segundos entonces en el Android.
Básicamente lo que haría hoy sería el contador.
Hay que sumarle el tiempo delta desde el último Freie para que siempre vaya incrementando con counter
más igual a Time Delta Time.
Esto lo que hace es incrementarlo.
Esto es lo mismo que escribir Counter igual a Canter, más Thain del Tata, que es lo que probablemente
habéis visto en el cursillo de Cesar.
Es exactamente lo mismo.
Entonces este contador va a ir subiendo, va a ir subiendo, va a ir subiendo, va a ir subiendo, va
a ir subiendo.
Y lo que interesa es que si el contador ha superado el next wait time, si ha pasado más tiempo del
que queríais esperar, pues aquí generamos nueva oleada.
En este caso, nueva oleada es igual a nueva Volare genera una nueva bola aleatoriamente del código,
es aleatoria, esta no es aleatorio y hay que hacer dos cosas.
La primera, el contador regresa a cero.
Volvemos a empezar la cuenta del tiempo que hay que esperar hasta la siguiente bala.
Y como queremos que el next waiting sea aleatorio, que no siempre sean 5 segundos, sino que a lo mejor
ahora son tres.
Ahora son 4 horas, en 5 horas son dos.
Lo único que hacemos es que el Next Waiting es un random reumas entre un mínimo de 2 segundos y un máximo
de 5.
Si lo haceis así, veis que cada vez que generes una nueva bola, el next waiting será un número diferente
y esto querrá decir que a veces las bolas saldrán más juntas y otras estarán más espaciadas.
Lo entendemos.
De hecho, aquí, al generar una nueva bola, dejadme poner solo un punto look de back to.
Lo hemos hecho lok formato y así os enseño un nuevo método.
Hemos esperado esto como porcentaje de debía ser.
Y aquí ponemos el contador.
No era next huayta.
Next next.
Wait.
De hecho, no es porcentaje de ese porcentaje porque entonces hemos esperado una cantidad porcentaje
F que será sustituido por el Ness Waiting segundos.
Vais a fijaros que ahora cada vez que lo invoquemos el valor Cambiarã.
Lo pongo aquí a ver si funciona esto.
Pensar que lo único que va a pasar es que va a cambiar el tiempo de Spanic he aquí abajo me refiero.
Entonces fijaros, hemos esperado.
Hoy no me ha funcionado el porcentaje.
Cómo eran los format?
Hoy lo uso tampoco.
No me acuerdo.
No
hay que me ha olvidado cómo era esto de forma.
Pero el porcentaje es para un string a baja por usarlo poco.
Estre informa que no hay ni un puñetero ejemplo, yo juego tampoco.
Vale, es por posición.
Lo veis aquí en el ejemplo ves que es por posición, posición cero, posición, una posición dos.
De hecho sería ya cero cero, porque sólo hay un parámetro.
Si hubiera otro parámetro sería ya B1, B2, B3.
Para indicar la posición aparecía.
Sí, así sí.
Me parecía que me estaba equivocando de lenguaje de programación.
Entonces, ahora sí deberían ir apareciendo los mensajes.
A ver, cada cuanto aparece una oleada nueva de enemigos.
Recordad que ahora no se va a recrear, eso lo he puesto un mensaje, entonces el primero deberían ser
cinco segundos clavados.
Lo veis?
Hemos esperado cinco segundos.
La siguiente vez son tres segundos.
La siguiente vez son cuatro segundos.
No veis que va cambiando?
Cada vez valen.
Y así si lo hacéis de este modo, en lugar de que todos los perros estén aquí espaciados, como pasa
aquí, porque al final, si están aquí espaciados, se convierte en muy fácil.
Si el sistema aleatorio me los pone espaciados, yo también disparo aquí espaciada, me paso el juego,
vale.
Entonces si lo haces así es más divertido y de hecho creo que ahora tal cual está.
Ves que yo puedo otra vez disparar un montón de balas que deberían ser perros.
El mismo truco que os acabo de enseñar aquí para el expander el contador podríais hacer otro contador
para que el enemigo, el personaje, sólo pueda disparar cada dos segundos, cada tres segundos, cada
5 segundos, cazarle.
Cada cuánto puede disparar?
La técnica es exactamente la misma.
Un contador que empieza en cero cada vez que queréis disparar, comprobaréis.
Si ya ha pasado el tiempo necesario y si el tiempo necesario ya ha sido superado.
Lo único que hay que hacer es escanear un nuevo perro y listo y volver a resetear el contador.
Si lo hacéis así, podéis evitar el comportamiento de éste, que no es muy deseado de tatara tatara
tatara y que al final.
Pues sí, yo soy un poco dado a utilizar dos o tres dedos para escanear constantemente bola.
Como podéis observar aquí, claro, mi juego se convierte en algo muy sencillo.
De acuerdo, pues estos son los deberes de la parte número 2.
Preguntas no?
Podéis abrir este, es decir, si abrís los assets que os he pasado, los ases que os he pasado ya traen
una escena vacía.
Te has fijado que se está?
De hecho, lo abrís en esta challenged número 2 y podéis utilizar los gráficos que vienen en esta o
los que han aparecido en otras.
Y preferís lanzar un animal que no sea el perro o preferís lanzar un alce?
Me da igual.
Vale más preguntas.
Acaban de decirle a Rodrigo Rato junto al menor que.
El que.
No mira el tiempo, sino simplemente hacer.
Eso no te lo recomiendo, porque si tu juego corre a 600 fps es porque tengo un ordenador de la hostia,
entrarãn muchísimo más a menudo que en un ordenador que en un movil cutre.
Todo lo que pueda ser dependiente de frames prohibido porque es una práctica muy chapucera.
Osea olvidaros de todo lo que sea.
Voy a poner en tu nick Random House que no, no, porque si.
A ver, a mi el juego me corre bastante bien, me corre a 200 o 300 frames por segundo, pero a lo mejor
si este juego lo llevamos a móvil no va a ir a 200 frames por segundo, irá a 30 y da gracias.
Entonces, claro, lo que en portátil en el portátil es seis veces más frecuente, en el móvil sería
un sexto de menos probable y sería más injusto.
Vale entonces prohibido hacer guarradas de ese estilo?
De nuevo, esos que estáis contaminados de otros lenguajes de programación más basura.
Olvidaros de lo que sabéis.
No, aquí las cosas se hacen bien, no hacemos cosas chapuzas más preguntillas no vale.