Bueno, ahora que ya tenéis el coche, habéis puesto la camarita detrás y todo el rollo, esto está
muy bien, pero si le dais al play ni el coche se mueve, ni la cámara se mueve, ni nada se mueve cuando
se cae la piedra y porque le he puesto el Ripollet.
Entonces, cómo lo podemos hacer para que se mueva?
Básicamente sólo hay una forma programando el comportamiento.
Si vosotros queréis que algo haga algo, programarlo.
Entonces, cómo se crean los comportamientos?
A través de lo que llamamos scripts?
Un script no es más que un fichero de código punto.
El lenguaje que se utiliza es cesar y en este caso, como os he dicho que la organización es la que
os dé la gana, os voy a enseñar la que uso yo la que uso es en la carpeta raíz, en la carpeta assets
que tenéis aquí.
Botón derecho, creáis una carpeta create folder vale, botón derecho y founder a la carpeta la llamo
scripts.
Esta carpeta que acabo de crear scripts podéis entrar en ella y a partir de aquí tenéis que crear el
script en cuestión como del mismo modo botón derecho crear, escribir de cesar.
Aquí ahora vendrá vuestro primer dolor de cabeza.
Cuando le dais a crear el script de César, veís que os permite poner un nombre?
El nombre que le dais aquí tiene que ser el mismo, el mismo, el mismo que aparece en el interior de
la clase, en el interior del fichero.
El error típico que yo veo y que la gente se equivoca el 80 por ciento de las veces cuando empiezan
Unity es crear el fichero le da intro.
Este fichero ahora se llama New Script y Sebastiá me equivoque de nombre voy a cambiar el nombre, cambia
el nombre y le llama lo que le voy a llamar yo le Heyer Controller, es decir, el controlador del jugador.
Cómo se va a mover?
Cómo se va a manejar este player controller?
Ahora tiene un problema, el fichero veus, que se llama Player Controller.
Sin embargo, aquí tenéis una previsualización del código o ahora, cuando lo abra, lo veréis más claro.
Ves que aquí pone public class?
Neuville Bien escrit, porque cuando lo has creado le has llamado Neuville Script.
Esto sí, ahora intentará ejecutar añadiendole como componente a alguien.
Vetaría de Pòrtol Labs?
Os daría un error y de hecho, si lo intentara es arrastrar, por ejemplo, al coche rojo, éste se
intentará arrastrar como componente.
Este script que ocurre no se puede añadir la componente player controller porque la clase no la encuentro.
Tú has llamado al escrito una cosa.
La clase se llama otra.
Lo veis que os da un error.
Por tanto, si os equivocáis y le dais un nombre que no toca una de dos.
Doble, abrís el fichero en Rayder y le cambiáis el nombre o como lo acabáis de crear cargándose cargársela.
Script que le den por saco al escribir, crear, escribe Cesar y de buenas a primeras darle el nombre
que toca Leger Controller.
Ves que, por cierto, la paila hace de cada palabra esta en mayúsculas cosas prohibidas, acentos,
enies, celdillas, espacios en blanco, prohibido.
Todo tiene que ir junto pegadito y es lo que llamamos Camel Keys, es decir, cada una de las palabras
en mayúscula Player Controller la paila c mayúscula ni escribe.
Hay Wong tu kraid la n de nuevo mayúscula, la S descrita en mayúscula, la heide hoy en mayúscula,
etc..
Vale, eso es la regla general.
Ponéis un espacio en blanco, no funcionará un acento, no funcionará o igual no funciona y de repente
deja de funcionar.
Funcionaba.
Has puesto un espacio?
Vale, una vez lo tenéis para abrir la script doble click o lo debería abrir con la herramienta que
le hayáis dicho?
En mi caso, a mi me ha vuelto a pillar el Visual Studio.
No entiendo muy bien porqué me ha pillado el piso al estudio.
Visual Studio es un cancer para este ordenador, recordad.
Y Unity Preferences externa?
Altus No se porque tengo Visual Studio, yo recordaría que había puesto Raidel, pero como hacerlo al
proyecto igual no lo he guardado.
Rayder Ahora cambiará Visual Studio por Rayder y en teoría, si está seleccionado Rayder, el doble
click debería abrir Melo ahora, si en River se me debería abrir por aquí o si se me abre.
ábrete de leches.
Ahí se me cierra porque tú me cierras, hoy no es el día de los books.
A ver, déjame cerrar este Rayder porque ya tengo un Raider abierto que luego se me está haciendo la
picha un lio.
Salgo de Rayder, otra cosa también fuera.
Y ver doble clic ahora.
Esperemos.
Ahora me veo usando visual, estuve bien.
Tenemos Rayder, vale.
Entonces cuando abrís por primera vez el script, fijaros lo que os he dicho.
Os voy a hacer la letra más grande que luego.
Si no, no vais a ver un pimiento.
Fijaros lo que os he dicho, como lo he llamado Player Controller, aquí pone Player Controller.
Si alguno está usando Visual Studio, aquí se empezará a dar cuenta de las diferencias, ya que aquí
está todo súper bien documentado.
Hay un montón de cositas que pueden explicar.
Los shortcuts son brutales para buscar controlo comanche y sale una ventana para buscar en todo el proyecto.
Ya iremos hablando de todo esto, no os preocupéis, vale.
Aquí lo interesante es que cuando abrís este script, fijaros empieza con 3 4 líneas arriba, que se
llama la importación de las librerías.
Las librerías en Unity técnicamente no se llaman librerías, se llaman Nandaime países, pero porque
viene de C o cesarlo.
Vale, entonces aquí estáis importando 3 librerías, 3 países, dos que sirven para colecciones, arráiz
listas y Geis Maps.
No os preocupeis tampoco, de momento, de todo esto y el propio motor, como necesito acceder a la
física, a las colisiones, a los comportamientos, importa el motor.
A continuación viene la declaración de la clase.
En este caso, la declaración de la clase empieza con la palabra public class y el nombre de la clase
2 puntos y de quien hereda el 90 por ciento de las clases van a heredar del mono Bibio es el mono pijerío,
significa comportamiento único.
Si queréis que algo haga dos cosas totalmente diferentes.
Pues creáis.
2.
Merovingia Ebioss, creáis 3 monos os 50 monos.
El ejemplo más típico es quiero que el coche se mueva, pero que dispare también un comportamiento sería
el de mover y el otro sería el de disparar.
Dos comportamientos totalmente separados.
Una vez que tenéis ese comportamiento, fijaros que siempre empieza con una llave de apertura y de hecho
en Rayder podéis seguir la línea vertical para ver dónde cierra.
Es bastante cómodo visualmente.
Entonces, todo lo que va entre esta llave y esta llave es la clase.
Fallo típico, pone la llave de apertura y no pone la de cierre.
Sale aquí de color rojo dentro.
Cuando creas punciones, cuando creas métodos, le pones el nombre, pero te dejas la llave que abre
o la llave que cierra.
Ves que sale aquí de color rojo, de que algo está fallando siempre.
Regla general llave que abra en un lado tiene que cerrar en otro y animadamente.
Es decir, tú no puedes cerrarla de la clase antes de cerrarla del método no bien estructurado.
De hecho, por esto Rayder es muy útil.
Fijaros que al lado de cada declaración aparece más y menos que os permite abrir y cerrar.
Así podéis ver dónde abre y cierra cada cosa.
No veis?
Esto es muy útil, sobre todo para que no os perdáis las primeras veces cuando programa el fallo típico
dejarte una llave, dejarte un punto y coma y demás.
En este caso, fijaros que dentro de la clase aparecen lo que llamaremos dos métodos, que es un método.
Un método no es más que un comportamiento, algo que tiene que hacer vuestra clase, en este caso el
comportamiento de estar y el comportamiento.
Abbate No lo creáis, vosotros lo tenéis por ser hijos de monos, por haber puesto aquí dos puntos mono
medio.
Este viernes el comportamiento de Unity y Unity.
Cualquier cosa que esté en la escena siempre es capaz de ejecutar un código al inicio y un código mientras
algo cambia.
Esto forma parte de lo que se llama la API de Unity que veremos más adelante.
Entonces el comportamiento básico es Starc.
Lo que escribís aquí dentro se ejecutará cuando empiece el juego.
Apdayc lo que escribes aquí dentro se ejecutará a cada freie corres a 60 frames por segundo, se ejecutarán
60 veces por segundo.
Podéis pensar ya que si algo se tiene que ejecutar a cada frame, el código que vaya a haber ahí dentro
puede ser muy pesado y complicado.
La respuesta es no, porque soy muy pesado que le pasara el juego podrá correr a 60 frames por segundo,
no irá bajando e irá bajando e irá bajando y irá bajando hasta que irá a pedales.
Por eso os he dicho que hay otros métodos de la API de Unity que veremos para cuándo.
Hay que hacer cálculos complicados de física.
Hay que hacer cambios en la animación.
Hay que esperar un par de frames y luego seguir.
Si tenéis que esperar un par de frames, no podéis meterlo ahí porque se ejecuta cada efrain.
Todas estas cosas las iremos viendo, pero lo básico es este código se ejecuta cuando arranca, este
se ejecuta a cada fin de acuerdo.
En particular veis que cada método está comentado aquí.
El estar aquí pone Starting Scott Before the frame Android y la de Scott Wons Frame.
Es lo que os acabo de decir ahora.
Los comentarios cuando los queréis colocar son con estas dos barras que veis aquí.
De acuerdo.
En particular, esto que os decía de los comentarios es muy útil.
Por qué?
Porque ahora vais a saber lo que hacéis, porque lo haceis ahora, pero esto lo miras dentro de tres
días.
Y es que puñetas hacía esto es una muy buena práctica, es cuando empezamos a crear, a programar,
documentarlo todo y de hecho hacerlo en castellano.
Ya sé que aquí está en inglés, pero documentarte en castellano es válido.
Por ejemplo, si esto es el controlador, qué es lo que tiene que hacer?
Controlar un coche, moverlo y cada cuánto hay que moverlo.
Pues tiene sentido que lo vais a cada no dependiendo de los de lo que mueva el usuario.
Las flechas wa, S.D.
O el ratón.
Pues aquí en el Android podéis escribir un comentario.
Recordad barra barra para los comentarios y decir tenemos que mover el vehículo.
De momento vamos a hacerlo fácil, hacia alante, hacia delante, forward hacia alante.
Claro, si esto es un comentario, tiene una ventaja, el comentario no se ejecuta y por qué no se ejecuta?
Porque es un comentario.
De hecho hay veces que querréis a escribir un comentario mucho más largo.
No os diré el Quijote, pero a veces queréis hacer un comentario de dos líneas, de tres líneas de 50
líneas.
Pues en lugar de doble barra es barra, asterisco, asterisco, perdón.
Esto es un comentario que puede tener varias líneas.
No acabará hasta que tengamos el símbolo.
Fue el símbolo de cierre.
Nunca programo con este ordenador que tiene las teclas super bajas.
Me vais a ver cometer muchos fallos, ya lo veis.
Entonces fijaros, se abre así se cierra aquí todos los medios comentarios, veis comentarios, singhal
ligne o de una sola línea comentario multicine o de varias líneas.
Finalmente, ya sé que ahora esto no hace nada porque no le he programado nada, pero cualquier comportamiento
tiene una particularidad muy importante y de hecho aquí está la gracia de usar Unity.
Cualquier cosa que ponga dos puntos mono Gerión es arrastrarle como componente.
Entonces, una vez estáis aquí, la primera cosa importante guardad.
El charco para guardar es control o como antes?
Probablemente guardar.
Y por qué os digo lo de guardar no es porque se vaya a perder, es porque si no lo guardas yo, Unity
no te lo refresca.
Entonces me ha pasado 20 veces estar aquí programando esto y lo otro.
Me voy a Unity, lo voy a probar.
Ostia, no me funciona, no?
Jérome, funciones que no he guardado cuando venis aquí, de hecho nos lo ha enseñado.
Cuando venis aqui y algo ha cambiado y guardáis aquí abajo, veis que hay un símbolo de refrescando
super pequeñito aquí y ahora está en un check.
El refrescar es que te está recopilando los ficheros y de hecho vosotros no lo notaréis porque no llegaréis
a crear un proyecto tan grande en proyectos grandes.
Un videojuego de PlayStation.
A veces el pilar tarda horas, vale, por eso luego hay técnicas para dividir el proyecto en lo que
le llamamos vandals o de dividir en pequeños fragmentos, recopilarlos de forma independiente a los
otros.
No será el caso para nosotros.
A lo mejor os lo enseñaré, pero siempre y cuando vengáis aquí.
Por favor, fijaros que esto de por lo menos tres o cuatro vueltas que significa, calculando si una
vez que lo tenéis es muy fácil.
Este script define el comportamiento de mover algo correcto.
Qué queréis mover?
La pica la furgoneta esta?
Pues seleccionar el objeto en la jerarquía y arrastrar la componente.
Ves que cuando arrastras os sale aquí de color azul para soltar.
Soltáis, soltáis.
Bicho pasa este suelto.
Ah bueno, vale y os saldra este mensaje.
Qué le ocurre ahora mismo a nuestro objeto?
Recordáis que os he dicho que era un prefacio?
Si es un prefacio, es un empaquetado que Unity ha preparado para nosotros.
Pero claro, si es un FAB, este player controller esta añadido como tal?
La respuesta es no, no, porque yo Unity ni sabía que iba a crear un player controlé.
Así que en este caso lo que se hace es lo siguiente abrís el FAVB, ireis a un mundo paralelo, veis
que estáis como en Matrix, todo lo demás.
Y mi coche.
Ahora que estáis en este mundo paralelo, estáis en el mundo de los Pfaff.
El mundo de los Pfaff es ningún lado, es el etéreo y el etéreo.
Podéis hacerle todas las guarradas que queráis al coche, escalarlo o modificarlo, romperlo, añadir
componentes, añadirle físicas.
Cualquier tipo de cosa que le queráis hacerse la podéis hacer en el mundo de los prefacios en particular,
le podéis arrastrar el script, soltarlo ahora ya si de una vez y veis que ahora sí que tiene el script
que hemos creado.
Una vez que estáis felices cambiando el FAP es muy fácil.
Veis que aquí la jerarquía ha aparecido la flecha atras, le veis y volvéis al mundo real, dejáis atrás
Matrix y vuestro coche ahora tiene un player controles.
Os repito cuando vamos a modificar esta cosa, osea con el mismo script me dice no puedes.
Por qué?
Porque es un prefacio y si lo cambias lo está rompiendo.
Correcto.
Si lo está rompiendo, pues no lo puede romper.
Yo quiero cambiarlo.
Quiero modificar.
Vale, cambia el prefacio.
O sea, te vas a la tienda de Lego, montas el lego como quieres y te lo traes a la escena.
No puedes romper el lego.
Lo siento, está prohibido la vez puesto.
Super dime te ha dejado?
Normalmente os debería dar este mensaje de advertencia o lo debería dar.
De hecho, casi prefiero que os lo dé porque se os ha dejado.
Eso significa que vuestro premamá por aquí debe tener un símbolo más.
Si os han dejado modificarlo, lo más normal.
Tu escrito está mal escrito.
Un error es que lo que sea que has escrito aquí lo has escrito mal.
Ahora luego os dejo tiempo para que lo copie.
Si a alguien le sale un compa el error que sería, por ejemplo.
No he puesto la doble barra de comentario guardáis cuando venis aqui rojo recordad la consola rojo malo
la velia o parda en algun lado y evidentemente error.
Por qué?
Porque no he puesto el comentario.
Pero bueno, esto forma parte del proceso de aprender a programar.
Por eso os he dicho que necesitabas antes tener una base de programación para que no pierda dos semanas
enseñando a programar.
Vale, entonces si esto está bien, luego lo revisamos.
Probablemente es una tontería de estos o una llave que no has cerrado o un comentario que no has comentado
que también podría ser entonces, en principio, si lo Elytis y no sale este mensaje, que de hecho
me extraña porque estás usando la misma versión que yo.
Que raro.
Por abajo,
que tontos que son los de Junichi.
Por Dios
Riley.
Sea en medio te da toda la advertencia y toda la seguridad del mundo.
Joder macho, esto es como lo de si vamos a llevar mascarillas, pero luego nos damos un abrazo al salir
de aquí.
Es tontería.
Vale, pero entonces si lo haceis así, complejo de hacer ahora.
Bueno, para empezar ves que lo ha añadido dos veces.
Malo no haya ningún script dos veces, porque ahora el funcionamiento dos veces.
Además, en paralelo ya es el doble de rápido comillas.
Cuando lo hacéis como lo he hecho ahora, habéis cambiado un FAP sin cambiar el FAP.
O sea, habéis sido el lugar de la tienda de Lego, modificarlo y volverlo a traer a mi.
Saca el martillo, carga un lego.
Habéis puesto la guarrada que queráis si tenéis el lego destrozado y qué quiero decir, destrozado.
Veis que aquí ha salido un símbolo más lo que os decía o incluso aquí lo han quitado?
Joder tío, de cada vez me lo cambian.
Antes también salía y este más que hoy.
Aquí quiero decir que tenías un prefacio, pero ahora hay algo nuevo en este prefacio.
Si no lo guardáis, este será un FAV diferente al original.
Será una variante.
De hecho, no será un prefijo, será un prepagar con cosas si queréis sobreescribir.
El padre lo que he hecho yo antes de irme al mundo de Lego, cambiarlo y guardarlo.
Ahora habrá aparecido un botón aquí que pone overnight sobreescribir.
Ves que cuando voy a overnight sale lo que ha cambiado y le digo Mira, pues si machacarlo, aplícalo
al padre.
Ahora lo he aplicado al padre y ahora el padre tiene dos.
Es que ahora este ya no sale con el más no recomendable que lo hagáis a su web.
Se lo quiero quitar al padre o a todo el mundo.
Aquí hay un botón los tres puntitos remus component para que no tenga 2 me la cargo.
Veis que ahora aparece con el símbolo menos.
Por qué?
Porque no me he ido al mundo de Lego a editar las cosas.
Me he quedado aquí, lo estoy editando y lo estoy toqueteando.
Y ahora este ha cambiado, pero el de Lego es diferente.
Lo mismo overnight.
Veis que ahora me dice tu vehículo le has quitado un player, controlarás grip, se lo aplico a play
off o revert si quieres revertir los cambios y el señor de Lego ya está feliz.
Por supuesto, si os vais al Pfaff en cuestión, recordad que estaba en coches y es este coche de color
rojo.
Aquí tenéis un botón que pone Open Pfaff Entonces ya esto ya habréis al mundo de Lego, ya está el coche
y nada más.
Lo veis?
Ya es el coche y absolutamente nada más.
En este caso y por supuesto, si haceis aquí doble click, llegáis al mismo punto.
Por tanto, la recomendación es que cuando queréis toquetear, modificar, cargar un prefacio, lo hagáis
aquí que esta preparado a tal efecto, porque si lo haceis en la escena como habéis dicho arrastrando
está muy bien, pero el cambio sólo es para s de la escena.
Si os vais a otra escena no lo habéis cambiado.
Si eso es importante, vale, pues ahora tenemos simplemente si le dais al play tenéis un coche, tiene
un script.
Si selecciona el coche ves que está aquí el player controller y evidentemente no hace nada.
Pero teniendo escribe, vale.