Vídeos UT1 y UT0 - #1 - DEIM - Curso 25·26 - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Vídeo introductorio de aplicación de lo visto en las tareas UT1 y UT0.
Vale, pues estamos aquí en la interfaz, ¿no? Y os voy a enseñar, antes de seguir con Unity, os voy a enseñar la carpeta que he generado, voy a cerrar todo, vamos, cerrar es ocultar, dame un segundillo, y aquí, vale, estáis viendo esta carpeta en mi escritorio, vale.
00:00:02
Si nos metemos aquí, ¿vale? Veis que acabo de generar un proyecto nuevo y ya de primeras, fijaos, dentro de esa carpeta, lo que es el proyecto Unity, la cantidad de cosas que tiene, que esto es por lo que en parte tarda tanto, ¿vale? Aquí vais a ir viendo, ya iremos viendo qué uso tienen algunas carpetas, ¿vale? Que todo esto, cuando queramos moverlo de un ordenador a otro o me queráis compartir el proyecto, hay otra forma que es generar un paquete, ¿vale? Pero de primeras vais a tener que compartirme esta carpeta, padre, ¿vale?
00:00:22
Entonces, que veáis que de momento tenemos aquí un mejunje de carpetas grande. Si queremos mover el proyecto, ya os digo, habrá que mover esta carpeta entera. Mover solo una de estas carpetas descontextualizadas no sirve para mucho.
00:00:51
Prueba Tutoría Inicial
00:01:07
Y vais a ver que aquí el proyecto, lo que es el conjunto de proyectos
00:01:10
Se llama Prueba Tutoría Inicial
00:01:14
Os pondrá aquí para qué se está construyendo
00:01:16
Esto ya veremos
00:01:20
Ahora mismo está configurado para que si este juego se exportara
00:01:21
Este destinado a PC, a ordenador básicamente
00:01:24
Si no habéis visto todavía el tema
00:01:28
Vais a ver que la interfaz
00:01:31
Como sucede en todos los softwares que iréis viendo
00:01:33
Se compone de una cantidad de paneles que son movibles, es decir, podemos estar configurando el espacio de trabajo de manera totalmente flexible, arrastrando.
00:01:36
Muy similar, por ejemplo, a lo que haréis con las aplicaciones de Adobe, ¿vale?
00:01:47
En el tema 1 se explica un poco con detalle qué es cada uno de estos paneles, ¿vale? Os animo a que lo veáis y lo vayáis usando.
00:01:50
Recordad también cuando instalamos el Unity, el editor en installs, que había que instalar el Visual Studio. ¿Os acordáis? Imaginaos que no marcasteis el tick de instalar Visual Studios y decíais, pues no tengo Visual Studio y ahora lo vamos a necesitar.
00:02:04
si vais a installs, vais a ver que cada versión
00:02:24
que hayamos instalado tiene una tuerquecilla aquí
00:02:27
que es para mostrar los
00:02:29
módulos, si damos a add modules
00:02:31
nos vuelve a aparecer esa ventanica
00:02:32
porque a lo mejor en cierto momento vamos a
00:02:34
hacer una aplicación
00:02:36
un juego para Android, pues habrá que instalar esto
00:02:39
y se irá sumando, lo mismo
00:02:40
no se instala todo de golpe porque fijaos
00:02:42
que peso tiene, pues si no se va a usar
00:02:44
pues peso que nos vamos ahorrando
00:02:46
pero siempre se puede volver
00:02:48
veis que por defecto, antes ponía
00:02:50
2022, la 2020 va a tener
00:02:52
una versión de Visual Studio
00:02:54
que es la 2019, ¿vale? Yo ya lo tengo instalado.
00:02:56
Hay una cosa
00:03:00
importante cuando
00:03:01
estemos
00:03:02
luego trabajando,
00:03:05
que es que cuando vayamos a
00:03:07
tocar el código, ¿vale? Que ahora hacemos
00:03:08
alguna prueba, si queréis,
00:03:10
vamos a tener que decirle qué
00:03:12
IDE, qué entorno de desarrollo es el que
00:03:14
queremos emplear, que será ese Visual Studio,
00:03:16
pero por defecto no viene vinculado,
00:03:19
¿vale?
00:03:21
No os voy a hacer un repaso.
00:03:22
Para eso leed la lección 1.
00:03:24
Eres viendo un poco más en detalle.
00:03:29
Y también hay algún vídeo de Álvaro
00:03:30
que os cuenta más qué hace cada una de las secciones.
00:03:33
Lo podéis ver ahí, creo que está bien explicado.
00:03:36
No es algo que tenga más complejidad.
00:03:38
Pero es importante, aunque también se ve,
00:03:40
que es posteriormente para usar scripts
00:03:43
habrá que ir a la sección de edit,
00:03:45
preferencias, ¿vale?
00:03:49
Y algo importante, la sección de External Tools, herramientas externas.
00:03:51
Aquí es donde le decimos cuál va a ser el editor de scripts que vamos a usar.
00:03:56
Si habéis hecho ya la instalación de Visual Studio, os aparecerá aquí.
00:04:00
Si no, lo podéis buscar en plan en vuestro ordenador, ver dónde está el ejecutable de Visual Studio y lo asociéis ahí.
00:04:05
Según lo pongáis, os recomiendo que le deis a esto de regenerar project files,
00:04:12
porque a veces hay como cachés que se quedan ahí por detrás y puede dificultar algo.
00:04:16
Y para que no de error, pues si le damos no pasa nada, ¿vale?
00:04:21
Esto es necesario para que luego cuando usemos scripts directamente nos asocie esta versión de Visual Studio para hacer lo que es el código que nos va a permitir controlar prácticamente todo lo que vayamos diseñando y desarrollando, ¿vale?
00:04:23
Importante. Cuando descarguéis un Visual Studio, aquí no voy a poder descargar otro, os saldrá una ventana de Visual Studio que os dice si queréis instalar extensiones de Visual Studio.
00:04:40
En principio, la que deberíais instalar, Visual Studio Unity Extension. A ver si sale una foto aquí de lo que os estoy comentando. Os pedirá... Va a salir una ventana que va a empezar a mostrar, como dicen, muchos paquetes y tendréis que buscar una que pondrá herramientas para Unity.
00:04:52
Esta es una versión más antigua, a ver si encuentro otra foto, ¿vale? Eso lo instaláis también. Vale, aquí, cuando salga esta desplegable como de workloads, ¿vale? Seleccionar el de game development con Unity, ¿vale? Y lo instaláis también, ¿vale? Importante. Esto irá saliendo solo a medida que vayáis instalando lo que hemos visto.
00:05:15
Importante, y esto lo digo porque es uno de los errores iniciales que sucede, en el panel de jerarquía, que hay un menú de Windows, que es donde configuramos el espacio de trabajo, la distribución de paneles del software.
00:05:36
Entonces aquí hay muchos desplegables, pero hay uno que es paneles y aquí están los seis paneles principales que aquí ya están desplegados, pero si por ejemplo no vierais la consola, voy a cerrar este tab, esta pestaña, no la tengo, pues siempre se puede abrir desde paneles y decís que queréis la consola.
00:05:55
Mira, se me ha ido. ¿Que queremos otra vez reconfigurar un espacio de trabajo? Pues le decimos quiero el de por defecto y ya os lo abre con todas las pestañas abiertas. Las pestañas como por defecto. Entonces tened en cuenta que los layouts son estos espacios de trabajo que se pueden ir abriendo.
00:06:17
Aparte, si solo queréis abrir un panel, pues aquí vais a ver que hay muchos paneles, esta sección,
00:06:40
y la consola la podría haber recuperado otra vez dando aquí, un poco como en Adobe.
00:06:45
En esta sección se van abriendo los paneles.
00:06:51
Por ejemplo, uno de animación, el Animator, pues lo abro y aquí tengo otra pestaña,
00:06:55
que es donde iremos metiendo los distintos estados de animación.
00:07:00
Ya veremos qué es esto.
00:07:04
Vale, veréis que por defecto sale este fondo, esto pues evidentemente se ve, podrá ir cambiando
00:07:05
Y hay dos paneles, escena y juego
00:07:13
En escena es donde nosotros vamos a ir operando, disponiendo los elementos, podremos navegar
00:07:15
Lo digo porque si de pronto veis un fondo que intentáis navegar con los atajos de navegación
00:07:22
Que os pongo los apuntes y no se mueve, es porque estáis en la ventana juego
00:07:27
que se parecen, según la posición
00:07:31
de la cámara se parecen más o menos
00:07:34
luego aparecen gizmos, como estos
00:07:35
elementos que están aquí, la rejilla
00:07:38
pero bueno, más o menos se parece
00:07:39
y puedo decir, anda, si esto no va
00:07:41
eso es porque estáis en una ventana destinada a testear el juego
00:07:42
¿vale? veis que incluso se pueden
00:07:46
separar
00:07:48
y aquí tenemos en la que si nos podemos mover
00:07:49
y otra que no, solo nos moveremos cuando le demos
00:07:51
al play para probar el juego
00:07:53
¿vale? importante, que las distingáis para no
00:07:55
tener conflicto
00:07:57
de que no responde el programa
00:07:59
En el panel jerarquía es donde vamos a ir pudiendo meter los elementos, como en Maya el outliner o las capas en Photoshop, etc.
00:08:01
Por ejemplo, para que veáis, voy a añadir un cubo. Se me ha creado un objeto cubo, está aquí, con su guismo de las direcciones, que yo podría mover, subir, bajar, bastante similar a un editor de 3D, estándar.
00:08:12
Cuando seleccionamos un objeto, y vais viendo que yo a medida que voy seleccionando objetos en esta jerarquía, aquí van cambiando los menús.
00:08:28
El inspector lo que hará es mostrar las opciones asociadas a ese objeto.
00:08:37
Por ejemplo, el cubo trae ya unos cuantos de los que se llaman componentes.
00:08:44
Y los componentes, si voy recogiendo todo esto, son como fragmentos de código que están configurados para que cumplan funciones.
00:08:48
Cuando digo esto de componente, es importante saber lo que es un componente porque por código luego tendremos que poner componente. Me estoy refiriendo a un componente. Quiero coger un componente.
00:08:56
Componente es cada uno de estos bloques con funcionalidades. Por ejemplo, todo lo que se ocupa de dónde están las coordenadas del objeto.
00:09:06
Veis que si yo voy aquí desplazando el objeto en X o lo desplazo en cualquier eje, pues se ve reflejado aquí. Esto es el componente llamado transform. Cuando luego por código queramos cambiar algo del transform, pues será el componente con este nombre.
00:09:16
Que queremos cambiar algo de un box collider, pues tened en cuenta que el componente se llama box collider. Y aquí, si quisiéramos ir metiendo más funcionalidades, pues tenemos este añadir componentes, que hay unos cuantos, ¿no? Pues de física.
00:09:29
Por ejemplo, un RigidBody, lo agrego y ahora hay otro componente que tiene unas cuantas secciones, unos cuantos parámetros posibles, desplegables, etc.
00:09:43
Al final, lo que tenéis que ir haciendo en vuestra cabeza es la idea de que todo esto que vamos viendo aquí, que son menús, este campo que se puede poner un 5, todo esto va a ser accesible mediante código.
00:09:54
entonces aquí digamos que es la versión asequible
00:10:07
como habéis hecho normalmente en todos los softwares que usáis
00:10:12
pero detrás hay código
00:10:15
aquí lo que vamos a hacer es que vamos a poder alterar el código
00:10:16
directamente en nuestros scripts escribiendo
00:10:18
entonces cuando queráis recurrir a por ejemplo
00:10:22
cambiar la masa de este RigidBody
00:10:26
tened en cuenta que hay un componente que se llama RigidBody
00:10:29
y luego un parámetro que se llama masa
00:10:32
entonces sabiendo esto ya sabremos acceder
00:10:34
Si empezáis a leer el tema 0, el inicial, que es bastante árido, sobre todo cuando comencéis, va a hablar de programación orientada a objetos, de clases, de cosas así.
00:10:37
Las clases al final son como objetos, son un poco relacionados, son fragmentos de código que se recogen bajo un nombre.
00:10:50
Entonces, este componente RigidBody significa que hay un objeto con una clase, ahora vemos que es una clase de una forma menos abstracta, que se llama RigidBody. Entonces, cuando queramos recurrir a este componente, será lo mismo que recurrir a una clase también.
00:11:00
Voy a poner un ejemplo. Yo cuando hago un script nuevo, y para eso os presento el panel Project, aquí es donde vamos a ir teniendo los paquetes que vayamos instalando, los assets, aquí podremos ir metiendo los modelos, 3D o 2D, los sprites, todo se va a centralizar en estos assets.
00:11:18
E importante, si os fijáis en la estructura de carpetas, y vuelvo a abrir lo que nos ha generado antes, vais a ver que algunas de estas carpetas sean igual. Por ejemplo, Assets o Packages. Packages está aquí y ahí. Si nos metemos aquí, vais a ver que dentro de Assets hay una carpeta que se llama Escenas, que casualidad se llama igual.
00:11:38
O en Packages, si me meto, voy a tener unas cuantas carpetas, aquí no se ven porque están instaladas de otra forma, por código también, pero digamos que están ahí dentro también.
00:11:59
Cuando se vayan incorporando más paquetes, ahí se verán. Incluso los Project Settings que se pueden ir alterando, como aquí, se van guardando todas esas configuraciones en esta carpeta.
00:12:12
Entonces, por ejemplo, en Assets vais a ver que dentro de Assets ya hay lo que se llama una escena. Esta escena se llama Sample Scene. Cuando no veáis bien el nombre o tal, tened en cuenta que tenéis aquí una palanquita que os permite, incluso si lo lleváis al mínimo, que os lo ponga en forma de verlo en vista.
00:12:24
Si le dais a la tecla Control y a la ruleta del ratón, también podéis ir haciendo como zoom. Esto para cosas como el prefaz, que el icono es muy representativo, es importante conocerlo. Y veis que hay una escena ya por defecto que se llama Sample Scene.
00:12:44
Y si veis aquí también, además con el mismo iconito, en la parte superior de la jerarquía está Sample Scene. Las escenas, la forma más fácil que yo creo que hay para explicar lo que es, son lo que se podrían llamar pantallas o niveles en el juego.
00:12:59
Pues el nivel 1. Luego nos pasamos a ese nivel y vamos al nivel 2.
00:13:17
Todo lo que tengamos aquí dentro será la escena 1.
00:13:20
Podremos ir creando más escenas para ir cambiando entre una u otra.
00:13:24
O incluso se podrá abrir una estando en otra para ampliar un mundo.
00:13:27
Porque no se carga todo, sino primero una parte del nivel y luego se va ampliando el mundo cargándose más escenas.
00:13:31
Esto es importante porque si veis este asterisquito, significa que esta escena no está guardada.
00:13:37
También aparece aquí arriba.
00:13:43
Si yo le doy al control S, pues básicamente todo lo que hemos hecho en esta escena se ha guardado. Importante, hay que ir guardando las escenas. A lo mejor estamos trabajando, puedo crear aquí con clic derecho, crear otra escena, a ver, a ver, a ver, aquí está, y llamarla nivel 2.
00:13:44
y me meto en el nivel 2
00:14:04
y veis que, ahora porque el fondo
00:14:07
es el mismo, pero veis que cuando me meto en el nivel 2
00:14:09
aquí paso al nivel 2
00:14:11
y está virgen otra vez, es decir, no tiene
00:14:12
el cubo que teníamos antes
00:14:15
entonces yo a lo mejor aquí
00:14:17
creo una esfera
00:14:18
por poner algo
00:14:21
cuando yo voy al sample 2, te va a pedir
00:14:22
guardar, porque hasta que no guardes
00:14:25
no te deja irte
00:14:27
entonces, importante, para ir cambiando de nivel
00:14:28
damos doble clic y podremos ir variando
00:14:30
Esto ya lo veremos de todo modo más avanzado, pero que sepáis que las escenas son como los niveles y siempre hay que estar trabajando dentro de una escena.
00:14:33
Por defecto nos crea esta sample, pero podemos decirle que la renombremos a nivel 1 por tenerlo así.
00:14:40
Dice, bueno, va a cambiar en el assets, scenes, nos está diciendo que en esta carpeta van a ir cambiando el nombre.
00:14:49
De hecho, ya si nos metemos, veréis que dentro de la carpeta de escenas, que es esta aquí, ya hay dos niveles.
00:14:57
Veis que todo lo que se vaya haciendo en este panel de proyectos luego se ve reflejado en esta carpeta.
00:15:03
Y ha creado el nivel 2.
00:15:08
Y vais a ver también, esto simplemente para que lo veáis, que asociado a cada elemento va a haber otro archivo llamado igual con finalización en .meta.
00:15:09
Estos archivos, no lo borréis, son metadatos.
00:15:17
Son como archivos que genera automáticamente con los cambios que vayamos haciendo.
00:15:20
Entonces, que no os asuste, que no veáis aquí esos archivos porque están destinados para trabajar por debajo, ¿no? Nosotros no los vamos a manipular directamente, pero veis que se va viendo reflejado, ¿no? Uy, va, que aquí me ha salido otro lado. Vale, lo voy a recargar con el nuevo nombre de escena porque le cambié el nombre y ahora se llama nivel 1 y en la carpeta también se llamará nivel 1, ¿vale?
00:15:23
vuelvo a los assets, que aquí ahora mismo
00:15:46
solo tengo esta carpeta de escenas
00:15:49
igual que tenemos esta carpeta
00:15:51
de escenas, pues ahora por ejemplo
00:15:53
podemos en el
00:15:55
clic derecho y crear
00:15:57
otra carpeta, podemos hacer
00:15:58
todas las carpetas que queramos, y aquí vamos a hacer una
00:16:00
y esta es buena práctica, una carpeta
00:16:03
que es la que tiene los scripts
00:16:05
los scripts básicamente van a ser
00:16:06
los fragmentos de código con los que nosotros vamos a
00:16:09
dar instrucciones
00:16:11
tanto automáticas de que se mueva
00:16:12
un objeto que es decir en unity siempre hay un panel de animación muy parecido al típico que
00:16:15
veréis en maya con keyframes etcétera claro por eso va a ejecutar animaciones pre hechas lo bueno
00:16:22
y diferente de maya con respecto a esto es que también aquí lo que vamos a querer es que los
00:16:27
elementos interactúen a medida que nosotros pues vamos introduciendo inputs en el teclado en ratón
00:16:32
o en el móvil o donde sea no eso lo tenemos que hacer mediante scripts mediante programación sí
00:16:38
que hay esto no lo vamos a ver en el curso porque esto aparte de ser más avanzado es digamos una
00:16:44
forma menos controlable ahí lo que se llama el visual scripting vale que es una especie de
00:16:51
paquete esto lo digo para que os suene de paquete que se instala y os permite cómo hacer todas las
00:16:56
acciones que se pueden hacer por código o muchas no todas no están customizable mediante nodos no
00:17:02
un poco no seguramente ya también lo sabréis visto en algún momento en otro software pues mediante
00:17:07
nodos pero es verdad que primero para saber que estás controlando con esos nodos tienes que saber
00:17:12
a qué hacen referencia y básicamente es a lo mismo que la programación entonces esto se puede
00:17:17
simplificar cosas pero es bastante más avanzado luego si alguno a lo mejor habéis usado otro motor
00:17:22
de render como unreal tiene lo que se llama los blueprints y esos blueprints son como fragmentos
00:17:28
de código muy similar a esto del visual scripting y están más desarrollados aunque en unity y hay
00:17:34
Hay gente que usa esos nodos para programar, pero llegados a ciertos puntos se pueden encontrar con límites
00:17:39
o que no puedan customizar lo que quieran, que es lo que vamos a intentar hacer aquí todo lo posible.
00:17:47
Entonces, para hacer esos códigos, básicamente tendremos que generar scripts.
00:17:54
En esta carpeta de scripts me meto, vamos a crear, y este momento es importante, nuestro primer script.
00:17:59
Es una tarea que vais a hacer de manera muy recurrente.
00:18:04
Para crear un script se puede hacer con clic derecho, crear, como casi todos los elementos que vamos a crear en el panel proyecto estarán dentro de esta opción de crear porque hay un montón de cosas.
00:18:07
Y aquí podéis generar lo que es un C-SARP script. Esto de C-SARP o C almohadilla, no sé, es el lenguaje de programación que se usará en Unity.
00:18:19
En otros, por ejemplo, en Unreal se usa uno que se llama C++. En este se usa César. Cada uno es programación con unas reglas y una sintaxis diferenciada.
00:18:29
Lo que os decía, César es el lenguaje de scripting que usamos, de programación, y cuando lo creéis, al crearlo, lo primero que os va a dar fallos.
00:18:43
Cuando le deis, os pide un nombre. Por defecto os pone esto de New Behavior Script. Y aquí es donde vamos a crear el nombre de una clase. Antes os he dicho, voy a poner ya el nombre y luego os sigo explicando. Voy a poner esto, script1, así con letras.
00:18:52
Fijaos además, cuando escribo este nombre, que no ponemos espacios, esto lo ponen los temas, que no ponemos espacio.
00:19:12
En el nombre de una clase, de un método, hay que empezar con una mayúscula, se escribe luego minúsculas,
00:19:18
y si vamos a usar otra palabra en vez de dejar un espacio, es todo seguido y lo vamos distinguiendo con las mayúsculas.
00:19:23
Y una vez ya tengamos el nombre, script1, pincho fuera, donde sea, y se guarda.
00:19:30
Importante, cuando ponemos este nombre la primera vez, si luego lo vamos a cambiar el nombre, hay que hacer más operaciones, no solo cambiar el nombre.
00:19:36
Por eso, es fácil, tampoco tiene mucho misterio. Pero de primeras para no liarnos y que no de error, tened en cuenta que el nombre en principio solo se puede poner una vez y ponerlo bien.
00:19:46
Ahora os explico el por qué. Tened en cuenta lo que os he dicho, que teníamos un montón de bloques de funcionalidades.
00:19:58
Por ejemplo, el RigidBody para dar atributos de gravedad a nuestros objetos.
00:20:05
O el BoxCollider sirve para que se detecten las colisiones en el área de este cubo, por ejemplo.
00:20:10
Entonces, cada una de estas funcionalidades, si no tuviera el BoxCollider, no detectaría las colisiones.
00:20:16
De hecho, como un ejemplo rápido.
00:20:23
Ah, vale, perdonad, no lo veía.
00:20:25
Este cubo verde es el Collider.
00:20:26
De hecho, veis que cuando lo activo y lo desactivo es el Collider.
00:20:28
Aunque la geometría esté ahí, si el Collider está aquí, esto lo veremos en un tema solo de física, ¿vale? Pero si no configuramos dónde tienen que estar las colecciones, pues actuará de una forma diferente.
00:20:30
si vemos aquí podemos activar y desactivar
00:20:45
este collider y como ejemplo
00:20:48
hemos puesto un componente, una funcionalidad
00:20:50
que es que tenga
00:20:53
gravedad, por ejemplo, RigidBody de momento
00:20:54
es que tenga gravedad, cuando yo le doy al play
00:20:56
ejecuto el juego, vais a ver
00:20:58
que este objeto
00:21:00
y lo estamos viendo, la escena juego, recordad
00:21:01
que cuando le damos al play
00:21:04
nos vamos a la sección
00:21:06
de juego
00:21:08
y podemos tener abiertas las dos
00:21:09
porque habéis visto que aunque yo estaba viendo
00:21:12
escena de pronto me salta juego que está viendo lo que ve la cámara principal vale entonces a
00:21:14
veces queremos seguir aunque esté en play el juego vamos a querer seguir tocando nuestros
00:21:20
objetos entonces de buenas prácticas tener el panel de escena y el panel de juego los dos
00:21:25
abiertos y vais a ver ahora que sí que se va a ver aunque esté fuera de cámara que a ver yo podría
00:21:30
llevar el objeto delante de cámara a ver dónde tenemos la cámara la tenemos ahí y no se ve
00:21:34
porque está por detrás de la cámara.
00:21:41
Entonces yo voy a ponerlo aquí, lo bajo y ya se empieza a ver el objeto.
00:21:47
Estáis viendo que aquí, si pincho en la cámara que viene por defecto,
00:21:51
sale el frustrum.
00:21:55
Frustrum no sé si es un término que habéis estudiado en otros módulos,
00:21:57
que es la representación visual de que está captando la cámara.
00:22:00
Está apuntando para ahí y hasta que el cubo no está dentro de ese frustrum
00:22:03
no se ve, ¿vale?
00:22:09
Tenemos por un lado en la ventana juego
00:22:11
la vista de ese juego
00:22:13
y aquí en escena, pues, donde podemos navegar
00:22:15
¿vale? Cuando demos a play
00:22:17
como ese cubo tiene el RigidBody
00:22:19
vais a ver que por defecto va a hacer
00:22:21
¡Piu!
00:22:23
y se va a ir cayendo con la gravedad que tenga, ¿no?
00:22:25
Si yo, por ejemplo, con
00:22:28
estos punticos que tengo aquí
00:22:29
quito este componente, vais a
00:22:31
ver que el cubo no se cae
00:22:33
porque no se le está aplicando esta fuerza
00:22:35
de la gravedad, ¿vale? De fuerza física, ¿vale? Entonces, importante, cada uno de estos componentes, ¿vale? Este nombre que tiene aquí se corresponde con, cuando estudiéis la parte de programación orientada a objetos de la unidad 0,
00:22:37
Que vais a decir, jue, qué árido es esto. Básicamente cada objeto o clase, ahora nos relacionamos, es el nombre con el que se ha guardado a cada una de estas funcionalidades. Voy a ir más allá y lo vais a entender mejor. Esto es importante para ir haciendo la cabeza.
00:22:52
Cuando abramos el script, tenemos aquí el script esperando algo. Para abrirlo, recordad que tiene que estar asociado en External Tools el Visual Studio correspondiente que lo va a gestionar. Entre el 2019 y el 2022 habrá diferencias para programadores avanzados, para nosotros es lo mismo.
00:23:12
Pero esta versión de verdad, que la que yo os digo 2020, la asociada que instala como módulo por defecto es la 2019, ¿vale? Para abrir, doble clic sobre ese botón, ¿vale? Se os abrirá una ventana de Visual Studio, cargará y os abrirá esto por defecto. Esperamos un poco, que sobre todo el primero tarda más, ¿vale? A ver, que lo tengo con bastante zoom. Aquí podemos cambiar un poco el zoom. Bueno, no voy a dejar 150. Yo creo que se ve bien, ¿verdad?
00:23:29
Vale, esta parte de código, que es de la forma que viene planteada de primeras, pues tranquilidad, esto lo iremos viendo, pero vais a ver que hay una cosa que nos suena, que es este script1, que se llama así, igual que el script que hemos creado aquí.
00:23:57
Y se llama igual, ¿vale? Porque cuando creamos un script, ¿vale? Lo que estamos generando es una clase nueva, un objeto nuevo de programación. Entonces, aquí vais a ver, aunque todavía no sepamos muy bien qué quiere decir todo esto, que se ha creado, aquí hay una clase que se llama, ¿vale? Script1, ¿vale?
00:24:15
Para que este objeto que está en Unity se asocie bien al código que estamos tocando en Visual Studio, se tiene que llamar exactamente igual, ¿vale? Si yo aquí, por ejemplo, digo, lo voy a hacer aquí, es decir, ahí va, me he equivocado del nombre y no, yo lo quería llamar disparar porque es el script que vamos a usar para disparar y lo guardo, ¿vale? Nada te va a dar error, ¿eh? Pero como aquí, vuelvo al Visual Studio, de hecho, mira, ya no lo está reconociendo y algo pasa, ¿vale?
00:24:34
Yo aquí, cuando abra, le doy doble clic, como esto se va a seguir llamando, que no se va a actualizar solo, script1, todo lo que vayamos haciendo en este código no se va a traducir bien. De hecho, cuando clicáis aquí vais a ver que sale el mismo código y sigue poniendo script1. Vais a ver que no se van a relacionar, os va a dar fallo. Por eso, si se cambia el nombre aquí, hay que ir con mucho cuidado aquí y cambiar el nombre de la clase. Se tienen que llamar siempre igual.
00:25:02
y cuidado con las líneas
00:25:28
con los saltos, disparar
00:25:30
luego importante
00:25:33
y esto también pasa en todos los softwares, igual que os he dicho
00:25:35
antes, aquí hay una estrellita
00:25:37
un asterijillo que
00:25:39
nos indica que no está guardado
00:25:40
los avances, los cambios que hemos hecho
00:25:43
para guardar, como siempre, control S
00:25:45
le he dado y se ha guardado
00:25:47
para que los cambios que yo vaya
00:25:49
haciendo del código también se vean reflejados
00:25:51
veis que ahora cuando clico aquí
00:25:53
ya si pone disparar, para que se vean reflejados
00:25:54
De hecho, mira, si yo pongo aquí disparar dos y vuelvo a Unity y no he guardado, pues aunque yo le dé, aquí no se ha actualizado.
00:25:57
Así que importante, todo cambia.
00:26:05
Y vuelvo a poner el mismo nombre que tiene el script.
00:26:07
Todo cambia que vayamos haciendo, control S, ¿vale?
00:26:10
Para que no dé problema.
00:26:14
Cuando vayamos viendo ejemplos de qué se hace con scripts, vais a ver que pasa otra cosa, que es que igual estáis aquí diciendo,
00:26:18
diciendo
00:26:24
esto ya lo veremos
00:26:24
pero transform position es igual a
00:26:28
las coordenadas que doy donde tiene que estar la posición
00:26:30
es, esto ya lo veremos
00:26:32
pero aquí estoy diciéndole que
00:26:33
al empezar el juego
00:26:35
vale, el
00:26:37
y guardo
00:26:39
al empezar el juego el objeto se ubique en las coordenadas
00:26:40
0, 0, 0
00:26:44
y esto vamos a ver
00:26:45
que hemos guardado
00:26:47
y todo eso, pero yo
00:26:50
Si voy al objeto, importante, para hacer zoom al objeto y verlo de cerca, en el panel de escena podéis seleccionarlo y darle a la tecla F o, me vuelvo a alejar, darle doble clic al objeto y os acerca a ese objeto.
00:26:51
Todo esto lo ponen los contenidos igualmente.
00:27:09
Las coordenadas que tiene ahora mismo este cubo las voy a poner en las que sean que no sean cero.
00:27:13
Por ejemplo, 0, 62, 0, 5, 17, 52. Es decir, muy alejado del 0, 0, 0. Cuando yo le dé al play, vais a ver que yo le he dicho, cuando empiece el juego, que la posición del objeto vaya a 0, 0, 0. Le doy al play y el objeto no se ha movido en absoluto. Sigue en las coordenadas que estaba.
00:27:20
¿Por qué? Y esto es la lógica que hay que seguir también.
00:27:42
¿Por qué? Primero, porque en qué momento hemos dicho que el script que estamos escribiendo se asocia a este cubo.
00:27:45
Podría estar hablando de la cámara o de la luz que viene por defecto.
00:27:51
Hay que pensar siempre que queramos que un script se aplique a un objeto, un GameObject.
00:27:55
Aquí todo se llama GameObjects, todos los cubitos estos, todos los elementos.
00:27:59
Que veis que tanto la luz como las cámaras suelen tener el mismo iconito, algunos variarán, pero de momento todos son GameObjects.
00:28:04
Al final, hasta que no le asociemos este script, que es otro componente, no va a saber que hay que aplicarlo.
00:28:12
¿Cómo se aplica este script a este objeto?
00:28:18
Pues lo seleccionamos y el script que queramos, que puede haber más, pues este disparar, que en realidad sirve para que se reubique la posición, lo arrastramos como componente.
00:28:22
Y veis que se añade como componente.
00:28:31
Ya sí que el cubo sabe que tiene un script que dentro tendrá código tal que en este caso es que se reubique.
00:28:35
Y si le damos al play ahora, vais a ver que al comenzar el juego se ha movido y si selecciono al cubo, pues está en el 0, 0, 0. Hasta que no se aplique este script en el objeto que lo quiera, hasta que no asociemos el componente, pues nadie sabe a quién tiene que aplicarse este script.
00:28:40
Vale, importante, que son como los primeros errores que surgen. Vale, importante también para que vayáis viendo la lógica, que al meterlo es como otro componente, es decir, otro objeto con otra clase, vale, que en este caso se llama disparar, que es la que hemos puesto aquí.
00:29:01
Y vais a ver también que si yo este nombre lo llamo disparar, bueno, le voy a poner mover objeto. Recordad que no se pueden poner espacios. Todo seguido y con lo que vemos la separación de palabras es con las mayúsculas.
00:29:16
Vais a ver que primero ya como que me está dando aquí un fallo raro de que no me lo reconoce, ¿vale? A veces no lo hace. Y cuando voy a cubo, no está funcionando porque no está detectando qué clase es a la que estamos hablando. ¿Por qué? Nuevamente, porque no está asociada el nombre del objeto, que es moverObjecto, con la clase que está gestionando este script.
00:29:33
Por tanto, como he vuelto a cambiar el nombre, aquí con cuidadete, mover objeto y guardamos. Y ahora cuando volvamos a Unity, pues recargará. Y ahora sí que sí, volvemos a cubo y ahí está mover objeto.
00:29:55
Y fijaos cómo es que aquí nos ha puesto un espacio. Esta es la forma en la que el editor, el inspector, lo visual que vamos viendo aquí, cómo se reflejan todos los parámetros, nos lo intenta hacer fácil y amigable, tan amigable que aunque a nivel de código hay que escribirlo así, porque si no da fallos, aquí nos lo va separando cuando detecta que estamos poniendo estas mayúsculas.
00:30:09
Y recordad, os he dicho, cada componente es una clase, un objeto. Estos que vamos añadiendo aquí son ya clases como esta, que se llamarán BoxCollider.
00:30:32
Ahí en algún punto, si buscáramos un código, un script que se llama BoxCollider, que lo han configurado a otro iconito y ciertos parámetros, pero al final es otro código cuya clase es BoxCollider.
00:30:45
Entonces, pensar en cada uno de estos apartados o de los componentes, por ejemplo, en el Physics Raycaster, pues esto es otro componente. Hay otro componente que es la cámara. Si nos vamos metiendo en el código, llegaremos a la cámara.
00:30:56
aquí vais a ver que hay muchos elementos
00:31:13
que son como lo que se llaman librerías o namespaces
00:31:17
que importante, cuando os ponéis encima de cualquier elemento
00:31:21
en el Visual Studio tiene muchas ayudas
00:31:23
y de hecho es bastante esencial
00:31:26
que por ejemplo la primera línea vais a ver que os pone
00:31:28
de qué tipo es este objeto
00:31:31
y aquí os pone namespace
00:31:33
si por ejemplo nos ponemos en star
00:31:34
os pondrá voy mover objeto punto star
00:31:36
y paréntesis, esto es lo que se llama una función
00:31:39
En MonoBehaviour vais a ver que es una clase
00:31:41
Otra vez lo de clase
00:31:44
Si me pongo en mover objeto al ponerme encima
00:31:46
Te dice esto es la clase mover objeto
00:31:47
Aquí está muy claro porque está aquí lo de clase
00:31:49
Pero es que luego en cierto momento
00:31:51
También vamos a poder recurrir a mover objeto
00:31:53
Sin ponerlo de clase
00:31:55
Y pues está muy útil
00:31:56
Saber que esto es mover objeto
00:32:00
Y es una clase
00:32:02
Aquí ya habría que hacer más operaciones
00:32:03
Esto ya lo veremos también
00:32:05
Pero que tengáis en cuenta que al poneros
00:32:07
encima de los objetos os va diciendo
00:32:09
pues posición es de la clase transform
00:32:11
un parámetro que se llama posición
00:32:13
un vector 3 es
00:32:15
tiene una estructura de 3 floats
00:32:16
todo esto
00:32:20
lo iremos viendo ¿vale? pero bueno
00:32:21
que es importante, igual que cuando vayamos
00:32:24
escribiendo ciertas palabras
00:32:25
pues nos va ayudando y a veces nos sugiere
00:32:26
pues transform
00:32:30
y os va sugiriendo opciones dentro de
00:32:30
lo que tenga lógica
00:32:34
en el momento que estáis escribiendo
00:32:35
¿vale? entonces es una ayuda
00:32:37
como importantísima. Igual que
00:32:39
cuando vamos escribiendo ciertas cosas
00:32:41
si salen estos tachados rojos
00:32:43
estos subrayados rojos
00:32:45
significa que hay un error, un error
00:32:47
además grave. Si aparece ese
00:32:49
rojo y guardara
00:32:51
esto lo he escrito al tuntún, es decir
00:32:52
hay un código que no sabe qué hacer el programa
00:32:55
y cuando el programa se pone
00:32:57
hay algo que no sabe qué hacer, se pone
00:32:58
de esta guisa, que es que sale
00:33:01
un aviso rojo y cuando intento ejecutar el juego
00:33:03
no me deja
00:33:05
¿Vale? Vais a ver que la programación en sí es muy exquisita porque con tener una letra mal escrita ya sale, por ejemplo, aquí, que se me ha olvidado poner la S. Y de pronto sale este error y yo digo, ah, vale, voy a seguir. Pues no os deja jugar, no os deja testear el juego, no os va a dejar avanzar.
00:33:06
Entonces, siempre que veáis este subrayado rojo, sabéis que os va a dar error, que no es lo mismo que si en cierto momento, a ver, un ejemplo, voy a poner una cosa que tampoco sabemos qué es, yo qué sé, vale, y hacemos esto y sale un subrayado verde.
00:33:25
El subrayado verde, como los propios colores indican, significa que algo pasa, pero esto no es un error fatal, ¿vale? Esto, aunque hayamos declarado algo y nos dé esa especie de error, ahora nos sale un warning que es amarillo y este sí deja testear el juego, ¿vale?
00:33:48
Si dejará hacer lo que haya que hacer, ¿vale? En este caso es que ha puesto el objeto en el 0, 0, 0. Cuando hay este tipo de subrayados verdes significa, esto ya lo veremos también, que hemos declarado una variable pero luego no se usa, es decir, que ahora mismo esta línea no molesta pero no aporta nada, no está mal escrita, sabe que es, pero no está aportando nada, ¿vale?
00:34:02
De hecho, cuando nos ponemos encima, veis que os pone aquí una cosa en plan, a ver, vamos a ver qué es lo que pone la segunda línea. La variable comprobación se ha declarado, pero nunca se usa. No es un problema error fatal, pero bueno, si no se va a usar, pues fuera y todo más tranquilo. Pero los verdes se pueden dejar ahí, no hay problema. Cosas que os irán surgiendo.
00:34:23
Todas estas funcionalidades que digamos que van saliendo aquí a medida que escribimos no salen de la nada
00:34:44
Es porque se están viendo librerías aquí que tienen un montón ya de configuraciones pre-hechas
00:34:49
Que nos permite ir detectando parámetros
00:34:56
Ah, pues hay un parámetro que se llama transform, otro red transform, tal
00:34:59
Eso es porque tenemos aquí librerías instaladas
00:35:04
Más adelante tendremos que ir incorporando más librerías
00:35:07
como por ejemplo Unity, Unity Engine, bueno, pues una.
00:35:11
Cuando queramos hacer gestión de escenas, hasta que no pongamos esta línea,
00:35:21
no nos van a salir, por ejemplo, estos parámetros.
00:35:26
Imaginaos que pongo aquí Scene Manager.
00:35:30
A ver, espera, voy a poner algo que no dé error.
00:35:34
Active Exchange.
00:35:38
y uno, a ver
00:35:39
si esto no da error
00:35:43
getActiveScene, por ejemplo
00:35:44
y ahora no da error, ¿vale?
00:35:51
no sabemos qué es, pero vemos que no da error
00:35:54
importante, cuando más adelante
00:35:56
estemos trabajando, imaginaos que yo
00:35:57
borro esta línea porque no está
00:36:00
o tal, veréis que da error
00:36:02
¿por qué? porque no está
00:36:04
detectando una librería que contiene
00:36:06
la información de qué hace esta orden
00:36:08
¿Vale? Importante, ¿vale? Por defecto vamos a ir tirando con estas tres librerías y, ojo, con esto que pone MonoBehavior, que es otra clase, digamos, que tiene Unity, específica de Unity, de la que heredan todas las clases que iremos viendo con también atributos.
00:36:09
Hay como librerías externas y luego los propios códigos que ya tiene Unity incorporado a través de una programación especial que tenía. De hecho, lo pone ahí.
00:36:27
Bueno, el behavior es la base de clase desde la cual cualquier script de Unity deriva, ¿vale? Pues esto que es una operación de herencia, bueno, pues al final también permite que haya ciertos comportamientos que si no, no estarían por defecto en el lenguaje C Sharp, ¿vale?
00:36:38
Esto quiere decir que no podemos, por ejemplo, borrar cosas al tuntún, porque va a empezar a dar fallos. Por ejemplo, el transform no viene de estos namespace. El transform es una instrucción, una palabra clave, por decirlo de alguna forma, que viene de MonoBehavior.
00:36:56
Si de hecho le dierais a control y a esta clase, os abre aquí un montón de cosas que es lo que hay detrás de estas clases y podemos ir entrándonos en el agujero hasta infinito porque ya es cosa muy avanzada, pero digamos que todo está heredando de otra información que ha hecho quien haya desarrollado Unity, por ejemplo.
00:37:12
Vale, cuando empezamos a trabajar en Unity vais a ver que están estas llavecitas que vais a ver constantemente. Las llavecitas, digamos que es de abertura y cierre, implica el ámbito dentro del que se van a dar ciertas instrucciones.
00:37:36
Por ejemplo, esto que es un método, ya veremos que es un método, que implica que todo lo que esté aquí dentro de estas llaves asociado a este método, esto digamos que es un paquete, todo lo que pongamos aquí se va a ejecutar en el start.
00:37:54
Si yo, como he hecho antes, pongo transform position new vector 3, que es una ubicación, pues al empezar el juego o cuando se inicie este script, que puede ser porque lo lancemos durante el juego, todo lo que esté en start se va a aplicar en el primer momento que se use este objeto.
00:38:07
Por eso, al empezar el juego, el objeto cubo al que le hemos aplicado este script, que sigue estando aquí, mover objeto, pues al empezar el juego se ha aplicado.
00:38:29
Sin embargo, hay otra sección, otro método, se llama, otra función, que es el update.
00:38:40
Y de hecho, aquí vais a ver que ya por defecto vienen estas dos líneas verdes, una referida al start y otra al update.
00:38:46
vale, esto son lo que se llaman
00:38:52
comentarios, cuando el código
00:38:55
se va ejecutando, toda línea
00:38:57
que veáis que empieza con estas dos barras
00:38:59
así
00:39:02
inclinadas, significa que es
00:39:03
como un comentario que se ha dejado
00:39:05
que no se va a tener en cuenta
00:39:07
a nivel de ejecución, pero por ejemplo
00:39:09
para aclarar en plan, yo ahora mismo aquí
00:39:11
puedo poner dos líneas de estas
00:39:13
que veis que se vuelve verde y ponerme
00:39:14
un comentario en plan, con esto
00:39:17
consigo que el objeto
00:39:19
bla bla bla, se vaya a cero
00:39:21
por ponerlo rápido, ¿vale?
00:39:23
esto es muy útil para ir comentando
00:39:25
para ir dejándote notas
00:39:26
si os fijáis aquí pone, justo antes
00:39:28
como aclaración, start, este método
00:39:31
y lo que hay en sus llaves, se llama
00:39:33
es decir, se activa
00:39:35
antes justo del primer frame
00:39:37
de actualización, es decir
00:39:39
en el primer frame en el que se
00:39:41
ponga en uso este script
00:39:43
va a ocurrir esto, ¿vale?
00:39:45
y el comentario de lo que esté
00:39:47
dentro de este void, nos ha dejado
00:39:49
que programar update es llamado una vez por frame vale cuando vais jugando a un juego igual que pasa
00:39:51
también al ver un vídeo o al hacer cualquier cosa audiovisual la reproducción se compone de frames
00:39:57
es decir se irá desarrollando en un número de frames determinado por en este caso la potencia
00:40:04
del ordenador cuanta más potencia tenga más frames por segundo podrá ir ejecutando no
00:40:10
De hecho, si alguna vez habéis jugado a videojuegos
00:40:16
Muchas veces podéis, en las opciones en el menú del videojuego
00:40:22
Podéis seleccionar cuántos frames por segundo
00:40:25
Incluso podéis decir a qué velocidad de reproducción se va generando
00:40:27
Porque a diferencia de lo que ocurre en algo renderizado
00:40:32
Como un render que hagáis de Maya
00:40:35
Por poner un ejemplo, de Premiere o de After
00:40:37
O de un video cualquiera
00:40:39
Ahí ya está definido el número de frames que tiene ese video
00:40:41
Pero en un videojuego se va generando a lo largo de la... vamos, se va creando a medida que se va jugando, ¿no? Entonces, podremos ir definiendo cuántos fotogramas por segundo tiene el juego. Aquí, por defecto, lo que va a intentar es hacer tantos fotogramas por segundo se puedan con respecto a la potencia que tenga el ordenador, ¿vale?
00:40:44
Entonces, cuando lanzamos este script le decimos, quiero que la posición transform esté en el 0, 0, ¿vale? Pero a lo mejor queremos que luego otra orden, cada fotograma vaya variando, ¿vale? Y para eso tendríamos que meterla dentro de esta función de update, de actualización, ¿no?
00:41:07
Por ejemplo, se me ocurre, para no llevarlo a algo muy avanzado, a ver si se me ocurre algo, voy a hacer como un contador.
00:41:23
Esperad un segundillo que hago una cosa, escribo, esto ya lo iremos viendo, pero esto ya lo veremos.
00:41:39
y ahora os explico alguna cosilla de esto que estoy poniendo
00:41:50
no todo, pero alguna cosilla
00:42:04
esto ya es avanzado
00:42:06
pero lo que os digo es básicamente que he hecho un bucle
00:42:15
que va a estar leyendo lo que hay dentro de estas llaves
00:42:19
recordad que hay una llave de apertura y una de cierre que están asociadas
00:42:21
y lo que hay aquí dentro
00:42:24
Lo que le estábamos diciendo es que nos represente un número que se está ejecutando cada fotograma hasta llegar al número 9. Si esto lo vamos ejecutando cada fotograma, cuando le demos a play al juego, si vamos a la consola,
00:42:26
La consola al final lo que hace es darnos comprobaciones de qué está haciendo el juego
00:42:52
De ciertos parámetros que vayamos poniendo
00:42:58
Entonces, cuando queráis por ejemplo poner una orden
00:43:00
Voy a parar el juego
00:43:05
Cuando queramos ir comprobando algo del juego
00:43:06
Lo vamos a tener que mandar a esa carpeta que se llama consola
00:43:08
Por ejemplo, imaginaos que yo tengo una opción que es decirle
00:43:12
Cuando a un objeto le toque otro, pues que se muera
00:43:16
Eso ya diremos que eso lo haga efectivamente el juego, pero si yo quiero verlo en consola hay un comando que se llama debug.log, esto lo tenéis que aprender, lo veréis también en el primer tema, y dentro de los paréntesis es donde ponemos qué mensaje tiene que mostrar esa consola a medida que juguemos.
00:43:22
Por ejemplo, yo voy a querer que al empezar el juego, en el start lo pongo todavía, voy a poner que me diga, pues por ejemplo, hola mundo, que es como se suele poner. Entonces cuando arranque el juego, al empezar en la consola se va a ver este mensaje de hola mundo como comprobación.
00:43:48
E importante, como ahora solo quiero ver este debug log de Hola Mundo, que antes he puesto un código, ahora vuelvo a explicarlo, que igual me he adelantado un poco. Imaginaos que yo este código no quiero que se ejecute, pero tampoco quiero borrarlo porque ya lo tengo escrito y igual más adelante lo recupero.
00:44:08
Para esto vuelven a servir los comentarios. Si yo en una línea vuelvo a poner las dos líneas, veis que de pronto se comenta, se convierte en verde todo, y entonces esto lo tengo aquí, que en cualquier momento yo lo puedo borrar y vuelve a activarse, pero es muy útil para ir dejando en comentario, en algo que a lo mejor luego uso, ciertas líneas, para ir comprobando el código.
00:44:24
Esto está muy bien para eso, para ir sin borrar. Estamos probando cosas y hemos escrito bastante código, en vez de borrarlo, que a lo mejor luego solo estamos testeando que funciona o no, pues se comenta y listo.
00:44:47
¿Qué pasa? Aquí, por ejemplo, claro, digo, voy a comentar esto que no me interesa. Aquí he comentado esta línea, pero es nada más incluido hasta la llave y ahora esta llave de cierre no está cerrando aquí, sino que está cerrando esta llave de aquí.
00:44:59
Entonces, al final hay una llave aquí que no está cerrando nada porque las he desemparejado, ¿vale? Entonces, habría que ir comentando todas las líneas, ¿vale? Hasta que todo lo que tenga lógica, veis que se ha quitado ya el error.
00:45:13
O hay otra forma de comentar, esto creo que no lo ponen los apuntes, ¿vale? Que es para comentar varias líneas de golpe, ¿vale? Hay otra forma que es poner la línea en vez de 2, 1 y un asteriskillo, ¿vale? Y en la línea que queramos que deje de comentar, al revés, asteriskillo y línea.
00:45:26
Y ahora veis que se ha comentado todo esto, está en verde. Ahora mismo este código yo lo podría recuperar enseguida borrando esto, y ahí está otra vez. Bueno, aquí como he comentado antes esto también, pero no lo borro.
00:45:43
Entonces esto es muy útil para, en plan, estoy probando una línea y no me funciona, la voy a dejar comentada y luego vemos. Entonces ahora mismo en el update no se está ejecutando nada, y al empezar el objeto que tenga el script se va a ir al 000,
00:45:56
cero y aparte quiero que la consola vale esto ahora mismo es muy abstracto por decir si para
00:46:12
qué voy a querer que ponga hola mundo la consola bueno ya veremos que esto tiene más aplicaciones
00:46:18
en el futuro pero guardo y si voy aquí ahora al editor al darle a play vale en la consola
00:46:23
vais a ver que va a poner hola mundo vale a funcionar y solo una vez porque solo se ha
00:46:30
ejecutado al empezar el juego vale que no es lo mismo y vuelvo al código que corto esta línea
00:46:37
control x y la pego en el update vale y ahora lo que le estoy diciendo es esta línea esta
00:46:44
comprobación este hola mundo que aparezca en cada fotograma del juego vale esta instrucción vais a
00:46:51
ver que ha cambiado radicalmente en el sentido de que cuando desactivó y en la consola cuando
00:46:56
ya tengáis muchos elementos para no confundir es entre un play y otro aunque lo suelo hacer
00:47:01
por defecto le podéis dar a clear vale que son los mensajes no pasa nada no estáis borrando nada
00:47:06
si volvemos a ejecutar el juego ahora se generará los mensajes de esta nueva reproducción y vais a
00:47:10
ir viendo que aparecen muchos hola mundo uno por cada fotograma vais viendo que aquí pone la hora
00:47:16
en la que se está ejecutando y como habrá pues bastantes fotogramas por segundo pues por eso
00:47:21
hay varios de cada segundo vale para el juego se quedan aquí los comentarios y a lo mejor en cierto
00:47:27
momento quiero decir esto vais a ver que al pulsar os pone cosas como en qué
00:47:32
script que es el mover objetos incluso dicen qué línea es la que está
00:47:37
ejecutando esto que está ocurriendo que si vamos aquí vamos a ver que la línea
00:47:41
22 es donde estamos dando esta orden fijaos que aquí os dice en qué línea se
00:47:46
está ejecutando la orden incluso si damos a doble clic aquí cuando salgan
00:47:50
errores o lo que sea al dar doble clic te lleva al sitio del script donde que
00:47:55
en el que se ha provocado que aparezca este mensaje. Esto es útil.
00:48:00
¿Vale? Veis que no es lo mismo ejecutar las órdenes en Start que en Update,
00:48:04
que va un fotograma tras otro.
00:48:10
Si yo, por ejemplo, voy a comentar, ¿vale? Para no borrar, este de Backlog, ¿vale?
00:48:12
Y vuelvo a coger este for, ¿vale? Simplemente, y lo pongo, sin comentar, en Start.
00:48:18
Es decir, solo una vez se va a ejecutar que me enseñe la consola, esto de Backlog,
00:48:24
Veis que otra vez está aquí
00:48:28
Que se ejecute hasta el número
00:48:30
8, en realidad, menor de 9
00:48:32
¿Vale? Esto ya sé que igual
00:48:34
Vamos, seguro que no estaréis siguiendo
00:48:36
Pero os voy explicando lo que hace, ya veremos cómo se hace
00:48:38
Pero quiero que veáis el funcionamiento
00:48:40
De la consola, al darle a play
00:48:42
Vais a ver que va
00:48:44
Que se ha generado el 0 al 8
00:48:45
Una vez y ya está
00:48:48
Porque al arrancar el juego le he dicho
00:48:49
Ponme una cuenta del 0 al 8
00:48:52
Al comenzar el juego
00:48:54
Pues me lo ha hecho y lo ha hecho todo, independientemente de que haya más frames en ejecución después.
00:48:56
Me lo ha hecho en el primer frame, en el first frame, que no es lo mismo que si esto lo vuelvo a mover, corto y pego aquí en el update, guardo y lo ejecuto aquí,
00:49:01
que lo que vais a ver es que en cada fotograma me va a contar hasta 8.
00:49:12
Le doy y veis que aquí se está moviendo, están cambiando los segundos y aunque no se vea muy claro, veis que aquí hay más de 999 mensajes.
00:49:18
Ya llega un punto que se para. Si yo paro y empiezo a comprobar, veréis que ha contado hasta 8 cada fotograma de los que lo ha ido haciendo.
00:49:29
Entonces, imaginaos que queréis hacer un contador de tiempo.
00:49:37
Pues tendremos que ir consiguiendo
00:49:41
Que cada uno de estos fotogramas
00:49:44
En el update vaya generando
00:49:46
Un nuevo número
00:49:48
Que vaya sumando uno a uno
00:49:49
Para empezar estas dos funciones
00:49:51
Que como ya hemos visto
00:49:53
Vienen de lo que tenemos aquí arriba
00:49:55
Sirven para decir
00:49:58
Que esto no ocurre en Cesar por defecto
00:50:00
Para decir en qué momento se tiene que ejecutar
00:50:02
Tal código
00:50:04
De hecho hay más momentos de ejecución
00:50:04
Ahí está el void update
00:50:08
Pero hay, por ejemplo, otro que sería, esto ya lo veremos nuevamente, el awake. Pues aquí, en estas llaves de aquí, lo que iremos poniendo son los eventos que se van realizando según se arranca el juego.
00:50:09
Es decir, aunque no se esté ejecutando un frame porque este screen todavía no está en juego, no ha aparecido ese objeto, no se ha provocado, esto ya ha cargado, digamos, en ese objeto en potencia ciertos parámetros, ¿no? Lo hace a priori. Bueno, esto ya lo veremos. Que sepáis que hay más métodos.
00:50:28
hasta aquí ya creo que voy a ir parando
00:50:44
porque es mucha información
00:50:48
me interesa mucho que vayáis viendo el tema 1
00:50:49
sobre todo, que se lo vayáis haciendo
00:50:52
y también ya una vez
00:50:54
digamos el tema 1 os pongáis con la tarea
00:50:56
que vayáis chequeando también el tema 0
00:50:58
- Materias:
- Imagen y Sonido
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado superior
- Segundo Curso
- Subido por:
- Daniel M.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 36
- Fecha:
- 30 de septiembre de 2025 - 21:08
- Visibilidad:
- Clave
- Centro:
- IES CIFP a Distancia Ignacio Ellacuría
- Duración:
- 51′ 06″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 407.14 MBytes