Si os fijáis ahora que ya tenemos los bichos, éstos y la comida y demás, hay una cosa que podemos
hacer para mejorar.
Qué le pasa a los enemigos cuando llegan a cierto lugar?
O qué le pasa a la comida cuando llega a cierto lugar que desaparece?
O sea, aquí, y aunque no lo estáis viendo, los animales siguen ahí yéndose de la escena, cuando
realmente si ya están fuera de la escena.
Esto es un desperdicio de memoria, así que lo que vamos a hacer es ser capaces de detectar que un objeto
ha salido de la pantalla, o bien porque es la comida que sale disparada para arriba, o bien porque
son los animales que ya se han ido de la parte inferior.
Cómo lo haríamos?
Os parece?
Es lo mismo que el movimiento del granjero, de hecho, un movimiento del granjero se paraba si se salía
de ciertos límites, la pizza o la comida o los animales deben desaparecer, deben destruirse cuando
desaparecen de la pantalla.
A ver cuando desaparecen de la pantalla.
No significa que los tengas que destruir cuando llegan aquí, cuando ya se han pasado y están un poco
más lejos, los podéis destruir.
Por ejemplo, el perro, que es el que se mueve más rápido.
Aquí tenéis las coordenadas.
Fijaros que cuando va bajando la zeta baja, baja, baja, baja, baja hasta que es negativa.
Veis que ahora ya es negativa?
Podríamos decidir?
Pues mira, los vamos a destruir cuando estén al menos 20 o al menos 30, menos 40, menos 60.
Y lo mismo para la pizza.
Si la disparo la pizza, que dispare y la intentaré para.
PODIDO parar la pizza que hay varias veces, que de momento están en 8, 7 u 8 veces.
Si lo hago avanzar Frayba, Freinet.
Qué va, se va moviendo.
Llega hasta 20, 21, 22, 23, 24, 25, no sé si todavía se debe ver, no mira, ya ni se ve.
Ya está fuera, lo veis?
Por tanto, con localizas un lugar a partir del cual la información ya no se ve.
Y aquí podéis ver que ya está fuera de la cámara.
Esto es el tronco de visión de la cámara y aquí la pizza claramente ya está fuera.
Entonces es un buen momento para llegar a llevar a cabo la destrucción.
La forma más fácil o la que a mi me gusta es tener un script para destruirlo todo.
Entonces, en el script vamos a crear un script vacío y le vamos a llamar distraido autoevacuados destruir
para cuando está fuera de una frontera y el proceso de destrucción de nuevo va a pasar como antes.
Va a destruir cualquier cosa que se salga de las fronteras de la pantalla, sea la pizza, sea la botella,
sea un animal.
Vale, es el mismo script este distro ñatos bounds.
Vamos a abrirlo aquí.
Qué creéis que necesita en términos de variables?
La distancia lo que hay que destruir, no por qué?
Porque este escrit se va a añadir automáticamente a cualquier cosa que se instancia de enemigo o bala.
Es decir, nada más se hayan creado estos objetos tendrán fecha de caducidad.
Vale, entonces lo único que necesitamos en términos de variables es una variable private cloud.
Vamos a llamarle frontera superior.
Vamos a empezar por las balas.
Top down y el top bown?
Yo creo que en 30.
Vamos, que nos sobramos.
Vale dejaros que el 30 estaría más o menos haberme traído la vaca.
Esta 30 estaría por aquí y aquí ya está más que de sobras.
Fuera del campo de visión de la cámara, por lo tanto, yo creo que 30 está bien como variable top,
frontera superior de destrucción.
Y sobre todo, la única razón por la que este escrit existe es para evitar saturar la jerarquía con
objetos inútilmente.
Al final, el exceso de objetos tendrá que ser manejado por la CPU y eso significa que cuando el número
de objetos crezca exponencialmente vamos a tener una limitación.
Al final, la capacidad de la CPU o de la memoria para guardar referencia a todos estos objetos es limitada
y por tanto, lo que queremos evitar es sobre saturar nuestras máquinas o, si es un teléfono móvil,
drenar la batería del mismo.
Entonces, la razón por la que existe este distraido out of bounds es para poder hacer la limpieza de
todo lo que no hace falta que esté en la jerarquía y que esté gastando RAM inútilmente.
Entonces, en este caso es muy fácil.
Qué código añadiría es en el ADAPT para hacer la destrucción.
Si se supera la frontera superior, como este scrip lo llevará a cualquier objeto que se mueva por pantalla.
Es tan simple como consultar y si el objeto actual si disputo transform punto positivo, punto X y Z,
cuál es la dirección que hay que chequear para salirse por arriba o por abajo de la pantalla?
Z.
Hay que mirar si la Z supera la frontera superior top down, si la coordenada del objeto que tiene este
scripta arrastrado supera la frontera superior.
Lo único que hay que hacer es destruir el objeto punto destruir.
Es un proceso muy simple, es llamar a una función que se llama distro con la de mayúscula.
Y dentro del paréntesis hay que poner la palabra game object con la o minúscula cola g en minúscula.
No me lo pongáis con la G mayúscula g mayúscula.
Es una clase gameshop es el objeto que queréis destruir.
De hecho este es otro escenario de los que yo colocaría Disputo Cambodge para indicar que vais a destruir
el objeto que tiene este script asociado.
Vale entonces así de simple.
Si las coordenadas en el eje Z supera la frontera superior establecida, estos 30 puntos que ya he puesto
como variable privada para que nadie me las toque, pues fijaros cada vez que un objeto se pase por
arriba será destruido.
Vamos a probarlo.
Para ello simplemente guardamos el script y a quien hay que darle este suscriptos parece a los proyectiles.
Y cuantos tenemos 4 o yo tengo 4, pero tengo un FAP y tres variantes a quien se lo doy para que sea
más rápido al padre.
Recuerda que mi padre era la picha.
Entonces a los proyectiles me busco la pizza, la pizza, le añado la componente distraido o atef bounds,
el distros y autos, vamos.
Se lo he añadido al padre y los hijos automáticamente veis que me lo han heredado.
Esto significa que cuando le doy al play los animales van a seguir su curso, pero si yo disparo la
pizza.
Veis que a la que dejó de dispararse van destruyendo?
Podéis disparar un montón de pizzas, pero como veis aquí lo vais a ver.
Voy a ir avanzando.
Veis que se me van destruyendo.
A medida que vaya avanzando, freímos.
Veis que van desapareciendo?
No veis que cada vez hay menos?
Si van desapareciendo aquí, si dejo de disparar, desaparecen todas las pizzas de la jerarquía.
Pero ya está, ya lo tenéis.
Mini ejercicio para vosotros destruir los animales cuando se salgan de la otra frontera.
Vale menos probarlo, que es muy fácil.