Lo que voy a hacer ahora va a ser algo que debería recordar, algo que ya he hecho cuando hicimos el
segundo juego de los animales es pavoneaba animales en el norte bajaban al sur.
Ahora tengo que escanear objetos como estas cosas que tengo por aquí fuera de la pantalla y que se vayan
moviendo, que se vayan moviendo.
Lo tengo arreglado porque acordaros, he creado este escrit de left y los objetos automáticamente y
sin necesidad de hacer absolutamente nada.
Se vienen para donde estoy yo puedo saltar los esquivarlos y demás, que es lo único que necesito,
pues necesito que a la que se me vienen para escanearlo a cierto intervalo con ciertas características
y demás.
Por cierto, si no quieres que caiga el personaje me ha recordado que yo no lo había hecho.
Recordó que cuando teníais un Rising Bolli tenéis construís restricciones.
En este caso, si no queréis que empiece a dar vueltas rollo pino puente, congelando la rotación en
los tres posibles ejes porque no va a rotar absolutamente, se va a quedar en esa posición.
Y en cuanto a posición X y o Z hay una coordenada que nunca va a cambiar la Z por el m de profundidad.
Realmente es un 2D embebido en un 3D, así que colocar el eje Z y realmente este es el concepto de 2,5.
Tenéis un juego que es 2D pero generado en un universo 3D.
No veis que ahora ya por lo menos cuando salto el apego no acabo dando vueltas a lo loco?
Si, pues vamos a hacer ese expanding.
De hecho me voy a cargar estos cuatro objetos que hay aquí en pantalla porque ya tengo los 4 apps estos
fuera.
Qué truco utilicé la última vez para que aparecieran objetos de la nada?
Creé un spawn manager, un spawn manager.
Entonces, qué necesitamos hacer?
Muy sencillo.
Botón derecho crea ese objeto vacío.
Le podéis llamar Spawn.
Manager El mánager moverlo donde queráis lo podéis mover más a la izquierda más a la derecha.
Me da absolutamente igual porque recordad que él es un mánager realmente.
Primero, que es invisible.
Y en segundo lugar, que podéis utilizar su posición para que los objetos se expanden.
Dónde está el manager o podéis definir una variable?
Me da igual.
Entonces, en este caso lo que vamos a hacer es lo siguiente si lo colocas por aquí en una posición
de 30 en X, si lo queréis en el suelo, cero cero en CETA, si lo queréis un poco más arriba que los
objetos al inicio caigan incluso más adelante porque no podamos añadirles algo de rebote a los objetos,
se puede hacer decidir dónde queréis que esté vuestro manager y antes de pasaros a cualquier otro lado,
create un script homónimo.
Create un script manager.
Y se lo arrastrase al propio MOV, manager de la jerarquía lateral.
Bale arrastra demasiado rápido.
No le ha dado tiempo a compilar y por eso me ha dado este error.
Ahora sí, una vez compilado, se lo arrastra Les Polman ayer.
Doble click en el escrit y lo que vamos a hacer es lo siguiente dentro del spawn manager.
Vamos, en primer lugar a crear un objeto que se expande en el estar.
Luego lo haré que se pawnee donde toca.
Vale, pero de momento para ver que funciona vamos a añadir aquí un públic mob.
Obstãculo Vamos a añadir
si quereis una posición de Spanic la podéis crear aquí por.
Vector 3 spawn os he dicho si queréis e igual a new vector 3.
Lo que hemos dicho no queda 30 cero cero si lo queréis, si no la queréis.
No pasa nada porque vuestro objeto ya está en la 30. cero cero.
Ya lo he colocado ahí.
Vale, o sea, esto es opcional.
No hace falta.
Lo coloques si no queréis, si queréis y no hay ningún problema, entonces en el estar lo que voy a
hacer.
Mira, se la voy a usar, pero la voy a usar de otro modo.
Vamos a hacer Privat Vector 3 spambots.
No la voy a asignar.
Típicamente la asignaría a un valor, pero que sea el estar quien la asigne, porque total él sabe donde
está el manager.
Por tanto, aquí voy a hacer el mismo truco que hice antes.
Es un post igual y en este caso sería disputo transform.
Punto positivo.
Es decir, la posición de Spanic será la posición donde el Transform del Spawn Mãnager esté ubicado
al inicio.
Es decir, que hemos dicho del 30 0 0 30 lo mejor es un poco lejos, pero bueno, ya lo veremos.
Correcto.
Para ver que esta cosa funciona en el estado.
Voy a hacer una instancia y os acordais como funcionaba al instante.
Entonces hacemos instantly tres parámetros el primero objeto que quieren instancias en el prefacio llamado
obstáculo obstáculo coma.
De hecho, dejadme llamarle obstaculo grifa porque es un prefacio.
El obstáculo realmente será cuando lo instancias, entonces el obstáculo grifa, que es el objeto que
vais a instancias donde lo vais a instancias a un sitio donde está el Spawn Manager Composition y con
qué rotacion.
Acordaros que ya estuvimos hablando de los cuaterniones y demás que podían votar o no en este caso como
los objetos hay algunos que yo ya los he rotado, ya tienen una rotación inherente.
Tomemos la rotación del obstáculo que vais a instancias, por tanto, no será obstáculo.
IFAB Punto Transform Punto Rotation.
Os acordais que también lo habíamos visto?
A ver, una vez que habéis visto lo básico en Junichi, todo se empieza a repetir.
Os pensais que os voy a estar explicando cosas nuevas todos los días?
Hay muchas veces que vamos a tener que reutilizar cosas que ya sabéis.
Esto quiere decir que si yo ahora guardo este script y me voy al editor de Unity, podremos probar primero
si se instancia o no un determinado objeto y en segundo lugar, si la instancia el 30 cero.
Cuánto tiempo tarda en llegar a mí, si tarda 3 o 4 segundos va bien porque os da la idea de que el
jugador se empiece a habituar a qué velocidad van las cosas, cómo se mueven y demás.
Así que dos cosas importantes la primera, guardáis el script.
Lo segundo, venís al editor y dentro del editor vuestros palmauna ayer veis que está esperando un prefacio,
un obstáculo.
IFAB seleccionaste el que queráis de la carpeta de apps.
Por ejemplo el barril.
Pues le arrastras el barril.
Le dais al play.
Y.
Ahí viene, lo ves?
Es que viene para acá, se.
Vale, segunda mejor es que yo no quiero que sea un obstáculo.
Yo quiero que sea un obstáculo, no?
Yo no quiero que se invoque solo al inicio.
Quiero que vayan apareciendo obstáculos cada dos segundos, cada tres segundos, cada cinco segundos.
Si hacemos el truquito que vimos ayer, en lugar de llamar a instantly, acordáis que ayer creé una
función que hacía el distanciado y la invocaba haciendo uso de Invoke?
Repiten Lo que hacemos es creamos una función, me cargo la Apdayc, no lo voy a usar.
Veidt Spawn Obstacles Escanear un obstáculo.
El spawn obstacles va a hacer exactamente esto.
No os engaño es este código que hay aquí.
Lo corto del estar no lo hago.
Cuando empieza el juego, sino que lo hago dentro de la función spawn obstaculo como vimos si y ahora
ver para recuperar la funcionalidad que teníais hace un segundo, el estar debería llamar a un obstáculo,
pero esto volvería a crear solo uno.
Todo no es útil.
Si queréis que se invoque repetidamente, vamos a llamar a Invoke.
Repiten tres parámetros para el inbox.
Repiten el primero, entre comillas, el método que vais a llamar, que se llama Spawn obstacles koma
el tiempo que hay que esperar hasta el primer Spanic y cada cuánto queréis que se pare un objeto.
Recordad, aquí podríamos poner, pues tras dos segundos y cada dos segundos que se espanté algo.
Pero en general no lo pongáis a piñón, no lo pongáis como una variable escrita, crítico, como un
valor escrito, dejar codeado, ponerlo como variables.
Reuven Flood Start Dilthey 2 segundos, Flood Ripollet Raid 2 segundos o 1,5 o lo que queráis.
Y así ya utilizáis el estar Dilthey y utilizáis el raid de forma mucho más inteligente que no con valores
escritos a sangre y fuego.
Vale que la misma técnica que ya conocéis es exactamente la misma, no cambia nada, absolutamente nada
de.
En particular, vamos a probar si funciona esto.
A ver si funciona.
Vuelvo a poner el código tranquilos.
Fijaros que ahora nuestro manager es capaz de escanear objetos cada dos segundos.
Ahí viene un barril.
Ahí viene otro barril.
Ahí viene otro barril, ya sin mirar.
Ahí viene otro barril porque me he acostumbrado a leer.
Entonces está claro que esto no va a ser el juego más divertido del mundo.
Si los barriles vienen todos iguales a la misma velocidad y encima son barriles, por tanto habrá que
cambiar cosas.
Aquí la tarea gorda, la del manager, está cubierta.
El manager debe instancias, objetos.
Sin embargo, fijaros que la gracia se pierde si todos los objetos son iguales.
Entonces, qué truco utilicé ayer para que no todos los enemigos fueran iguales?
En lugar de utilizar un gameshop que utilicé una raíz de Monges, entonces coloqué mog corchetes y de
hecho, para ser coherentes con la nomenclatura no le llamais obstáculo FAP, sino obstaculizados plural
porque hay más de uno.
Entonces el obstáculo AFAPs ahora y toda una colección de objetos
y lo único que hay que cambiar es que el método sea un obstáculo.
Antes instancia va.
El único correcto es que ahora me aparece de color rojo, de hecho, porque le he cambiado el nombre
y le he puesto que AFAPs en plural y le he puesto el corchete.
Es una colección, es una Roy.
Pues bueno, lo único que voy a hacer aquí es decidir que el Game Object Obstacles va a ser de la colección
de Obstacles AFAPs en plural, el que está en la posición y como quiero que sea aleatorio.
Os acordáis que para aleatoriedad utilizábamos Random Range Random Range y el rango entre el cual puedo
elegir es desde la posición número cero hasta la posición que me da obstacles AFAPS.
Punto.
Os acordáis que es lo mismo que ayer?
Lo vimos lo mismo, lo mismo, lo mismo, lo mismo.
Cojo un game object, le llamo a ese keylogger como le llamaba antes a la variable global, sólo que
ahora esta variable es local.
Y de dónde lo saco?
Hasta que el FIFA lo sacó de la colección de todos los obstáculos que el PRI AFAPs en la posición corchete
dada por Random Reintsch entre cero y la longitud, de la que hay tres obstáculos, pues uno de esos
3 que hay 27, pues uno de los de los 27 posibles y así sucesivamente.
Lo entendéis realmente?
Aquí acaba de hacer tres cosas a la vez, que es consultar cuántos objetos tengo.
Generar un número aleatorio entre todos los disponibles y quedarme con el objeto aleatorio en la posición
dada aleatoriamente de entre todos los disponibles.
Estas tres cosas las he hecho en una sola línea.
Esto va a pasar mucho.
A medida que vayáis programando tendréis a tener unas líneas de código largas, largas, largas, largas
para sacar a relucir que tan buenos sois programando a la práctica.
Que esto esté en una línea o esté en 3 es lo mismo, es igual de eficiente y es igual de útil.
No hay ningún inconveniente en romper esto en tres líneas o dejarlo todo en una línea super larga,
porque además el carapacho colector, que es la parte del motor que se encarga de la limpieza de variables
que ya no son útiles, no influye para nada, no influye.
Qué le pasa a
la rotación del objeto?
Está aquí.
Aquí está todo, además funciona.
Habéis visto que entonces guardáis y lo que deberíamos ver ahora es que cada vez que instancia es cada
dos segundos un objeto el que aparece, pues es diferente al play.
Importante que haya descongelado sobretodo las rotaciones del eje y del personaje, para que si se choca
no empiece, no empiecen a pasar cosas raras y muy tontolaba.
No he asignado los posibles obstáculos, culpa mía que les palman ayer.
Ahora no tiene obstáculos.
Antes tenía uno.
Ahora tengo una raid vacío.
Le arrastro el barril, la arrastro una barrera, la arrastro, la caja, la arrastro la otra barrera.
Si tenéis más obstáculos, aprovechad.
Si queréis reutilizar uno de los obstáculos de ayer.
Uno de los animales, por ejemplo, lo podríais colocar y fijaros ahora.
El resultado es este.
Ahora Mevir una barrera.
Ahora me viene otra barrera, que es la misma.
Ahora me viene una caja.
Ahora me viene otra barrera.
Ahora una caja.
Fijaros que no puedo saltar encima de la caja.
Un barril.
Otra caja, otra barrera, etc..
Lo veis?
Si.
Luego hablaremos de cómo hacer que en lugar de que todos salgan iguales, algunos salgan antes, otros
después, que haya aleatoriedad en la distancia entre objetos.
Por qué ahora, a pesar de que uno es más grande, el otro más pequeño son todos.
Están aquí espaciados al final de cuentas.
Pero ya nos preocuparemos de esto.
De hecho, hay otra cosa que ahora a lo mejor no sois conscientes, y es que si Choco me lleva, habéis
visto y luego lo otro es que se me está cayendo todo aquí.
O sea, esto es como la cinta del Mercadona.
Sólo que en lugar de ir a la bolsa se va a tomar por culo y de hecho los tengo todos por aquí abajo.
Están cayendo por aquí.
Están muy abajo, están a 17 kilómetros bajo tierra.
Pero bueno, por lo menos ya tenemos instancias de objetos, se nos mueven.
Aprovechad si creéis que van muy lentos o van muy rápidos para cambiar la velocidad.
Recordad que ahora todos yo los he puesto a velocidad.
5.
Si yo los pongo a diferentes velocidades, 1.
Lo pongo a velocidad.
8.
El otro a velocidad.
7 a velocidad.
6.
Cada uno de ellos irá a su ritmo.
Vale, incluso id con cuidado porque el más rápido se podría acercar al más despacio que lleguen a colapsar
si las velocidades son realmente muy diferentes.
Pero fijaros ahora que he subido la velocidad a 8, si sube la velocidad a 8 pasan dos cosas.
Lo primero es que están más separados porque van más rápido cada uno de ellos.
Y que va más rápido es el que están más separados.
Las dos cosas.
Vale, sí, pero bueno, fijaros que ahora ya sabéis.
Mirad, chocó con esta cosa, se va afuera.
Si me choco, me la llevo puesta.
Me arrastra y me caigo yo también.
A tomar viento.
Por tanto, ya sabéis hacer que se salte en base a propiedades físicas.
Ya no utilizáis el translated, utilizáis el ñam o el método del motor de físicas para aplicar una fuerza
vertical hacia arriba.
Sabéis cómo evitar un doble salto con una técnica muy chula que es la de colisiones cuando un objeto
toca a otro basándose en una etiqueta.
Sabéis cómo hacer que los objetos se muevan a velocidad constante, como por ejemplo en el caso de las
de las cajas o de más?
Aquí, por ejemplo, el Leaf, que he aplicado uno de los objetos que además de moverse podría rotar
cual es el que se presta a que a la vez que se va moviendo pallá, vaya girando el barril el barril.
Es el caso perfecto para que vosotros aplicás no solo una fuerza o una traslación, sino que además
lo hagáis rotar.
Así que ejercicio para vosotros cread un scrip llamado Rothbart.
Y el rodetes es muy simple, solo tiene que girar alrededor de un eje.
Cuál?
Pues no lo sé.
Me voy a los prepas, miro el barril y ahora que lo tenéis aquí en pantalla.
Respecto de qué creéis que debería rotar el barril, el verde, la Y griega?
Si yo hago que tenga dos scrip, el que lo mueve por un lado y el que rota por otro, la combinación
de que el que lo hace rotar por un lado y el que lo mueve por otro, va a dar el movimiento que tenéis
en mente, que es el barril rodando.
Sí, entonces mini ejercicio para vosotros.
Podéis crear ese script y hacer que rote alrededor del eje de Asís.
Incluso más adelante hablaremos un poco de materiales materiales, físicos, no visuales.
Los visuales son los que vimos ayer.
Los materiales físicos, porque a lo mejor interesa que el barril, además de ir rotando y demás, vaya
saltando a lo mejor.
Vale, y el que vaya saltando estariais pensando el mismo escrit de salto.
Sólo que en lugar del espacio en blanco con un inbox, repiten.
Por ejemplo, si queréis un material físico, podéis hacer que rebote en base a propiedades físicas
de un material.
La fricción, el sin, la rigidez, la tenacidad, la torsión son propiedades físicas que también se
pueden aplicar.
Vale, perfecto.
Pues ya tenéis básicamente todo lo que hace falta desde el punto de vista físico, al menos para tener
un controlador e importante.
Os he enseñado muchas cosas nuevas ahora que a lo mejor no sois conscientes de todos, pero que os van
a hacer falta.
El método que componen para obtener otra componente en otro lado del mismo objeto, el la física.
Cómo se aplica una fuerza y los cuatro tipos de fuerza, dependiendo de si queréis que afecte o no afecte
la masa.
Y si queréis que se aplique puntualmente o de forma continua las restricciones de los rigido bodies.
Hemos dicho que nuestro player queríamos que no rotará en ningún eje y que, por ejemplo, tampoco se
moviera en CETA.
Estos conceptos son muy pero que muy importantes y de hecho el único que realmente estáis obligados
a a congelar es la Y griega, porque si no haría efecto bailarina.
Cuando chocara empezaría a hacer efecto bailarina.
El otro, pues qué quieres que te diga si se cae y se tiene que caer así que pegue para alante o demás.
No está de más que pueda rotar sobre el eje de la Z y que se caiga y se pegue un porrazo total.
Nosotros luego vamos a destruirlo.
Vamos a ver una nube de humo y va a desaparecer.
Ya no me influye demasiado.
En este caso sí, pero básicamente ya empezáis a tener todas estas cosas claras.
Hemos visto los bule, nos hemos visto a un operador nuevo, que es el de multiplicar y asignar a la
vez el doble A&G para doble doble, condición importante del colisionen que se distingue del trigger
porque la colisión no existe.
Es un concepto y el trigger si que hay una zona marcada como tal.
Por tanto, fijaros que con esta tontería que ha vuelto a ser hacer un controlador, recordad, siempre
empezamos por hacer un controlador.
Habéis aprendido muchas cositas nuevas que hay que tenerlas en cuenta a la hora de aplicarlo a vuestros
propios juegos.
Vale, perfecto.