Bienvenidos de nuevo, mis compañeros desarrolladores de juegos.
En este video, cuando ejecutemos el juego,
verás que tenemos muchos errores.
Nosotros no los arreglamos todos, pero nosotros los
arreglamos a la mayoría.
Entonces voy a seguir adelante y recoger la escopeta,
recoger algunas monedas,
ser golpeado por los picos,
pasar por la puerta,
pasar por este portal.
Y ahí tienes.
Se puede ver que estoy del otro lado estaba mi escopeta,
era mi pistola con mi salud,
pero no es visible porque no
hemos removido esas cosas.
Pero si vamos a hacer jugadora scroll hacia abajo,
notarás que teníamos 500.
Lo cortamos por los picos y son 490,
pesar de que no hicimos nada.
Entonces, no perdamos más tiempo y empecemos.
Las cosas que aprendemos en este video son muy importantes,
un poco engorrosas, pero muy importantes.
Entonces vamos a pisotear.
O K.
Por lo que actualmente podemos ir de nivel a nivel.
Tenemos opciones donde elegimos
uno de los niveles aleatorios que tenemos.
Obviamente, hay un par
de cosas que tendremos que retocar
con la apariencia de
la puerta y desaparición y así sucesivamente.
Siento que todavía queda un poco de retoques,
pero hay un problema aún mayor.
Y eso es una vez que cogemos las monedas,
el arma, y nos golpean estas bicicletas o algo así.
Déjame mostrarte.
Cuando cogemos la escopeta,
cogemos algo de dinero,
nos golpeen los picos.
Ahí vamos. Para que podamos ver que nuestra vida es para 9500,
vamos a un nivel numérico.
A lo mejor esto será, y se puede ver en este momento,
mientras que el jugador, si miro
al jugador D1, está desligado.
No está ahí. Para que veas
que su vida vuelve a los 50.
Si traté de elegir la escopeta,
no puedo. Y ahí tienes.
Se puede ver que las monedas son
0 y eso es algo que vamos a querer cambiar para
asegurarnos de que nuestro jugador realmente
guarde todo con él a medida que pasa por el nivel.
Entonces sigamos adelante y solo hagamos eso.
Entonces voy a abrir
mis guiones aquí y voy a ir al
controlador del jugador, desplazarme hacia arriba.
Y lo que queremos es obviamente que queremos mantener
nuestras armas de nivel a
nivel y la salud del jugador.
Entonces para mantener eso,
necesitamos asegurarnos de que no destruyamos al jugador.
Podemos guardarlo en algún otro objeto
o en algún lugar del proyecto.
Pero obviamente lo hay,
el problema era cargar
una nueva escena que restablece todo.
Entonces lo que voy a hacer es aquí dentro voy a crear
un controlador público de jugador estático.
Y va a ser la instancia.
Y en la instancia voy a
crear un privado o saber qué,
sólo escribamos despierto.
Y aquí dentro voy a decir que
la instancia es igual a esto.
Y entonces aquí dentro no voy a destruir a carga.
Y será esto.
Entonces si guardo esto y paso sobre no destruir carga,
se puede ver eso para no destruir
el objeto objetivo al cargar una nueva escena.
Y eso es exactamente lo que queremos.
Entonces, ¿qué pasará ahora?
El objeto o el jugador y nuestro caso,
vamos a guardar todo lo que
tenía con él de escena en escena.
No se destruirá,
no se restablecerá.
Pero está el problema de que
el inicio no se llamará el Gap.
Por lo que no estaremos configurando la cámara principal.
Nos quedaremos con el animador del jugador,
pero la cámara principal cambiará.
Y verás que esto producirá muchos
errores que arreglaremos a medida que avancemos.
Pero por ahora, entiende el no
destruir carga y lo que hace.
Ahora, voy a volver aquí.
Y si miras el,
dónde está, la habitación,
el portal, he cambiado el portal uno,
que es éste, para ir al nivel cuatro.
Para que podamos ir al cobarde.
Y déjame solo ir a las escenas porque estaba
probando algo y apagué
el jugador de cúpula aquí dentro. Entonces ahí vamos.
Eso lo encendiera.
Guardemos eso.
Volvamos a esperar a que esto se cargue en cualquier día ahora,
guardemos eso de vuelta a donde estamos sirviendo.
El cráneo es donde tenemos el de Kelly.
Sí, Fuimos un esqueleto.
Entonces guarde eso.
Y te darás cuenta en la jerarquía ahora mismo,
y la unidad, la nueva actualización, lo siento, es terrible.
Por lo que en la jerarquía notarás que tenemos el no
lo destruya y tiene el juego de perdición o debajo de él.
Entonces voy a recoger la escopeta,
convertirme en los Bitcoins ser golpeados por los picos,
abrir la puerta, trasladarme al nivel 4.
Y ahí vamos.
Y se puede ver que ahora estoy aquí,
pero el problema es, se
puede ver a un jugador abajo y yo capa aquí arriba.
Por lo que ahora tenemos dos jugadores.
Uno de ellos tiene escopeta, el otro no.
Y se puede ver que tenemos una tonelada de errores y los contras.
Entonces voy a abrir la consola.
Voy a pausar el juego.
Y en primer lugar, tenemos al jugador de la perdición.
Y aquí esta es una depuración que estaba mostrando.
Permítanme borrar esto.
Ya verás a lo que me refiero en un poco.
Voy a borrar esto.
Siguiente.
Tendremos la,
esta flecha aquí mismo,
que está bien, así que este es el problema en absoluto.
Lo arreglaremos en el video posterior.
Entonces finalmente tenemos
el objeto de tipo cámara ha sido destruido.
Todavía intentas acceder a ella.
Entonces voy a hacer doble clic
aquí y es la cámara principal,
y es exactamente de lo que te dije.
Entonces ahora que sabemos que nuestro jugador está en transición,
y podemos ver justo aquí en la escena,
si hago clic en el doom player,
que es el no destruir,
tenemos que hacer jugador,
así que tendremos que arreglar eso.
Pero uno de ellos todavía tiene la escopeta.
Entonces técnicamente, podrá
moverse con esa escopeta.
Y miro al tomador de tumbas,
desplácese hacia abajo a su salud y se puede ver que el,
su salud actual también tiene transición.
Desafortunadamente, sigue existiendo
el problema de los bitcoins,
pero vamos a arreglar eso paso a paso.
Primero que nada empecemos con
la gestión de los estándares de doble capa.
Entonces esto es algo que tendremos que abordar.
¿ Y cómo vamos a ajustar esto?
Bueno, hay un truco muy ingenioso que podemos usar,
que se llama patrón singleton.
Déjame mostrarte usando
código qué es eso y luego te explicaremos.
Entonces antes que nada, aquí en despierto,
lugar de poner inmediatamente la instancia,
voy a decir que si no tenemos una instancia,
entonces la instancia es
amines son si ya tenemos una instancia,
por lo que es diferente a null,
y la instancia es diferente a esta.
Entonces lo que voy a hacer es destruir
este objeto de juego.
Entonces, ¿qué estoy haciendo exactamente aquí?
Voy a revisar en cuanto esperemos.
Es la instancia diferente a nula.
Entonces eso significa que si la instancia no es nula,
voy a destruir el objeto del juego.
Pero hay otra cosa
si la instancia es diferente a ésta.
Entonces lo que estoy haciendo aquí,
ya que estoy empezando el juego,
estoy comprobando si o ya tenemos una instancia
o la instancia es igual a este objeto del juego,
voy a destruir este objeto del juego.
Y esto asegurará que nosotros, en primer lugar,
no creemos
una segunda instancia de este objeto de juego.
Y en segundo lugar,
no duplicamos el objeto que ya está aquí.
Entonces si vamos a una nueva escena
y encontramos que tenemos en un objeto de juego,
será destruido de inmediato.
Pero de lo contrario, en caso de que no tengamos instancia,
así que estamos empezando el juego de nuevo,
o cuando iniciemos una nueva escena y no haya
instancia que sea igual a ésta,
entonces voy a decir esa instancia como igual a esto.
Esto solo creará una nueva instancia.
Y esto asegurará que no tengamos
dos instancias o que ya haya una disponible.
Entonces voy a guardar eso y voy
a demostrar cómo va a funcionar esto
y abróchate porque vamos a tener muchos errores.
Y yo estaba probando esto para asegurarme
de poder manejar correctamente todo.
Entonces recojo las monedas,
me golpean por 90,
abro la puerta, y voy a golpear el portal,
alejarme de él. Y ahí vamos.
Entonces puedes ver ahora mismo,
no tengo jugador de equipo.
El segundo jugador ha sido destruido.
Eso se debe a que comprobó y está despierto.
¿ Existe una instancia?
¿ Es la instancia diferente a nula?
Sí, lo fue.
¿ Y es la instancia igual a esto?
Sí, lo fue. Entonces vamos a seguir adelante y destruir.
Por lo que de vuelta aquí verás que sólo tenemos
12 patrón el cual tiene escopeta.
Él puede disparar.
No puede apuntar y no puede cambiar su arma,
pero sí tiene la escopeta.
Está animando,
todo está funcionando y notarás que
está en la misma posición que
estaba en la escena anterior.
Y eso es porque en realidad
mantendrá con él a medida que se mueve.
Entonces te darás cuenta de que cuando entré al portal,
entonces me mudé porque no quería
quedarme en ese portal.
Entonces con esa información,
después de todo el camino, Veamos qué errores tenemos aquí.
Entonces voy a hacer una pausa porque hay mucho.
Entonces, antes que nada, verás el problema con la cámara,
que vamos a arreglar en tan solo un poco.
Ya verás que tenemos un problema
con los enemigos cobardes.
Están tratando de encontrar el objeto que es el jugador,
pero simplemente no pueden.
No sólo eso, nos está diciendo que
la transformación del objeto ha sido destruida,
sino que aún intentas acceder a ella.
¿ A qué se refieren con eso?
Bueno, en cuanto llegaron a este mundo,
vieron al pequeño jugador de la perdición que estaba aquí inicialmente.
Y luego cuando comenzó la escena,
quedó destruido y aún intentaban acceder.
Y si hacemos doble clic aquí,
notarás que está justo aquí en la persecución del jugador.
Entonces todo el problema es con el jugador Chase.
Obviamente estaremos arreglando eso también,
se arreglará la cámara.
Y por último, este problema también está aquí y
el objeto de juego jugador activo y jerarquía.
Por lo que todo esto será arreglado y solo un poco.
Entonces voy a deshacer esto y vamos
manejar los problemas de uno a la vez.
Así que para esto, abre esto, empieza el juego.
Entonces abre los guiones.
¿ Y qué vamos a hacer?
En primer lugar, primero creo que manejemos
el problema de la cámara principal.
Entonces si vamos al controlador de jugador donde usamos la
Cámara Principal. Hagamos doble clic
en Cámara Principal y desplázate hacia abajo,
veamos dónde lo usamos.
Nosotros lo usamos.
Ahí vamos, en el apuntando el arma.
Entonces aquí estoy simplemente momento de comprobar si
la cámara principal es igual a nula.
Eso significa que no tenemos cámara.
Voy a decir que la cámara principal es
igual a la cámara punto principal.
Y esto sólo sucederá una vez que comprobemos
es la cámara nula.
Eso significa que no tenemos referencia.
Si lo es, entonces pondremos la cámara principal.
Otra vez. De no ser así, sólo seguiremos con regularidad,
regularmente con el apuntando un arma como máximo.
Por lo que de vuelta en nuestro juego correrá.
El juego retomará este, abriendo. ¿Algo más?
Pasaremos por esto.
Y del otro lado,
veremos en la escena.
Ahí vamos. Se puede ver que soy capaz de señalar esto,
pero obviamente lo hay,
la cámara en el mundo del juego
no se está enfocando en el jugador.
Y esto es algo que
obviamente necesitaremos flexionar.
Entonces vamos a arreglar.
Voy a entrar en mis guiones.
Y aquí mientras estamos llamaremos a esto,
¿Dónde deberíamos llamar a esto?
A ver, ¿dónde pusimos la cámara de forma?
¿ Podemos saberlo?
¿ No sabemos qué?
Vamos a entrar en
los guiones y ponerlo dentro de los gerentes.
Gerentes, gerentes, gerentes.
No hay gestores.
Está bien.
Entonces gerentes por alguna razón, nuestras cámaras.
Ahí vamos. Entonces y las cámaras,
voy a crear un control de cámara
o controlador de camara camp.
Hit Enter, espere a que se compile.
Haga doble clic aquí, y
voy a hacer un par de cosas.
Entonces, ¿qué? Siempre estoy haciendo un par de cosas.
Entonces, ¿cuáles son las cosas que vamos a hacer?
En primer lugar, lo que queremos hacer aquí es
encontrar siempre el objetivo del jugador automáticamente.
Entonces anteriormente lo que solíamos hacer es si entrábamos a
la cámara justo aquí y al campamento virtual,
dijimos el seguidor.
Y el problema es que cuando vamos a un mundo nuevo,
déjame mostrarte a detalle,
debería haberte mostrado antes.
Entonces si yo, por ejemplo,
aquí tengo al jugador,
le doy clic, está en la jerarquía.
Abrí la puerta,
llamo a otro nivel.
Te darás cuenta ahora mismo si vuelvo a abrir las cámaras,
que son exactamente la misma cámara virtual,
puedes ver que falta el seguimiento,
por lo que no hay jugador.
¿ Por qué? Porque hemos puesto antes al jugador,
pero ahora fue destruido.
Está desaparecido, así que tenemos que volver a encontrarlos todos.
Entonces aquí voy a abrir esto y voy a
crear una variable que es el jugador a perseguir, que obviamente va a ser,
vamos a ver,
la transformada o ningún atlas simplemente le hacen la
capa de controlador de capas a mirar.
Y va a ser igual para encontrar un objeto de tipo.
El jugador, oh, no,
no, no, aquí no.
Costos abajo y inicio.
Vamos a decir que la capa a mirar
es igual para encontrar objetos de tipo,
y va a ser el controlador del jugador.
Ahora tenemos una referencia al
controlador del jugador que también es
crear una cámara virtual.
Entonces, así máquina de cine,
cámara virtual también heredan necesitamos duplicar
y C usando cin, una máquina.
Ahí vamos, Guarda eso.
Entonces máquina de cine,
máquina de cine cámara virtual, gracias.
Va a ser el verbo.
Cámara virtual.
Y lo vamos a poner aquí en cuanto empecemos.
Entonces va a ser igual para conseguir componente.
¿ Y dónde estamos el ingeniero?
¿ Dónde vamos a colocar el controlador de la cámara?
Podríamos querer adjuntarlo a la conferencia.
Nos conectaremos a las cámaras virtuales
que podamos acceder de inmediato
a la misma máquina cámara virtual aquí dentro.
Entonces consigue componente.
Y va a ser la cámara virtual de la máquina de cine.
Ahí vamos. ¿Y qué vamos a hacer aquí dentro?
Bueno, vamos a poner la cámara virtual arriba
seguimiento superior para que sea igual a
la capa para mirar la transformación de puntos.
Por lo que esto será al inicio,
pero una actualización, tendremos que crear un bucle while.
Por lo que hemos cubierto ya mientras bucles.
Y va a estar comprobando que el jugador
mire mientras es igual a nulo.
Eso significa que aún no hemos encontrado un jugador.
Vamos a seguir buscando al jugador a mirar.
Sigue encontrando al controlador del jugador
hasta que finalmente los encontremos.
Una vez que los encontremos,
si sí tenemos una cámara virtual.
Por lo que este es solo un paso extra para evitar cualquier error.
La cámara virtual no sigue.
Será igual al jugador.
Eso lo salvaremos. Y volvamos a ver una vez lo que hicimos.
Entonces, en primer lugar, creamos
el controlador del jugador, que lo hará,
que es una variable que veremos
a los jugadores a mirar,
que es una variable del
controlador del jugador, una cámara virtual.
Estos son todos privados.
Podemos nombrar a la privada.
Simplemente no tuve tiempo.
Ya sabes qué, vamos a asegurarnos
que aquí no tengamos confusiones.
Tan privados, privados porque
no los necesitaremos en el inspector.
Podemos fijar M si queremos.
No tenemos que hacerlo. Entonces empieza.
Vamos a encontrar al controlador jugador.
Esto es por si acaso.
Empezamos y tenemos al jugador en la escena,
después encontramos la cámara,
luego ponemos la cámara de seguimiento para que sea el jugador a mirar.
Tener un solo jugador en cualquier escena,
porque ya nos hemos asegurado de esto aquí mismo.
Y el patrón Singleton.
Ahí vamos.
A esto se le llama el patrón singleton, teniendo en cuenta,
cada vez que se lo digas a alguien,
pensarán que eres muy inteligente.
Confía en mí, aunque sea
singleton significa un solo objeto.
Entonces por si acaso te preguntan ¿qué es un patrón de singleton?
De todos modos, el punto de la cámara virtual sigue,
seguimos al único jugador que encontramos y
luego una actualización por si esto es para,
digamos que el jugador que no se
destruye suele cargar antes que todos los demás objetos.
Entonces por si acaso empezamos el juego,
no encontramos al jugador de inmediato que está desaparecido.
No podemos resolverlo de la siguiente manera.
Sigue luego una actualización seguiremos buceando hasta
que encontremos al jugador verificaría
si tenemos una cámara virtual.
Esto es sólo un paso extra.
No creo que necesitemos esto ni siquiera,
ni siquiera una vez porque estaremos
adjuntando el guión a la cámara virtual,
pero por si acaso no hay una cámara virtual,
revisaremos la condición y luego nos
establecerá el punto de la cámara virtual seguir,
guarde eso de nuevo aquí.
Adelante.
Y así las cámaras,
Vamos a ver, sacudir y sacudir
el controlador de cámara a través de la cámara virtual.
Y por alguna razón puedo ver que esto no es un prefabricado.
Es eso en prefabricado esto.
Entonces cuando los prefabs Universidad,
mientras que las armas que eres un pobre para nivelar objetos aquí.
No.
Está bien. Por lo que puedo ver no preferí
arriba las cámaras por alguna razón pensé que sí.
Pero de todos modos, eso es sólo preferir los campamentos y aquí.
Y se puede ver que
la cámara virtual tendrá el controlador de campamento.
Entonces guarde eso.
Déjame ir al otro nivel.
No voy a hacer esto a todos los niveles.
Yo solo lo voy a hacer con los que estamos probando,
arreglamos todo y probablemente sea lo mismo.
Entonces cámaras y aquí lo voy a borrar.
Y voy a volver a las prefabs y asegurarme
de que agrego las cámaras aquí en la jerarquía.
Guarda todo eso.
Abre esto, vale, parece,
todo parece estar bien. De vuelta en las escenas.
De vuelta en el cráneo es guardar eso, ejecutar el juego.
Ve a la puerta, lo abrí,
pasa al siguiente nivel.
Y deberíamos ver, ahí vamos.
Entonces volvimos a encontrar al jugador y ahora
las cámaras están funcionando perfectamente bien.
Genial. Entonces ahora con eso fuera del camino,
si miramos atrás en la consola,
todavía tenemos el problema de
el jugador sea perseguido, no ser divertido.
Y porque veo que
este video ya lleva bastante tiempo,
voy a posicionar aquí mismo y luego vamos
a seguir en el siguiente video.
Por lo que espero que hayas disfrutado.
Este es un tema un poco aburrido, lo sé,
pero al menos aprendiste lo que es un patrón singleton.
Entendiste por qué la cámara no iba.
Estoy tratando de explicar lo más posible
a pesar de que es muy aburrido.
Pero quiero que entiendas cómo se siente todo.
Al principio, yo también estaba confundida,
pero mientras pasaba por todo,
entendí las cosas y
quería pasárselas a ti.
Entonces con eso fuera del camino,
gracias por mirar y nos vemos en el siguiente.