Tutoría Inicial DEIM · Curso 2023-2024 - 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:
Tutoría de arranque del módulo de Desarrollo de Entornos Interactivos Multidispositivo, donde se explican sus características y se resuelven las primeras dudas.
Pues nada, simplemente deciros que este es el módulo de DEIN, Desarrollo de Entornos Interactivos Multidispositivos,
00:00:00
y yo voy a ser vuestro profesor este año, ¿vale? Tenéis aquí mi data de contacto, etc.
00:00:07
Voy rápido, por lo que os he comentado, para intentar aprovechar sobre la ficha del alumno, ¿vale?
00:00:13
Ahora lo vemos, que me están haciendo una pregunta por el chat.
00:00:18
Estos son los horarios preferentes de atención para este módulo, ¿vale?
00:00:21
Pues, por ejemplo, ahora mismo estaríamos en este hueco de aquí, ¿vale?
00:00:25
Hoy, dependiendo de si tenéis dudas o no, veremos cuánto ocupamos de las dos horas posibles que tenemos.
00:00:28
Vamos viendo. Según los que estéis hoy aquí, pues como estáis, si habéis leído el material,
00:00:34
o si lo estáis intentando realizar alguna tarea, etc.
00:00:42
Vale, simplemente os pongo la ficha del módulo con la relación de horas en presencia que tendría.
00:00:46
Como podéis comprobar, se supone una dedicación de 8 horas semanales para superar este módulo.
00:00:53
En presencia serían las horas de clase, que muchas veces también implica que fuera de los horarios de clase tengáis que hacer tareas,
00:00:59
las cuales también en este caso, digamos, se incluyen en estas 8 horas.
00:01:07
Pero bueno, que sepáis que esto es, de hecho, de segundo, como podéis comprobar,
00:01:12
el módulo que más exigencia pide a nivel de horas, a nivel de ficha del ciclo.
00:01:17
Este módulo, y aquí hay una rata, que cambio ya, aprovecho, ¿vale?
00:01:25
Se comprende 8 unidades de trabajo, 8 temas, ¿no?
00:01:30
Vais a ver, si ya habéis empezado a estudiar, que hay un primer tema que pongo que tiene una tarea que no es evaluable,
00:01:35
es decir, en ningún caso va a contar para nota, y aunque tiene una fecha sugerida de entrega, es una unidad transversal,
00:01:40
porque se dedica básicamente a bases de programación, y entonces vamos a estar volviendo a ella constantemente.
00:01:48
Por eso prefiero no cerrarla, digamos, como la primera, si abrirla la primera, pero iremos volviendo a ella progresivamente.
00:01:54
Luego veréis que hay otros 7 temas, que desde la 1 hasta la 7 van a contar con tareas evaluables que pueden subir nota a vuestra nota final, como luego comentaré.
00:02:01
Aquí he puesto, aquí se está bien puesto el número, las 8 unidades, la fecha establecida para la apertura del tema,
00:02:13
que eso no significa que luego en las tutorías o de otro modo se pueda seguir ampliando el contenido incluso evaluable,
00:02:20
pero un poco de referencia a cuando se abre el grueso de contenido, ¿no?
00:02:26
Bueno, hasta ahora estamos ya en este punto, ya se ha abierto la UT1, y la UT2 se abrirá.
00:02:30
Yo voy a intentar, de hecho, ir un poco más rápido si es posible. Este año es más sencillo que el año pasado en ese sentido.
00:02:36
Pero bueno, en principio las fechas las tenéis aquí. Como veréis, el último tema que vamos a dar se abre el 17 de abril,
00:02:43
por lo que hay más o menos un mes de la apertura del último tema hasta los exámenes de evaluación ordinaria.
00:02:49
Por lo tanto, yo creo que hay tiempo para estudiar. Lo mismo, es el último tema.
00:02:56
Hasta esta fecha ya deberíais ir haciendo seguimiento del resto de unidades.
00:03:01
Hola, ¿qué tal? Jesús, perdonad, vuelvo a parar. ¿Alguno tenéis el módulo de Primero de Diseño, Dibujo y Modelado?
00:03:09
Mani Ángeles, entiendo que no, pero Jesús puede que sí. Lo digo porque coincide la segunda hora, ¿vale?
00:03:19
No sé si Jesús me está escuchando. También os pediré, si es posible, que entréis a la hora, porque si no, ahora igual tengo que repetir cosas.
00:03:28
Bueno, Jesús, entiendo que me escuchas.
00:03:39
Vale, bueno, sigo con esto y si en algún momento me respondes, pues te leo, o te escucho.
00:03:43
Los softwares que se van a usar, básicamente para este módulo vamos a emplear el entorno de Unity, que es el motor de videojuegos que más se emplea.
00:03:54
Que últimamente están teniendo políticas de monetizarlo, que va un poco en contra de la lógica que venían hasta ahora cobrando comisiones, según ciertos lanzamientos que se hicieran.
00:04:02
Pero han vuelto para atrás y hasta que no se lanza un producto que tenga muchos ingresos, se puede usar de manera gratuita.
00:04:15
Entonces, esto sí que es verdad que en cierto momento pueden decir, no, pues esto va a cambiar, pero en principio no tiene pinta de que vaya a suceder.
00:04:24
Entonces, siendo uno de los dos máximos estándares en el mundo de los videojuegos que son Unity y Unreal, y alguno más como Godot, que está cada vez pisando fuerte, es el que vamos a usar.
00:04:31
Además, aquí os pongo la versión, ahora hablaremos sobre esto, que os pido que uséis.
00:04:44
Tanto del editor de Unity como del IDE, que si ya habéis leído los primeros temas sabréis lo que es, que es el entorno de desarrollo.
00:04:50
Son estas las versiones. Si más adelante vemos que hay funcionalidades interesantes en versiones más recientes, lo actualizaremos.
00:04:59
Pero de momento esta es operativa y es la que más nos interesa ahora mismo.
00:05:08
Aparte habrá paquetes que a veces habrá que ir instalando, esto ya lo iremos viendo.
00:05:13
En cierto momento se pueden usar otros softwares relacionados, como Mixamo. Esto llegaremos.
00:05:18
Necesitáis un ordenador que soporte el trabajo. Unity a nivel, vamos a hacer cosas súper exigentes normalmente, así que con un ordenador más o menos profesional, que no sea algo muy básico, debería tirar sin demasiado problema.
00:05:23
No es de los softwares más exigentes, a menos que hiciéramos cosas que cargaran mucho el sistema.
00:05:43
Esto, como si estuvieseis en la presentación de ayer de RMPA, lo repito, lo importante para aprobar es el examen final que hay en convocatoria ordinaria.
00:05:49
Y si no lo superáis o no os presentáis, en convocatoria extraordinaria, que tienen el primero fechas a mediados finales de mayo y el segundo a mediados de junio, más o menos, aunque las fechas se presentarán durante febrero, previsiblemente.
00:05:59
Lo importante es que en ese examen se saque mínimo un 5, porque si no se tiene un 5, por mucho que se hagan las tareas, que pueden subir nota, como ahora veremos, o otros factores, no se va a poder aprobar.
00:06:15
Y tampoco hay redondeo, es decir, un 4 con 9 en ese examen final es suspenso, se va a la siguiente convocatoria o lo que proceda.
00:06:27
Ahora os voy a decir que nada aparte de aprobar ese examen es realmente obligatorio, ni siquiera estas tutorías, ni verlas. Mientras aprobaréis este examen, aprobaríais el módulo.
00:06:37
Pero sí que es verdad que para adquirir destrezas en lo que vamos a estudiar, es importante practicar. Es prácticamente imposible, se me ocurre muy complicado, a menos que ya seáis programadores o algo similar,
00:06:47
que si no practicáis podéis asentar un nivel básico en Unity, que es lo que se busca. Por tanto, aunque las tareas suban algo de nota, yo ya simplemente os diría que las hiciérais por practicar y por asentar conocimientos.
00:06:59
Que además haciendo las tareas es donde más dudas os van a surgir, normal, y donde más os vais a pegar con el software y más vais a aprender. Y con la programación también os vais a pegar.
00:07:19
Nada, eso, lo único obligatorio es el examen final. Luego aparte de esto, veréis que hay una tarea evaluable por cada tema. En el tema 0, lo que os pongo aquí no será evaluable, simplemente es una tarea
00:07:29
por lo que me interesa que vayamos estando sueltos para realizarla. Seguramente la primera vez que leáis la tarea, el enunciado, no vais a saber cómo afrontarlo, pero a medida que vaya pasando el curso, lo suyo es que al final del curso lo sepáis hacer sin mucho problema.
00:07:44
Aparte en cada tema veréis unos cuestionarios tipo test, de alrededor de 30 preguntas por tema, que no suman ni restan nota, pero sirven para asentar conocimientos, también nos pueden surgir dudas, un poco se repasa de lo que va el tema.
00:08:02
Sobre todo a nivel teórico, más que aplicado, que es lo que se busca que cubráis con las tareas. Nada de esto nuevamente es obligatorio para aprobar, lo importante es el examen final. Para aprobar, para aprender ya, pues todo es importante.
00:08:18
También nos sirve para practicar y hacer porfolio, a medida que vayamos viendo los temas, y sobre todo en los últimos, se dará pie a que en las prácticas, aunque yo os diga que hagáis una cosa, que es lo que se busca, que pongáis en práctica lo de ese tema.
00:08:35
A veces digo, podéis usar a lo mejor otro sprite, análogo, o otro fondo, o incluso hacéis la base de la tarea, os puede servir esto luego para ir presentando porfolios, o complicar más un nivel, por ejemplo, si queréis.
00:08:48
Entonces, os sirve también como aliciente para hacerlas. Vuelvo a decir que el examen, a no ser que se supere con un 5+, no hay opción de redondeo al alza. Un 4,6 daría un 5, un 4,9 no sería 5, y por mucho que se sumaran a un 4,6, a lo mejor el punto extra, que en teoría daría un 5,6 y aparentemente sería aprobado,
00:09:01
si el examen por sí mismo no se aprueba con un 5+, no estaría superado el módulo. Aquí se explica un poco eso, luego pondré las diapositivas. Las tareas se evalúan entre apto o no apto, es decir, si se cumplen los ítems convenientemente y se cubren lo que van poniendo en el enunciado de la tarea, se puede optar al apto, que es lo que sumará la nota a la calificación final.
00:09:26
Aunque ponga apto o no apto, en el aula virtual, al resolver tareas, si estáis del curso pasado ya lo sabréis, un 100 es apto y un 0 es no apto. A nivel numérico lo representamos así.
00:09:52
En este módulo, las tareas pueden sumar hasta un punto extra. Como son 7 las unidades de trabajo con tarea valuable, cada una, si calculamos, aporta hasta un peso de 0,14, que parece poco, pero finalmente puedes suponer, nada más teniendo en cuenta que a partir del 5 sí que existen redondeos al alza, pueden a veces suponer subir bastante.
00:10:04
Si os sirve de aliciente, también os animo a considerar entregar las prácticas. Las tareas valuables tendrán una fecha de entrega normalmente holgada y sí que se corregirán o las que puedan optar a sumar puntos en esta nota extra serán las que se entreguen dentro de plazo.
00:10:34
Aquella que no se entregue dentro de plazo se puede consultar, por supuesto, a nivel de repaso, pero no va a ser corregida con el propósito de ver si es apta o no. Sí que se puede corregir para ver errores o dar feedback, por supuesto.
00:10:56
Pero os pido que si vais a ir haciendo las tareas, lo llevéis al día, porque además, lo que os he dicho, teóricamente la dedicación debería ser de unas 8 horas semanales, entonces intentad llevarlo al día, que es además un módulo muy sumativo que a medida que vayáis avanzando en temas, se entiende que ya habéis entendido los de los anteriores y cada vez va a ser más, es decir, se usa todo constantemente.
00:11:09
Por tanto, os recomiendo una cierta continuidad al realizarla. Las actividades también serán corregidas una vez se cierre el plazo. A nivel de administración mía, que sea más asumible que se pueda corregir y para que si a alguien le doy feedback previo de la propia tarea, que no se comparta entre compañeros y que todos sean corregidos un poco a la vez.
00:11:36
Esto es el resumen un poco. Hasta un máximo de un punto extra se puede conseguir con las tareas, que se sumarían a esa nota final del examen si se tuviera un 5 o más.
00:12:04
Aquí habla un poco del redondeo. La nota final del módulo al final se representa con un número entero, no hay decimales, y para ello primero se coge esa nota del examen, si está aprobada se sumarán a puntuación extra de las actividades que se tenga acumulada y eso se hace un redondeo al alza o a la baja teniendo el 0,5 entre números enteros para subir o bajar.
00:12:16
Si habéis estado aquí el año pasado, es lo mismo que el año pasado. No me voy a enrollar mucho, siendo esto un módulo de segundo, pero emplearemos Moodle para todo tipo de comunicación que tengamos que mantener, tanto a través del mail o de la mensajería interna.
00:12:40
Los foros son muy importantes, sobre todo cuando tengáis dudas generales. En vez de escribirme por mensajería un mensaje solo a mí, a veces lo recomendable es dejarlo en el foro para que entre todos, o porque el error puede ser recurrente y puede servir para más gente, lo planteéis en el foro.
00:13:01
Ahí os contestaré lo antes posible y además lo ven los compañeros. Nuevamente, aunque esto ya lo sabéis, recordad que hay distinciones de foros entre los que están en la parte superior de recursos generales, que el foro de dudas generales sobre el módulo en conjunto, pero luego recordad que en cada tema, por ejemplo en la UT1, si vais a la sección de recursos está el foro para plantear las dudas específicas de ese foro.
00:13:18
Que así está todo mucho mejor organizado y es más fácil. Entonces, intentad seguir un poco esta organización.
00:13:46
Luego, aparte, el material que se vaya considerando valuable será el que tengáis en la sección de contenidos de cada tema y luego en recursos, en ocasiones puedo subir más enlaces o más recursos complementarios para que ampliéis o reforcéis.
00:13:54
El contenido del examen es el contenido que tenéis en la sección de contenidos. También os adelanto que al ser un módulo bastante práctico, lo que hagáis en las tareas también va a entrar, porque al final todo surge de este contenido, pero es verdad que al aplicarlo se van viendo más cosas que también iremos tratando en las tutorías.
00:14:13
Eso, aunque no esté explícitamente del contenido, porque se resuma en un ejemplo que se pone de cómo se suman vectores, luego la práctica es donde se ponen prácticas las tareas. Por tanto, se entiende que también estáis adquiriendo esos conocimientos. Así que, por eso, las tareas son importantes.
00:14:34
También, las tutorías que grabemos, que alguna de ellas se plantearía como clase, también será temario, será parte del examen final, porque básicamente va a seguir desarrollando lo que está en contenido. Entonces, no os ciñáis solo al contenido, sino también a lo que vayamos viendo las tutorías.
00:14:49
Habrá mínimo una tutoría por cada tema. Y simplemente eso. Todas las dudas que tengáis o que queráis tratar, me las ponéis en un foro y las intentamos solucionar en el foro, si es más compleja. En este caso es verdad que, de hecho, ya un compañero que nos ha apuntado al final, está teniendo problemas con un script y es verdad que si yo no veo el proyecto es muy complicado, porque puede venir el error de tantas partes.
00:15:09
Es muy complicado que yo lo sepa resolver sin verlo. Entonces, sí que es un módulo que sería muy importante que las dudas las viéramos en las tutorías aquí, como estamos ahora mismo, y compartiéramos pantalla, porque si no, los errores o los problemas pueden venir de tantos lados que yo no lo puedo adivinar y por el foro es complejo.
00:15:37
Simplemente considero que en este módulo también es bastante interesante, aunque sea voluntario, unirse a las tutorías cuando se van planteando. No sé si tenéis alguna duda.
00:15:55
Vale, para los que habéis entrado más tarde, aunque ya está explicitado en la convocatoria, se está grabando la tutoría. Si alguien tiene problema, pues que me lo indique.
00:16:09
Vale, sigamos. Hasta aquí alguna duda con lo que hemos estado viendo? No sé.
00:16:31
Todo bien de momento. Vale, otra cosa es, aparte, los que no tengáis foto, no voy a pedir la cámara, pero si al menos que pongáis una foto en vuestro perfil, básicamente para poner la foto, pues os metéis en vuestra aula virtual, en vuestro perfil, y al darle al perfil, si le dais a editar perfil, pues ahí os deja subir una foto.
00:16:38
Creo que es una buena práctica para que no seamos tan anónimos.
00:17:03
Por otro lado, ¿habéis empezado a ver la UT0 o la UT1? Yo casi os recomiendo que empecéis con la UT1, aunque la UT0 ya deberíais irle echando un ojo, sobre todo de cara a ver la instalación de Unity.
00:17:10
Sí, es decir, en el tema se va explicando un poco con el procedimiento, pero Unity, donde podéis encontrarlo, si ponéis Unity, al meteros en Unity, importante es que al dar a descargar, que os va a decir, hay varios planes, descargar para Windows, por ejemplo, yo que tengo Windows, lo que os va a instalar es un ejecutable que es el Unity Hub.
00:17:24
Es decir, para entrar a Unity, lo tengo aquí, lo abro, todo lo vamos a hacer a partir de un gestor, igual que sucede con el Creative Cloud, que lo instalamos desde la aplicación Adobe Creative Cloud, pues digamos que en Unity hay algo similar, que es este Unity Hub.
00:17:54
Este si lo instaláis, al final, a ver si me lo abre, me lo está abriendo en la otra ventana, os va a abrir esta interfaz. Es importante que en este caso uséis una cuenta propia de correo electrónico que no sea la de Ducamadrid.
00:18:09
A diferencia de, a lo mejor, lo que hacéis con Maya, o con Adobe sobre todo, que son licencias un poco dependientes de que seáis estudiantes, a nivel de que os las paga el centro, o os exige que seáis estudiantes para que tengáis la licencia, aquí da un poco igual.
00:18:26
Es decir, como vais a ver, cuando luego activemos el Unity, vais a ver que hay licencias que te piden un dinero. Nosotros, si ya trabajáis más adelante, os puede interesar. De momento nos interesa lo de estudiante o aficionado.
00:18:40
Y en vez de estudiante, que sí que incluye más cosas, pero os puede pedir demostrar que sois estudiantes, tenéis otra versión completamente funcional que es la personal, que es la que os recomendaría que usaréis.
00:18:56
Cuando instaléis el Unity Hub, os tendréis que crear una cuenta. Todo se gestiona a partir de esa cuenta. ¿Por qué os digo que uséis la personal en vez de la del instituto?
00:19:09
Porque vamos a ir descargando assets y paquetes en la Asset Store, que es como una tienda virtual de Unity, con assets, scripts, un montón de cosas, y va asociado al perfil de la cuenta de Unity que estéis empleando.
00:19:26
Para que cuando acabe el curso no lo perdáis y podáis seguir, da igual que tengáis la licencia de aquí o no, usad el correo que vayáis a seguir usando para que sea operativo en el futuro.
00:19:47
Una vez instaléis ese Hub, tendréis que hacer una cuenta, que es registraros, y siempre para que funcione tanto el Unity Hub como podéis emplear los paquetes, os tendréis que logear.
00:19:59
Yo me lo he introducido automáticamente, pero eso, es un usuario y una contraseña, y ahí podéis verlo. Una vez tenéis el Hub instalado, tendréis que ir a una sección, que es la que se llama Installs, las instalaciones, y aquí es donde se instala en donde vamos a estar trabajando en Unity, que es el Unity Editor.
00:20:14
De este hay muchas versiones, y por ejemplo podéis dar a Instalar Editor, y aquí os salen algunas versiones. Yo sí que os he pedido que os instaléis una versión concreta, que es esta que tenéis aquí, la 2023-48, y cuando vayáis a instalar no la encontraréis aquí por defecto, tendréis que ir a Archivo.
00:20:36
Archivo dice, en Archivo, visita nuestra página de Archivo, y dentro de esta página, que van juntando todas las versiones de Unity, que sea más antigua no significa que no se siga revisando, como podéis ver la que vamos a instalar es de este año de mayo, sí que es verdad que algunas opciones cambian, a veces a mejor, a veces a peor, a veces más estable, menos estable, pero de momento esta es la que mejor nos va a venir a nivel de funcionalidades.
00:20:55
Si más adelante en algún tema tenemos que subir de versión, lo haremos, y sería también desde este archivo de versiones, de la misma forma. Yo por ejemplo os he dicho que instaléis esta versión, la 3.48. Si le dais a Unity Hub, yo ya la tengo instalada, pero me saltará, os pediría instalarla. Se pueden tener varias versiones de Unity.
00:21:22
Imaginaos que yo quiero tener también la 2022 3.11. Si nos metemos en Unity Hub, de pronto va a salir aquí lo que se llaman los módulos. Los módulos son extensiones o partes de plugins, vamos a decirlo, que son necesarios para ciertas acciones.
00:21:43
Y una de ellas es que tenemos que tener instalado lo que se llama el IDE, que es el entorno de desarrollo, que es donde vamos a hacer nuestros scripts, la programación, que es a través de otro software que se llama el Visual Studio. Lo mismo, aquí lo actualiza el 2022, os puede salir cuando instaléis la versión que yo os he comentado antes, la 2019 esa, marcarla e instalarla, porque es importante, es parte esencial del trabajo que vamos a hacer.
00:22:03
Luego, cuando tengamos varias versiones, al lanzar los proyectos, aquí solo tengo una, pero aquí se pueden lanzar en varias versiones. ¿Por qué os pido que abráis quizá una anterior? Porque primero, hay assets que van a ser más compatibles con una versión anterior y también puede suceder al contrario, que tengamos un asset que nos requiera subir, pero en principio no debería ser el caso con lo que vamos a ir haciendo.
00:22:30
Vale, Jesús, gracias. ¿Qué estaba diciendo? Ah, bueno, que cuando creemos un nuevo proyecto, importante, aquí si solo tenemos una versión instalada, pues solo nos pondrá esta, pero es muy importante antes de lanzar el proyecto, escoger la versión en la que queramos trabajar y en las tareas os lo iré diciendo. Esta tarea hay que hacerla en esta versión. Importante marcarla, porque luego cambiarla puede traer problemas.
00:22:59
No sé si hasta aquí alguno había intentado, ya lo tenéis instalado, por ver un poco en qué punto estáis.
00:23:26
Vale, Daniel, como te había dicho, eso sí, desde la propia web de Unity ya podéis ir bajando el hub. Vale, pues os diría que lo fuerais haciendo ya y fuerais ya intentando hacer la tarea de, sobre todo, de la unidad 1, que es donde se ve si lo habéis instalado bien o no, porque cuando empezáis a hacer cosas, si van surgiendo problemas, pues es donde se va.
00:23:32
Continúo. Lo suyo es que lo vayáis siguiendo en el material de contenidos. Una vez tenéis aquí el hub con la versión ya instalada del editor, eso es esencial, tener al menos una versión del editor instalada. En este caso, esta es la que os pido nuevamente.
00:24:02
Que, por cierto, veis que aquí tiene una etiqueta LTS. No todas las versiones tienen esto de LTS. Esto significa Long Term Support, es decir, como soporte a largo plazo. Estas versiones son las más recomendables porque son, como ya os enseñé antes, las que siguen revisando.
00:24:21
Aunque ponga 2020, sí es que se siguen revisando. Simplemente que siempre es más aconsejable tener una versión LTS, que hay varias, que una que no lo sea. Luego, a la hora de generar un proyecto, cuando empecéis vuestro primer proyecto, os van a salir aquí varias plantillas.
00:24:39
Y vuelvo a decir, son plantillas. Luego, aunque cogiéramos una 2D, podríamos hacer un proyecto 3D, pero exigiría que instaláramos lo que se llaman paquetes. Os enseño aquí, por ejemplo. Este template justo no tiene paquetes, pero el de 2D sí tiene paquetes.
00:25:01
Vais a ver que tiene unos paquetes. Los paquetes en Unity son funcionalidades, como plugins nuevamente, que en este caso son necesarios. Para hacer juegos 2D tiene que haber un gestor de sprites. Como estos paquetes, al instalarlos, ocupan espacio en el disco duro, hay distintas plantillas, porque si no vas a usar nada de 2D, ¿para qué te van a instalar todos los paquetes de 2D?
00:25:17
Atención, ya vienen bien catalogados, pero aquí vais a ver las plantillas y aquí se pueden ir filtrando las core. Si queremos hacer algo para realidad virtual, que vais a ver que en los paquetes tienen unos cuantos enfocados a realidad aumentada, virtual, etc. Esto de momento no nos va a interesar.
00:25:44
Si vamos a hacer un proyecto de 3D, habría que escoger esta. Es importante al empezar un proyecto, escoger bien el template, la versión. Si a lo mejor queréis trastear escenas de prueba, por ejemplo, estas son para tener flujos de render más avanzados. Esto ya lo veremos. Hay una sección con proyectos que te instalas este proyecto y te va explicando cómo está hecho, te deja customizarlo.
00:26:07
De momento, para empezar de cero hacia el propósito que queramos, se usarían las core. Estas están catalogadas como core. Imaginaos que queremos hacer un proyecto de 3D, como de hecho se os pide en la tarea de la unidad 1. Tendréis que poner un nombre a este proyecto, que es básicamente la carpeta que va a tener todo el contenido del proyecto.
00:26:34
La voy a llamar prueba, tutorial inicial, cualquier cosa. Y aquí es donde se define en qué parte del ordenador, del disco duro, se va a guardar. Yo, por ejemplo, voy a poner en el escritorio, por tenerlo a mano. Voy a escoger que se guarde ahí, en la carpeta del escritorio.
00:26:57
Una vez lo tengamos, en principio, en la versión que queremos, está en 3D, con su nombre y en una ruta. Creamos el proyecto. Esto va a tardar, vais a ver que en Unity, ahora no lo estáis viendo porque tengo otro monitor, pero saldrá, aquí os lo muevo, que creando el proyecto, abriéndolo, Unity es un software que tarda a veces minutos.
00:27:22
Según el número de paquetes que tengáis, tardará más o menos, porque ahora mismo, ahora os enseño la carpeta, lo que está generando Unity es este proyecto, en esta carpeta que os he indicado, vais a ver que ya por defecto genera un montón de subcarpetas y directorios, etc.
00:27:46
Entonces, esto se toma un tiempo. Cuantos más paquetes tenga que incluir, sigue cargando. Este ordenador no es especialmente lento y veis que tarda, así que paciencia. Voy a esperar a que termine. Esta es vuestra primera vez, los que no la hayáis instalado, imagino que veis la interfaz de Unity.
00:28:02
A ver, ¿hasta aquí alguna duda? A ver si vamos aprovechando.
00:28:25
Bueno, no sé si estáis por ahí o no.
00:28:29
Hay otra cosa que he dicho, que es que las tutorías se grabarán, también, es decir, se irá más allá o menos, si vais haciendo las tareas y también, pues vais preguntando. Lo digo que es importante, es decir, los contenidos van a estar, pero lo que importa es que no vea a nadie contestar.
00:28:41
Pues estamos aquí en la interfaz y os voy a enseñar, antes de seguir con Unity, la carpeta que he generado. Voy a cerrar todo, vamos. Cerrar es ocultar.
00:29:03
Si nos metemos aquí, 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.
00:29:13
Aquí vais a ir viendo, ya iremos viendo qué uso tienen algunas carpetas, 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, pero de primeras vais a tener que compartirme esta carpeta.
00:29:35
De momento tenemos aquí un mejunje de carpetas grande. Si queremos mover el proyecto, habrá que mover esta carpeta entera, mover solo una de estas carpetas descontextualizadas no sirve para mucho.
00:29:51
Prueba tutorial inicial y vais a ver que aquí el proyecto, lo que es el conjunto de proyectos, se llama prueba tutorial inicial. Os pondrá aquí para qué se está construyendo, esto ya veremos. Ahora mismo está configurado para que si este juego se exportara esté destinado a PC, a ordenador básicamente.
00:30:08
Y esta es la versión que estáis usando con la licencia personal, que es la que os he dicho que seleccionáis si os lo piden. Lo mismo, si no habéis visto todavía el tema vais a ver que la interfaz, como sucede en todos los softwares que iréis viendo, se compone de una cantidad de paneles que son movibles.
00:30:29
Es decir, podemos estar configurando el espacio de trabajo de manera totalmente flexible, arrastrando. Muy similar, por ejemplo, a lo que haréis con las aplicaciones de Adobe. En el tema 1 se explica un poco con detalle qué es cada uno de estos paneles. Os animo a que lo veáis y lo vayáis usando.
00:30:53
Recordad también cuando instalamos el Unity, el editor en Installs, que había que instalar el Visual Studio. Imaginaos que no marcasteis el tic de instalar Visual Studios y decís, pues no tengo Visual Studio y ahora lo vamos a necesitar.
00:31:16
Si vais a Installs, vais a ver que cada versión que hayamos instalado tiene una tuerquecilla aquí, que es para mostrar los módulos. Si damos a Add Modules, nos vuelve a aparecer esa ventánica, porque a lo mejor en cierto momento vamos a hacer una aplicación o un juego para Android. Pues habrá que instalar esto y se irá sumando. Lo mismo, no se instala todo de golpe, porque fijaos qué peso tiene, pues si no se va a usar, pues peso que nos vamos ahorrando.
00:31:36
Pero siempre se puede volver. Veis que por defecto, antes ponía 2022, la 2020 va a tener una versión de Visual Studio que es la 2019. Yo ya lo tengo instalado. Hay una cosa importante cuando estemos luego trabajando, que es que cuando vayamos a tocar el código, que ahora hacemos algunas pruebas, vamos a tener que decirle qué IDE, qué entorno de desarrollo es el que queremos emplear, que será ese Visual Studio.
00:32:01
Pero por defecto no viene vinculado. No os voy a hacer un repaso, para eso leed la lección 1. Iré viendo un poco más en detalle y también hay algún vídeo de Álvaro que os cuenta más qué hace cada una de las secciones. Lo podéis ver ahí, creo que está bien explicado. Es algo que tenga más complejidad.
00:32:30
Pero es importante, aunque también se ve que posteriormente para usar Scripts habrá que ir a la sección de Edit, Preferencias y algo importante, la sección de External Tools. Aquí es donde le decimos cuál va a ser el editor de Scripts que vamos a usar.
00:32:52
Si habéis hecho ya la instalación de Visual Studio, os aparecerá aquí. Si no, lo podéis buscar en vuestro ordenador, ver dónde está el ejecutable de Visual Studio y lo asociéis ahí. Según lo pongáis, os recomiendo que le deis a esto de Regenerar Project Files, porque a veces hay cachés que se quedan ahí por detrás y puede dificultar algo.
00:33:12
Esto es necesario para que luego cuando usemos Scripts directamente nos asocie esta versión de Visual Studio para hacer el código que nos va a permitir controlar prácticamente todo lo que vayamos diseñando y desarrollando.
00:33:32
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. En principio la que deberíais instalar es Visual Studio Unity Extension.
00:33:52
A ver si sale una foto de lo que os estoy comentando. Va a salir una ventana que va a empezar a mostrar muchos paquetes y tendréis que buscar una que pondrá herramientas para Unity. Esta es una versión más antigua, a ver si encuentro otra foto. Eso lo instaláis también.
00:34:11
En principio no debería ser esencial, pero sí que ya os incorpora bastantes funcionalidades que necesitaréis o que vendrá bien.
00:34:32
Esto lo tenéis en los apuntes. Cuando salga esta desplegable de workloads, seleccionad Game Development con Unity y lo instaláis también.
00:34:42
Esto irá saliendo solo a medida que vayáis instalando lo que hemos visto.
00:35:10
¿Hasta aquí qué tal? Hubiera sido genial que ya lo hubierais intentado hasta aquí. ¿Alguno sí que lo tiene? ¿Alguno ha empezado a intentar alguna de las dos tareas que hay?
00:35:15
Vale, pues tampoco voy a avanzar mucho porque prefiero que vayáis viendo el tema y en la próxima tutoría sí que avanzamos más.
00:35:31
Pero básicamente, importante, y esto lo digo porque es uno de los errores iniciales que sucede, en el panel de jerarquía hay un menú de Windows que es donde configuramos el espacio de trabajo, la distribución de paneles del software.
00:35:43
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 esta pestaña, no la tengo, pues siempre se puede abrir desde paneles y decís que queréis la consola.
00:36:03
¿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.
00:36:27
Tened en cuenta que los layouts son estos espacios de trabajo que se pueden ir abriendo. Aparte, si solo queréis abrir un panel, pues aquí vais a ver que hay muchos paneles y la consola la podría haber recuperado dando aquí, un poco como en Adobe.
00:36:43
En esta sección se van abriendo los paneles. Por ejemplo, uno de animación, el Animator, pues lo abro y aquí tengo otra pestaña que es donde iremos metiendo los distintos estados de animación. Ya veremos qué es esto.
00:36:59
¿Hasta aquí alguna duda? Voy a empezar con otra cosa. Veréis que por defecto sale este fondo. Esto evidentemente se podrá ir cambiando y hay dos paneles, escena y juego. En escena es donde nosotros vamos a ir operando, disponiendo los elementos.
00:37:14
Podremos navegar. Lo digo porque si de pronto veis un fondo que intentáis navegar con los atajos de navegación y no se mueve es porque estáis en la ventana juego, que se parecen según la posición de la cámara.
00:37:36
Luego aparecen gizmos, como estos elementos que se ven aquí, la rejilla, pero más o menos se parecen y podéis decir, si esto no va. Eso es porque estáis en una ventana destinada a testear el juego.
00:37:51
Veis que incluso se pueden separar y aquí tenemos la que sí nos podemos mover y otra que solo nos moveremos cuando le demos al play para probar el juego. Importante que las distingáis para no tener conflicto de que no responde el programa.
00:38:02
En el panel jerarquía es donde vamos a ir metiendo los elementos, como en Maya el Outliner o las capas en Photoshop. Voy a añadir un cubo. Se me ha creado un objeto cubo.
00:38:17
Está aquí con su gizmo de las direcciones que yo podría mover, subir o bajar, bastante similar a un editor de 3D estándar. Cuando seleccionamos un objeto y vais viendo que a medida que voy seleccionando objetos en esta jerarquía, aquí van cambiando los menús, el inspector lo que hará es mostrar las opciones asociadas a ese objeto.
00:38:33
Por ejemplo, el cubo trae ya unos cuantos de los que se llaman componentes y los componentes, si voy recogiendo todo esto, son fragmentos de código que están configurados para que cumplan funciones.
00:38:59
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:39:12
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, si voy desplazando el objeto en X o lo desplazo en cualquier eje, se ve reflejado aquí.
00:39:21
Esto es el componente llamado transform. Cuando luego por código queramos cambiar algo del transform, será el componente con este nombre. Si queremos cambiar algo de un BoxCollider,
00:39:38
tened en cuenta que el componente se llama BoxCollider. Y aquí, si quisiéramos ir metiendo más funcionalidades, tenemos este Añadir componentes, que hay unos cuantos.
00:39:47
Por ejemplo, un RigidBody, lo agrego y ahora hay otro componente que tiene unas cuantas secciones, unos cuantos parámetros posibles, desplegables, etc.
00:39:58
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, todo esto va a ser accesible mediante código.
00:40:09
Aquí es la versión asequible, como habéis hecho normalmente en todos los softwares que usáis, pero detrás hay código. Aquí lo que vamos a hacer es que vamos a poder alterar el código
00:40:23
directamente en nuestros scripts escribiendo. Cuando queráis, por ejemplo, cambiar la masa de este RigidBody, tened en cuenta que hay un componente que se llama RigidBody
00:40:34
y luego un parámetro que se llama masa. Sabiendo esto, ya sabremos acceder. Si empezáis a leer el tema cero, el inicial, que es bastante árido, sobre todo cuando comencéis,
00:40:47
va a hablar de programación orientada a objetos, de clases, de cosas así. Las clases, al final, son fragmentos de código que se recogen bajo un nombre.
00:40:59
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.
00:41:16
Cuando queramos recurrir a este componente será lo mismo que recurrir a una clase. Voy a poner un ejemplo. Cuando hago un script nuevo, y para eso os presento el panel Project,
00:41:27
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,
00:41:40
todo digamos que se va a centralizar en estos assets. Es importante, si os fijáis en la estructura de carpetas, y vuelvo a abrir lo que nos ha generado antes,
00:41:50
vais a ver que algunas de estas carpetas son iguales, por ejemplo assets o packages. Si nos metemos aquí vais a ver que dentro de assets hay una carpeta que se llama escenas,
00:41:59
que casualidad se llama igual, o en packages si me meto voy a tener unas cuantas carpetas, aquí no se ven porque están instaladas de otra forma,
00:42:13
por código también, pero digamos que están ahí dentro también, cuando se vayan incorporando más paquetes ahí se verán. Incluso los Project Settings que se pueden ir alterando,
00:42:24
como aquí, se van guardando todas esas configuraciones en esta carpeta. Por ejemplo en assets vais a ver que dentro de assets ya hay lo que se llama una escena.
00:42:34
Esta escena se llama Sample Scene. Cuando no veáis bien el nombre, tened en cuenta que tenéis aquí una palanquita que os permite, incluso si lo lleváis al mínimo,
00:42:45
que os lo ponga en forma de verlo en vista. Si le dais a la tecla control y a la ruleta del ratón también podéis ir haciendo como zoom.
00:42:56
Esto para cosas como el Prefab, que el icono es muy representativo, es importante conocerlo. Y veis que hay una escena ya por defecto que se llama Sample Scene.
00:43:03
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
00:43:15
lo que es, son lo que se podrían llamar pantallas o niveles en el juego. El nivel 1, luego nos pasamos a ese nivel y vamos al nivel 2.
00:43:27
Todo lo que tengamos aquí dentro será la escena 1. Podremos ir creando más escenas para ir cambiando entre una u otra. O incluso se podrá abrir una estando en otra
00:43:36
para ampliar un mundo. No se carga todo, sino primero una parte del nivel y luego se va ampliando el mundo cargándose más escenas.
00:43:46
Esto es importante porque, si veis este asterisquito, significa que esta escena no está guardada. También aparece aquí arriba.
00:43:52
Si yo le doy al CTRL-S, básicamente todo lo que hemos hecho en esta escena se ha guardado. Importante, hay que ir guardando las escenas.
00:44:00
A lo mejor estamos trabajando... Puedo crear aquí, con clic derecho, otra escena y llamarla nivel 2.
00:44:09
Y me meto en el nivel 2 y veis que cuando me meto en el nivel 2, aquí paso al nivel 2 y está virgen otra vez. No tiene el cubo que teníamos antes.
00:44:20
A lo mejor aquí creo una esfera por poner algo. Cuando yo voy al sample 2, te va a pedir guardar porque hasta que no guardes, no te deja irte.
00:44:32
Importante, para ir cambiando de nivel, damos doble clic y podremos ir variando. Esto ya lo veremos más avanzado.
00:44:44
Pero que sepáis que las escenas son como los niveles y siempre hay que estar trabajando dentro de una escena. Por defecto nos crea esta sample,
00:44:50
pero podemos decirle que la renombremos a nivel 1 por tenerlo así. Va a cambiar en el Asset Stings, nos está diciendo que en esta carpeta van a ir cambiando el nombre.
00:44:58
De hecho, ya si nos metemos, veréis que dentro de la carpeta de escenas, que es esta aquí, ya hay dos niveles.
00:45:12
Veréis que todo lo que se vaya haciendo en este panel de proyectos luego se ve reflejado en esta carpeta.
00:45:18
Ya he creado el nivel 2 y vais a ver también que asociado a cada elemento va a haber otro archivo llamado igual con finalización en punto meta.
00:45:23
Estos archivos no los borréis, son metadatos. Son como archivos que genera automáticamente con los cambios que vayamos haciendo.
00:45:33
Que no os asuste que no veáis aquí esos archivos porque están destinados para trabajar por debajo.
00:45:39
Nosotros no lo vamos a manipular directamente, pero veis que se va viendo reflejado.
00:45:45
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.
00:45:54
Vuelvo a los assets, que aquí ahora mismo solo tengo esta carpeta de escenas.
00:46:02
¿Hasta aquí qué tal? ¿Me estáis siguiendo o está habiendo muchas dudas?
00:46:07
Cuando leáis, si hubierais leído, seguramente me seguiría bastante bien. Si no, estaréis un poco aletargados.
00:46:14
Sí, hay muchas opciones porque tendréis que ir manejando. Cuando os pongáis con las tareas es cuando de verdad iréis teniendo que trastear con todo.
00:46:20
Exacto, de momento es muy parecido.
00:46:28
Igual que tenemos esta carpeta de escenas, ahora podemos crear otra carpeta.
00:46:39
Podemos hacer todas las carpetas que queramos y aquí vamos a hacer una, y esta es buena práctica,
00:46:47
una carpeta que es la que tiene los scripts. Los scripts básicamente van a ser los fragmentos de código con los que nosotros vamos a dar instrucciones.
00:46:51
Tanto automáticas de que se mueva un objeto, es decir, en Unity siempre hay un panel de animación muy parecido al típico que veréis en Maya con keyframes, etc.
00:47:00
Claro, pero eso va a ejecutar animaciones preechas. Lo bueno y diferente de Maya con respecto a esto es que también aquí
00:47:11
lo que vamos a querer es que los elementos interactúen a medida que nosotros vamos introduciendo inputs en el teclado, en el ratón, en el móvil o donde sea.
00:47:17
Eso lo tenemos que hacer mediante scripts y mediante programación. Sí que hay, esto no lo vamos a ver en el curso, porque aparte de ser más avanzado,
00:47:28
es una forma menos controlable, hay lo que se llama el Visual Scripting, que es una especie de paquete, esto lo digo para que os suene,
00:47:37
de paquete que se instala y os permite hacer todas las acciones que se pueden hacer por código, o muchas, no todas, no es tan customizable,
00:47:45
mediante nodos. Los nodos seguramente ya también los habréis visto en algún momento en otro software, mediante nodos.
00:47:53
Pero es verdad que primero para saber qué estás controlando con esos nodos tienes que saber a qué hacen referencia y básicamente es lo mismo que la programación.
00:48:01
Esto os puede simplificar cosas pero es bastante más avanzado. Si alguno a lo mejor habéis usado otro motor de render como Unreal, tiene lo que se llaman los Blueprints
00:48:08
y esos Blueprints son como fragmentos de código muy similar a esto del Visual Scripting y están más desarrollados aún que en Unity y hay gente que usa eso en nodos para programar.
00:48:19
Pero llegados a ciertos puntos se puede encontrar con límites o que no puedan customizar lo que quieran, que es lo que vamos a intentar hacer aquí todo lo posible.
00:48:30
Entonces para hacer esos códigos básicamente tendremos que generar scripts. En esta carpeta de scripts me meto, vamos a crear, y este momento es importante,
00:48:41
nuestro primer script, una tarea que vais a hacer de manera muy recurrente. Para crear un script se puede hacer con clic derecho, crear, como casi todos los elementos que vamos a crear en el panel proyecto,
00:48:50
pues estarán dentro de esta opción de crear porque hay un montón de cosas. Y aquí podéis generar lo que es un C Sharp Script. Esto de C Sharp o C almohadilla, no sé,
00:49:02
es el lenguaje de programación que se usará en Unity. En otros, por ejemplo, en Unreal se usa uno que se llama C++, en este se usa C Sharp.
00:49:12
Cada uno es programación con unas reglas y una sintaxis diferenciadas. Los Blueprints de Unreal son de Unreal, aquí está este Visual Scripting,
00:49:23
pero ya os digo, aquí no lo vamos a ver. Si queréis usarlo pues hay mucha documentación, etc. Pero ya te digo que a lo mejor para ciertas cosas básicas puede funcionar,
00:49:37
pero de todos modos hasta que no sepáis bien cómo se configura un Rigidbody, por decir algo, tampoco vais a entender muy bien cómo se configura aquí.
00:49:49
Que no es tan directo, esto hay que tener una base de programación, por eso de momento como si no existiera. Yo de hecho no lo he usado nunca.
00:49:56
Pero bueno, sí que es una forma más visual de ir configurando las cosas, pero en esencia es lo mismo que si se hace por código.
00:50:05
Y ya os digo, si imagináis que queréis hacer algo que no está en esta cajita, pues vais a tener que meteros en el código igual, así que de momento vamos con los Scripts.
00:50:15
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:50:24
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.
00:50:35
Antes os he dicho, voy a poner ya el nombre, y luego os sigo explicando. Voy a poner esto, Script 1, así con letras.
00:50:45
Fijaos además, cuando escribo este nombre, que no ponemos espacios, esto lo pone en los temas, que no ponemos espacio, en el nombre de una clase,
00:50:54
de un método, hay que empezar con una mayúscula, se escribe luego en minúsculas, y si vamos a usar otra palabra en vez de dejar un espacio,
00:51:02
es todo seguido, y lo vamos distinguiendo con las mayúsculas. Y una vez ya tengamos el nombre, Script 1, pincho fuera, donde sea, y se guarda.
00:51:08
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:51:19
Es fácil, tampoco tiene mucho misterio. Pero de primeras para no liarnos, y que no dé error, tened en cuenta que el nombre en principio
00:51:28
solo se puede poner una vez y ponerlo bien. Ahora os explico el porqué. Tened en cuenta lo que os he dicho, que teníamos un montón de bloques
00:51:38
de funcionalidades. Por ejemplo, el Rigidbody para dar atributos de gravedad a nuestros objetos, o el BoxCollider sirve para que se detecten las colisiones
00:51:47
en el área de este cubo, por ejemplo. Si nos acercamos al cubo y lo pongo en otra vista de Shading, por ejemplo WideFrame, cuando nos acerquemos
00:51:55
y le damos aquí a ver por qué no está saliendo.
00:52:05
Van a salir...
00:52:13
Este cubo viene por defecto, pero la malla que muestra tiene unos límites que sirven de límites de las colisiones y es independiente de la geometría.
00:52:30
Cada una de estas funcionalidades, si no tuviera el BoxCollider, no detectaría las colisiones. De hecho, como un ejemplo rápido.
00:52:40
Este cubo verde es el Collider. De hecho, veis que cuando lo activo y lo desactivo es el Collider. Aunque la geometría esté ahí, si el Collider está aquí,
00:52:50
esto lo veremos en un tema sólo de física. Pero si no configuramos dónde tienen que estar las colisiones, actuará de una forma diferente.
00:52:58
Si vemos aquí, podemos activar y desactivar este Collider. Como ejemplo, hemos puesto un componente, una funcionalidad que tenga gravedad.
00:53:10
Cuando yo le doy al Play, ejecuto el juego, vais a ver que este objeto, y lo estamos viendo en la escena de juego,
00:53:19
cuando le damos al Play nos vamos a la sección de juego. Podemos tener abiertas las dos, porque habéis visto que aunque yo estaba viendo escena,
00:53:28
de pronto me salta a juego que está viendo lo que ve la cámara principal. Entonces, a veces queremos seguir, aunque esté en Play el juego,
00:53:39
vamos a querer seguir tocando nuestros objetos. De buena práctica tener el panel de escena y el panel de juego los dos abiertos.
00:53:46
Ahora que sí que se va a ver, aunque esté fuera de cámara, yo podría llevar el objeto delante de cámara, a ver dónde tenemos la cámara.
00:53:55
Lo tenemos ahí y no se ve porque está por detrás de la cámara. Voy a ponerlo aquí, lo bajo y ya se empieza a ver el objeto.
00:54:02
Estáis viendo que aquí, si pincho en la cámara que viene por defecto, sale el frustrum. No sé si es un término que habéis estudiado en otros módulos,
00:54:15
que es la representación visual de qué está captando la cámara. Está apuntando para ahí y hasta que el cubo no está dentro de ese frustrum,
00:54:24
no se ve. Tenemos por un lado en la ventana juego la vista de ese juego y aquí en escena donde podemos navegar.
00:54:33
Cuando demos a Play, como ese cubo tiene el Rigid Body, vais a ver que por defecto va a hacer...
00:54:42
y se va a ir cayendo con la gravedad que tenga. Si yo, por ejemplo, con estos puntitos que tengo aquí, quito este componente,
00:54:49
vais a ver que el cubo no se cae porque no se le está aplicando esta fuerza de la gravedad, de fuerza física.
00:54:57
Entonces, cada uno de estos componentes, este nombre que tiene aquí, se corresponde con...
00:55:04
cuando estudiéis la parte de Programación Orientada Objetos de la unidad 0, que vais a decir,
00:55:13
¿qué árido es esto? Básicamente, cada objeto o clase es el nombre con el que se ha guardado a cada una de estas funcionalidades.
00:55:18
Voy a ir más allá y lo vais a entender mejor. Esto es importante para ir haciendo en la cabeza.
00:55:29
Cuando abramos el script, tenemos aquí el script esperando algo. Para abrirlo, recordad que tiene que estar asociado
00:55:36
en External Tools el Visual Studio correspondiente que lo va a gestionar. Entre el 2019 y el 2022,
00:55:43
habrá diferencias para programadores avanzados. Para nosotros es lo mismo, pero esta versión de verdad,
00:55:50
que la que yo os digo 2020, la asociada que instala como módulo por defecto es la 2019.
00:55:54
Para abrir, doble clic sobre ese botón. Se os abrirá una ventana de Visual Studio, cargará y os abrirá esto por defecto.
00:56:01
Esperamos un poco, que sobre todo el primero tarda más. A ver que lo tengo con bastante zoom.
00:56:09
Aquí podemos cambiar un poco el zoom. Bueno, no voy a dejar 150. Yo creo que se ve bien, ¿verdad?
00:56:15
¿Qué tal? ¿Hasta aquí me vais siguiendo? Sé que voy rápido, pero con el tema y tal leyéndolo,
00:56:21
un poco voy hablando de estas cosas. ¿Hasta aquí qué tal? ¿Me vais siguiendo? ¿Se ve bien el texto?
00:56:27
Sí, vale. Esta parte de código, que es de la forma que viene planteada de primeras, pues tranquilidad,
00:56:32
esto lo iremos viendo. Pero vais a ver que hay una cosa que no suena, que es este script1,
00:56:43
que se llama así, igual que el script que hemos creado aquí. Se llama igual porque cuando creamos un script,
00:56:48
lo que estamos generando es una clase nueva, un objeto nuevo de programación.
00:56:55
Aquí vais a ver, aunque todavía no sepamos muy bien qué quiere decir todo esto, que se ha creado esto.
00:57:00
Aquí hay una clase que se llama script1. Para que este objeto que está en Unity se asocie bien al código
00:57:07
que estamos tocando en Visual Studio, se tiene que llamar exactamente igual.
00:57:14
Si yo aquí, por ejemplo, digo... Lo voy a hacer aquí. Me he equivocado del nombre y no, yo lo quería llamar
00:57:19
disparar, porque es el script que vamos a usar para disparar y lo guardo. Nada te va a dar error,
00:57:25
pero como aquí vuelvo al Visual Studio... De hecho, mira, ya no lo está reconociendo y algo pasa.
00:57:31
Yo aquí, cuando abra, le doy doble clic. Como esto se va a seguir llamando, que no se va a actualizar solo script1,
00:57:39
todo lo que vayamos haciendo a este código no se va a traducir bien. De hecho, cuando clicáis aquí vais a ver
00:57:46
que sale el mismo código y sigue poniendo script1. Vais a ver que no se van a relacionar, os va a dar fallo.
00:57:52
Por eso, si se cambia el nombre aquí, hay que ir con mucho cuidado aquí y cambiar el nombre de la clase.
00:57:58
Se tienen que llamar siempre igual. Cuidado con las líneas, con los saltos. Disparar.
00:58:02
Luego, importante, y esto también pasa en todos los softwares. Igual que os he dicho antes, aquí hay una estrellita,
00:58:10
un asterisquillo, que nos indica que no están guardados los avances, los cambios que hemos hecho.
00:58:16
Para guardar, como siempre, Control-S. Le he dado y se ha guardado. Para que los cambios que yo vaya haciendo
00:58:22
en el código también se vean reflejados. Ahora, cuando clico aquí, ya sí pone disparar. Para que se vean reflejados.
00:58:28
De hecho, si yo pongo aquí disparar2 y vuelvo a Unity y no he guardado, aunque yo le dé, aquí no se ha actualizado.
00:58:34
Así que, importante, todo cambia. Y vuelvo a poner el nombre que tiene el script. Todo cambia.
00:58:42
Todo cambia, que vayamos haciendo Control-S, para que no dé problema.
00:58:47
Cuando vayamos viendo ejemplos de qué se hace con scripts, vais a ver que pasa otra cosa.
00:58:53
Igual estáis aquí diciendo, esto ya lo veremos, pero transformPosition es igual a las coordenadas que doy,
00:58:59
dónde tiene que estar la posición es, esto ya lo veremos, pero aquí estoy diciéndole que al empezar el juego,
00:59:08
el objeto se ubique en las coordenadas 0, 0, 0. Y esto, vamos a ver, que hemos guardado y todo eso,
00:59:19
pero yo, si voy al objeto, importante, para hacer zoom al objeto y verlo de cerca, en el panel de escena podéis
00:59:28
seleccionarlo y darle a la tecla F o, me vuelvo a alejar, darle doble clic al objeto y os acerca a ese objeto.
00:59:36
Todo esto lo ponen los contenidos igualmente. Las coordenadas que tiene ahora mismo este cubo,
00:59:46
las voy a poner en las que no sean 0. Por ejemplo, 0, 62, 0, 5, 17, 52. Es decir, muy alejados del 0, 0, 0.
00:59:52
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.
01:00:02
Le doy al play y el objeto no se ha movido en absoluto, sigue en las coordenadas que estaba. ¿Por qué?
01:00:12
Y esto es la lógica que hay que seguir también. ¿Por qué? Primero, porque ¿en qué momento hemos dicho
01:00:19
que el script que estamos escribiendo se asocia a este cubo? Podría estar hablando de la cámara o de la luz que viene por defecto.
01:00:25
Hay que pensar siempre que queramos que un script se aplique a un objeto, a un GameObject. Aquí todo se llama GameObject,
01:00:32
todos los cubitos estos, todos los elementos que veis que tanto la luz como las cámaras suelen tener el mismo iconito,
01:00:38
algunos variarán, pero de momento todos son GameObjects. Hasta que no le asociemos este script, que es otro componente,
01:00:45
no va a saber que hay que aplicarlo. ¿Cómo se aplica este script a este objeto? Pues lo seleccionamos y el script que queramos,
01:00:53
que puede haber más, pues este disparar, que en realidad sirve para que se reubique la posición, lo arrastramos como componente.
01:01:02
Y veis que se añade como componente. Así que el cubo sabe que tiene un script que dentro tendrá código tal, que en este caso es que se reubique.
01:01:07
Y si le damos al Play ahora, vais a ver que al comenzar el juego se ha movido y si selecciono al cubo está en el 000.
01:01:17
Hasta que no se aplique este script en el objeto que lo quieras, hasta que no asociemos el componente, pues nadie sabe a quién tiene que aplicarse este script.
01:01:25
Importante, que son como los primeros errores que surgen. Importante también, para que vayáis viendo la lógica, que al meterlo es como otro componente,
01:01:39
es decir, otro objeto con otra clase, que en este caso se llama Disparar, que es la que hemos puesto aquí.
01:01:47
Y vais a ver también que si yo este nombre lo llamo Disparar, lo voy a poner MoverObjeto, recordad que no se pueden poner espacios.
01:01:53
Todo seguido y con lo que vemos la separación de palabras es con las mayúsculas.
01:02:04
Vais a ver que primero ya como que me está dando aquí un fallo raro de que no me lo reconoce, a veces no lo hace.
01:02:10
Y cuando voy a cubo no está funcionando porque no está detectando qué clase es a la que estamos hablando.
01:02:16
¿Por qué? Nuevamente, porque no está asociado el nombre del objeto, que es MoverObjeto, con la clase que está gestionando este script.
01:02:24
Por tanto, como he vuelto a cambiar el nombre, aquí con cuidadete, MoverObjeto y guardamos.
01:02:32
Y ahora cuando volvamos a Unity, pues recargará y ahora sí que sí, volvemos a cubo y ahí está MoverObjeto.
01:02:38
Y fijaos cómo es que aquí nos ha puesto un espacio. Esta es la forma en la que el editor, el inspector,
01:02:46
lo visual que vamos viendo aquí, cómo se reflejan todos los parámetros, nos lo intenta hacer fácil y amigable,
01:02:54
tan amigable que aunque a nivel de código hay que escribirlo así, porque si no da fallos,
01:02:59
aquí nos lo va separando cuando detecta que estamos poniendo hasta mayúsculas.
01:03:05
Y recordad, os he dicho, cada componente es una clase, un objeto, una clase, un objeto.
01:03:10
Estos que vamos añadiendo aquí son ya clases como esta, que se llamarán BoxCollider.
01:03:15
Ahí en algún punto si buscáramos un código, un script que se llama BoxCollider, que lo han configurado a otro iconito
01:03:22
y ciertos parámetros, pero al final es otro código cuya clase es BoxCollider.
01:03:28
Entonces, pensar en cada uno de estos apartados o de los componentes, por ejemplo,
01:03:33
yo que sé, cualquier cosa, el Physics Raycaster, pues esto es otro componente.
01:03:38
Hay otro componente que es la cámara. Si nos vamos metiendo en el código, llegaremos a la cámara.
01:03:44
Hasta aquí, ¿qué tal? Más o menos.
01:03:50
Muchas cosas, ¿no? Imagino. Pero bueno, poco a poco iremos viéndolo.
01:03:58
Si veis aquí hay bastantes... muchas cosas, sí, sí. Y, Saúl, muchas más que va a haber.
01:04:03
Este módulo es complicado. Bueno, yo hago un inciso también para procesar.
01:04:10
Yo no soy desarrollador de videojuegos de profesión, nunca lo he sido.
01:04:15
Bueno, por cómo se asignan los módulos me toca a mí, desde el año pasado.
01:04:19
El año pasado sí que tuve que tocar por primera vez Unity y formarme.
01:04:23
Este año ya voy más suelto. Pero mi nivel tampoco llega a ser súper avanzado.
01:04:27
Entonces, creo que vamos a ver un montón de cosas, muchísimas.
01:04:32
Pero en cierto momento, si me preguntáis algo que se sale de lo que estamos viendo,
01:04:35
os intentaré responder de la mejor forma o daros otros recursos.
01:04:41
Pero no voy a negar que yo no soy desarrollador a nivel profesional.
01:04:45
Me sé todas las cosas que pueden pasar. Pero bueno, aún así vais a ver que hay muchas cosas.
01:04:49
Por tanto, creo que no se va a dar esta circunstancia, menos en cosas que planteéis muy alejadas.
01:04:55
Y tampoco soy programador. Este módulo un poco es de desarrollo, es de programación.
01:05:01
Pero tened en cuenta que somos de la familia de imagen y sonido, los profes somos de imagen y sonido.
01:05:07
Entonces, es como una programación, digamos, orientada a iniciación para gente de imagen y sonido.
01:05:11
Si alguno, que a veces pasa, es programador, pues probablemente sepa programar mejor que yo
01:05:15
y lo entienda todo mejor que yo. Entonces, bueno, simplemente para que sepáis que esto sucede.
01:05:20
Cuando... Sí, ya os digo, en el propio tema también hay un tutorial explicando esto, a lo mejor,
01:05:28
de una forma más sucinta. Y en el propio tema está todo esto.
01:05:34
Que no es que esto, si no vierais el vídeo, no sabréis hacerlo.
01:05:38
Pero sí que estoy intentando ver las primeras cosas que dan fallo o que nos vuelven un poco locos.
01:05:40
En plan, no me funciona. Por ejemplo, es que la clase del script no se llama como el objeto.
01:05:46
Que tenemos el GameObject. Vamos, el script que tenemos en Unity.
01:05:52
Aquí vais a ver que hay muchos elementos que son como lo que se llaman librerías o namespaces.
01:05:57
Qué importante, cuando os ponéis encima de cualquier elemento, en el Visual Studio,
01:06:04
tiene muchas ayudas y, de hecho, es bastante esencial.
01:06:09
Que, por ejemplo, en la primera línea vais a ver que os pone de qué tipo es este objeto.
01:06:12
Y aquí os pone namespace. Si, por ejemplo, nos ponemos en Start,
01:06:17
os pondrán VoyMoverObjeto.Start y paréntesis. Esto es lo que se llama una función.
01:06:21
En MonoBehaviour vais a ver que es una clase. Otra vez lo de clases.
01:06:26
Si me pongo en MoverObjeto, al ponerme encima, te dice esto es la clase MoverObjeto.
01:06:30
Aquí está muy claro, porque está aquí lo de clase.
01:06:33
Pero es que luego, en cierto momento, también vamos a poder recurrir a MoverObjeto sin ponerlo de clase.
01:06:36
Y está muy útil saber que esto es MoverObjeto y es una clase.
01:06:41
Aquí ya habría que hacer más operaciones, etcétera. Esto ya lo veremos también.
01:06:48
Pero que tengáis en cuenta que al poneros encima de los objetos, os va diciendo
01:06:52
Posición es de la clase Transform, un parámetro que se llama Posición.
01:06:56
Un Vector3 tiene una estructura de tres floats. Todo esto lo iremos viendo.
01:06:59
Pero que es importante. Igual que cuando vayamos escribiendo ciertas palabras,
01:07:07
nos va ayudando. A veces nos sugiere Transform.
01:07:11
Ya os diré qué hago, pero hoy no quiero ir demasiado lejos.
01:07:15
Y os va sugiriendo opciones dentro de lo que tenga lógica en el momento que estéis escribiendo.
01:07:20
Entonces es una ayuda importantísima.
01:07:26
Igual que cuando vamos escribiendo ciertas cosas, si salen estos tachados rojos, estos subrayados rojos,
01:07:29
significa que hay un error. Un error además grave.
01:07:35
Si aparece ese rojo y guardara... Esto lo he escrito al tuntún.
01:07:39
Hay un código que no sabe qué hacer el programa. Y cuando el programa se pone...
01:07:43
Hay algo que no sabe qué hacer, se pone de esta guisa, que es que sale un aviso rojo
01:07:47
y cuando intento ejecutar el juego no me deja.
01:07:52
Vais a ver que la programación en sí es muy exquisita porque con tener una letra mal escrita,
01:07:55
ya sale, por ejemplo, aquí, que se me ha olvidado poner la S.
01:08:01
Y de pronto sale este error y yo digo, ah, vale, voy a seguir.
01:08:05
Pues no os deja jugar, no os deja testear el juego, no os va a dejar avanzar.
01:08:10
Entonces, siempre que veáis este subrayado rojo, sabéis que os va a dar error.
01:08:14
Que no es lo mismo que si en cierto momento... A ver, un ejemplo...
01:08:18
Voy a poner una cosa que tampoco sabemos qué es.
01:08:23
Hacemos esto y sale un subrayado verde. El subrayado verde, como los propios colores indican,
01:08:33
significa que algo pasa, pero esto no es un error fatal.
01:08:39
Aunque hayamos declarado algo y nos dé ese error, ahora nos sale un warning que es amarillo
01:08:42
y este sí deja testear el juego, sí dejará hacer lo que haya que hacer.
01:08:47
En este caso es que ha puesto el objeto en el 000.
01:08:53
Cuando hay este tipo de subrayados verdes significa, esto ya lo veremos también,
01:08:56
que hemos declarado una variable, pero luego no se usa.
01:09:02
Es decir, que ahora mismo esta línea no molesta, pero no aporta nada.
01:09:04
No está mal escrita, sabe qué es, pero no está aportando nada.
01:09:07
De hecho, cuando nos ponemos encima, veis que os pone aquí una cosa en plan,
01:09:11
para saber qué es lo que pone en la segunda línea.
01:09:17
La variable comprobación se ha declarado, pero nunca se usa.
01:09:20
No es un problema error fatal, pero bueno, si no se va a usar, pues fuera.
01:09:23
Y todo más tranquilo. Pero los verdes se pueden dejar ahí, no hay problema.
01:09:28
Cosas que os irán surgiendo.
01:09:31
Se parece un poco, sí. Al final, todo tiene algo que ver.
01:09:33
Es bastante diferente. Se parece más a Javascript, si has tocado esa parte.
01:09:39
Pero el código, al final, es un poco así.
01:09:43
El próximo día que tengamos tutorial, me meteré un poco más en sintaxis,
01:09:47
que son estas llavecitas, para quien haya hecho HTML o lo haya visto, sabrá más.
01:09:52
Todas estas funcionalidades que van saliendo aquí, a medida que escribimos,
01:10:02
no salen de la nada. Es porque se están viendo librerías aquí,
01:10:06
que tienen un montón de configuraciones prehechas,
01:10:09
que nos permiten ir detectando parámetros.
01:10:13
Por ejemplo, hay un parámetro de sana transformación, otro de red transformación.
01:10:17
Eso es porque tenemos aquí librerías instaladas.
01:10:21
Más adelante tendremos que ir incorporando más librerías,
01:10:24
como por ejemplo Unity Engine.
01:10:28
Cuando queramos hacer gestión de escenas, hasta que no pongamos esta línea,
01:10:36
no nos van a salir, por ejemplo, estos parámetros.
01:10:42
Imaginaos que pongo aquí Scene Manager.
01:10:47
Voy a poner algo que no dé error.
01:10:51
GetActiveScene, por ejemplo.
01:11:06
Y ahora no da error. No sabemos qué es, pero vemos que no da error.
01:11:09
Importante, cuando más adelante estemos trabajando,
01:11:13
imaginaos que yo borro esta línea porque no está, veréis que da error.
01:11:16
¿Por qué? Porque no está detectando una librería que contiene la información
01:11:21
de qué hace esta orden. Importante.
01:11:25
Por defecto, vamos a ir tirando con estas tres librerías.
01:11:28
Y ojo con esto que pone MonoBehaviour, que es otra clase que tiene Unity,
01:11:31
específica de Unity, de la que heredan todas las clases que iremos viendo
01:11:38
con también atributos. Es decir, hay como librerías externas
01:11:42
y luego los propios códigos que ya tiene Unity incorporados
01:11:46
a través de una programación especial que tenía.
01:11:51
De hecho, lo pone ahí. MonoBehaviour es la base clase
01:11:55
desde la cual cualquier script de Unity deriva.
01:11:58
Esto, que es una operación de herencia, al final también permite
01:12:02
que haya ciertos comportamientos que si no, no estarían por defecto
01:12:06
en el lenguaje C Sharp. Esto quiere decir que no podemos, por ejemplo,
01:12:11
borrar cosas al tuntún porque va a empezar a dar fallos.
01:12:16
Por ejemplo, el transform no viene de estos namespace.
01:12:20
El transform es una instrucción, una palabra clave, por decirlo de alguna forma,
01:12:23
que viene de MonoBehaviour. Si, de hecho, le dierais a Control
01:12:27
y a esta clase, os abre aquí un montón de cosas,
01:12:32
que es lo que hay detrás de estas clases. Podemos ir entrándonos
01:12:36
en el agujero hasta infinito, porque ya es cosa muy avanzada,
01:12:40
pero digamos que todo está heredando de otra información
01:12:44
que ha hecho quien haya desarrollado Unity, por ejemplo.
01:12:50
¿Qué tal hasta aquí?
01:12:54
¿Todo OK? Vale.
01:13:04
Más cosas importantes, así a priori.
01:13:08
Vale, sí. Nada, y leed el tema. Esto viene explicado en el tema, de verdad.
01:13:13
Igual con menos detalle, y hay cosas que estoy adelantando que ya veremos.
01:13:19
Pero sí, para eso estoy grabando la tutoría, que de hecho voy a comprobar...
01:13:23
Perfecto, se está grabando bien.
01:13:29
Cuando empezamos a trabajar en Unity vais a ver que están,
01:13:32
por ejemplo, quien antes ha mencionado lo de HTML,
01:13:37
estas llavecitas que vais a ver constantemente.
01:13:40
Las llavecitas, digamos que es...
01:13:43
La llavecita de abertura y cierre implica el ámbito
01:13:46
dentro del que se van a dar ciertas instrucciones.
01:13:50
Por ejemplo, esto que es un método, ya veremos que es un método,
01:13:54
que implica que todo lo que esté aquí dentro de estas llaves
01:13:57
asociado a este método, esto digamos que es un paquete,
01:14:01
todo lo que pongamos aquí se va a ejecutar en el Start.
01:14:04
Si yo, como he hecho antes, pongo Transform, Position, New Vector, 3,
01:14:07
que es una ubicación, pues al empezar el juego
01:14:12
o cuando se inicie este script, que puede ser porque lo lancemos
01:14:16
durante el juego, todo lo que esté en el Start se va a aplicar
01:14:22
en el primer momento que se use este objeto.
01:14:25
Por eso al empezar el juego, el objeto Q al que le hemos aplicado
01:14:29
este script, que sigue estando aquí, nuevo objeto,
01:14:32
al empezar el juego se ha aplicado.
01:14:36
Sin embargo, hay otra sección, otro método, se llama,
01:14:39
otra función, que es el Update.
01:14:43
Aquí vais a ver que ya por defecto vienen estas dos líneas verdes,
01:14:46
una referida al Start y otra al Update.
01:14:50
Esto son lo que se llaman comentarios.
01:14:53
Cuando el código se va ejecutando, toda línea que veáis que empieza
01:14:56
con estas dos barras así inclinadas, significa que es como un comentario
01:15:00
que se ha dejado, que no se va a tener en cuenta a nivel de ejecución,
01:15:06
pero por ejemplo para aclarar, yo ahora mismo aquí puedo poner
01:15:10
dos líneas de estas, que veis que se vuelve verde,
01:15:13
y ponerme un comentario en plan, con esto consigo que el objeto
01:15:16
se vaya a cero, por ponerlo rápido.
01:15:21
Esto es muy útil para ir comentando, para ir dejándote notas.
01:15:24
Si os fijáis aquí pone, justo antes de la aclaración,
01:15:28
Start, este método y lo que hay en sus llaves, se llama,
01:15:31
se activa antes justo del primer frame de actualización.
01:15:34
Es decir, en el primer frame en el que se ponga en uso este script,
01:15:40
va a ocurrir esto.
01:15:44
Y el comentario de lo que esté dentro de este void,
01:15:47
que nos ha dejado aquí el programa de Update,
01:15:50
es llamado una vez por frame.
01:15:52
Cuando vais jugando a un juego, igual que pasa también al ver un vídeo
01:15:54
o al hacer cualquier cosa audiovisual, la reproducción se compone de frames.
01:15:58
Es decir, se irá desarrollando en un número de frames
01:16:02
determinado por, en este caso, la potencia del ordenador.
01:16:06
Cuanta más potencia tenga, más frames por segundo
01:16:10
podrá ir ejecutando.
01:16:13
De hecho, si alguna vez habéis jugado a videojuegos,
01:16:17
muchas veces podéis, en las opciones en el menú del videojuego,
01:16:21
seleccionar cuántos frames por segundo, incluso podéis decir
01:16:24
a qué velocidad de reproducción se va generando,
01:16:28
porque a diferencia de lo que ocurre en algo renderizado,
01:16:30
como un render que hagáis de Maya, por poner un ejemplo,
01:16:33
de Premiere o de After o de un vídeo cualquiera,
01:16:37
ahí ya está definido el número de frames que tiene ese vídeo.
01:16:40
Pero en un videojuego se va creando a medida que se va jugando.
01:16:43
Entonces, podríamos ir definiendo cuántos fotogramas por segundo
01:16:50
tiene el juego.
01:16:54
Aquí, por defecto, lo que va a intentar es
01:16:56
hacer tantos fotogramas por segundo se puedan
01:16:59
con respecto a la potencia que tenga el ordenador.
01:17:02
Entonces, cuando lanzamos este script, le decimos
01:17:05
quiero que la posición transform esté en el 0,0.
01:17:09
Pero a lo mejor queremos que luego, a otra orden,
01:17:12
cada fotograma vaya variando, y para eso tendríamos que meterla
01:17:15
dentro de esta función de Update, de actualización.
01:17:19
Por ejemplo, se me ocurre
01:17:24
para no llevarlo a algo muy avanzado,
01:17:26
a ver si se me ocurre algo,
01:17:29
voy a hacer como un contador.
01:17:33
Esperad un segundillo, que hago una cosa,
01:17:36
esto ya lo iremos viendo.
01:17:39
Esto ya lo veremos.
01:17:46
Vale.
01:17:57
Y ahora os explico alguna cosilla de esto que estoy poniendo.
01:18:00
No todo, pero alguna cosilla.
01:18:04
Vale.
01:18:11
Esto ya es avanzado, pero lo que os digo es
01:18:14
que he hecho un bucle que va a estar leyendo
01:18:17
lo que hay dentro de estas llaves.
01:18:20
Recordad que hay una llave de apertura y una de cierre
01:18:22
que están asociadas, y lo que hay aquí dentro,
01:18:23
lo que le estábamos diciendo es que nos represente
01:18:26
un número que se está ejecutando cada fotograma
01:18:29
hasta llegar al número 9.
01:18:33
Si esto lo vamos ejecutando cada fotograma,
01:18:40
cuando le demos a Play al juego,
01:18:44
si vamos a la consola,
01:18:50
la consola al final lo que hace es darnos comprobaciones
01:18:53
de qué está haciendo el juego de ciertos parámetros
01:18:56
que vayamos poniendo.
01:18:59
Cuando queráis, por ejemplo, poner una orden,
01:19:02
voy a parar el juego,
01:19:05
cuando queramos ir comprobando algo del juego,
01:19:12
lo vamos a tener que mandar a esa carpeta que se llama Consola.
01:19:15
Por ejemplo, imaginaos que yo tengo una opción
01:19:19
que es decirle cuando a un objeto le toque otro
01:19:21
que se muera.
01:19:27
Eso ya diríamos que eso lo haga efectivamente el juego,
01:19:29
pero si yo quiero verlo en consola,
01:19:34
hay un comando que se llama debug.log,
01:19:37
esto lo tenéis que aprender, lo veréis también en el primer tema,
01:19:40
y dentro de los paréntesis
01:19:43
es donde ponemos qué mensaje tiene que mostrar
01:19:48
esa consola a medida que juguemos.
01:19:51
Por ejemplo, yo voy a querer que al empezar el juego,
01:19:55
en el Start lo pongo todavía,
01:19:58
voy a poner que me diga, por ejemplo,
01:20:00
hola mundo, que es como se suele poner.
01:20:05
Cuando arranque el juego, al empezar,
01:20:08
en la consola se va a ver este mensaje de hola mundo
01:20:11
como comprobación.
01:20:13
E importante, como ahora solo quiero ver
01:20:15
este debug.log de hola mundo,
01:20:18
que antes he puesto un código,
01:20:19
ahora vuelvo a explicarlo,
01:20:21
que igual me he adelantado un poco.
01:20:23
Imaginaos que yo este código no quiero que se ejecute,
01:20:25
pero tampoco quiero borrarlo porque ya lo tengo escrito
01:20:28
y igual más adelante lo recupero.
01:20:30
Para esto vuelven a servir los comentarios.
01:20:32
Si yo en una línea vuelvo a poner las dos líneas,
01:20:34
veis que de pronto se comenta,
01:20:36
se convierte en verde todo,
01:20:38
y entonces esto lo tengo aquí,
01:20:40
que en cualquier momento yo lo puedo borrar
01:20:42
y vuelve a activarse,
01:20:44
que es muy útil para ir dejando un comentario
01:20:45
en algo que a lo mejor luego uso,
01:20:49
ciertas líneas, para ir comprobando el código.
01:20:51
Esto está muy bien para eso,
01:20:53
para ir sin borrar.
01:20:55
Estamos probando cosas y hemos escrito bastante código
01:20:57
en vez de borrarlo,
01:20:59
que a lo mejor luego solo estamos testeando
01:21:01
que funciona o no, pues se comenta y listo.
01:21:03
¿Qué pasa? Aquí, por ejemplo,
01:21:05
voy a comentar esto que no me interesa.
01:21:07
Aquí he comentado esta línea,
01:21:09
pero además he incluido hasta la llave
01:21:11
y ahora esta llave de cierre no está cerrando aquí,
01:21:13
sino que está cerrando esta llave de aquí.
01:21:16
Entonces, al final hay una llave aquí
01:21:18
que no está cerrando nada
01:21:20
porque las he desemparejado.
01:21:22
Entonces, habría que ir comentando todas las líneas
01:21:24
hasta que todo lo que tenga lógica...
01:21:27
¿Veis que se ha quitado ya el error?
01:21:29
O hay otra forma de comentar,
01:21:31
esto creo que no lo ponen los apuntes,
01:21:33
que es para comentar varias líneas de golpe,
01:21:35
hay otra forma que es poner la línea
01:21:37
en vez de dos, una,
01:21:40
y un asterisquillo.
01:21:41
Y en la línea que queramos que deje de comentar,
01:21:43
al revés, asterisquillo y línea.
01:21:45
Y ahora veis que se ha comentado todo esto.
01:21:47
Está en verde.
01:21:49
Ahora mismo este código yo lo podría
01:21:51
recuperar enseguida borrando esto.
01:21:53
Y ahí está otra vez.
01:21:55
Bueno, aquí como he comentado antes esto también.
01:21:57
Pero no lo borro.
01:21:59
Entonces esto es muy útil para,
01:22:01
en plan estoy probando una línea y no me funciona,
01:22:03
la voy a dejar comentada y luego vemos.
01:22:05
Entonces, ahora mismo en el update
01:22:07
no se está ejecutando nada
01:22:09
y en el start, al empezar,
01:22:12
el objeto que tenga el script
01:22:14
se va a ir al 000
01:22:16
y aparte quiero que en la consola,
01:22:18
esto ahora mismo es muy abstracto
01:22:20
por decir, ¿para qué voy a querer
01:22:22
que ponga Hola Mundo en la consola?
01:22:24
Bueno, ya veremos que esto tiene
01:22:26
más aplicaciones en el futuro.
01:22:28
Pero guardo y si voy aquí ahora
01:22:30
al editor, al darle a play,
01:22:32
en la consola vais a ver que va a poner
01:22:34
Hola Mundo.
01:22:36
Ha funcionado.
01:22:38
Y sólo una vez,
01:22:39
porque sólo se ha ejecutado
01:22:41
al empezar el juego.
01:22:43
Que no es lo mismo,
01:22:45
y vuelvo al código,
01:22:47
que corto esta línea,
01:22:49
Control X, y la pego en el update
01:22:51
y ahora lo que le estoy diciendo
01:22:53
es esta línea, esta comprobación,
01:22:55
este Hola Mundo que aparezca
01:22:57
en cada fotograma del juego.
01:22:59
Esta instrucción vais a ver
01:23:01
que ha cambiado radicalmente
01:23:03
en el sentido de que cuando desactivo
01:23:05
y en la consola cuando ya tengáis
01:23:07
los elementos para no confundiros
01:23:09
entre un play y otro,
01:23:11
aunque lo suelo hacer por defecto,
01:23:13
le podéis dar a clear,
01:23:15
que son los mensajes,
01:23:17
no pasa nada, no estáis borrando nada.
01:23:19
Si volvemos a ejecutar el juego
01:23:21
ahora se generarán los mensajes
01:23:23
de esta nueva reproducción.
01:23:25
Y vais a ir viendo que aparece
01:23:27
mucho Hola Mundo,
01:23:29
uno por cada fotograma.
01:23:31
Vais viendo que aquí pone la hora
01:23:33
en la que se está ejecutando
01:23:35
y como habrá bastantes fotogramas
01:23:37
para decir esto,
01:23:39
vais a ver que al pulsar
01:23:41
os pone cosas como en qué script,
01:23:43
que es el mover objetos,
01:23:45
incluso os dice en qué línea
01:23:47
es la que está ejecutando esto
01:23:49
que está ocurriendo,
01:23:51
que si vamos aquí vamos a ver
01:23:53
que la línea 22 es donde estamos
01:23:55
dando esta orden.
01:23:57
Fijaos que aquí os dice
01:23:59
en qué línea se está ejecutando
01:24:01
la orden.
01:24:03
Incluso si damos a doble clic aquí
01:24:05
cuando salgan errores o lo que sea,
01:24:07
esto es útil.
01:24:09
Véis que no es lo mismo
01:24:11
ejecutar las órdenes en Start
01:24:13
que en Update,
01:24:15
que va un fotograma tras otro.
01:24:17
Si yo, por ejemplo,
01:24:19
voy a comentar para no borrar
01:24:21
este backlog,
01:24:23
y vuelvo a coger este For,
01:24:25
simplemente,
01:24:27
y lo pongo, sin comentar,
01:24:29
en Start, es decir,
01:24:31
solo una vez se va a ejecutar
01:24:33
que me enseñe en la consola
01:24:35
que se ejecute hasta
01:24:37
8, en realidad menor de 9.
01:24:39
Esto ya sé que igual,
01:24:41
seguro que no estaréis siguiendo,
01:24:43
pero voy explicando lo que hace.
01:24:45
Ya veremos cómo se hace,
01:24:47
pero quiero que veáis el funcionamiento
01:24:49
de la consola.
01:24:51
Al darle a Play vais a ver
01:24:53
que se ha generado
01:24:55
el 0 al 8 una vez y ya está.
01:24:57
Porque al arrancar el juego
01:24:59
le he dicho
01:25:01
ponme una cuenta del 0 al 8
01:25:03
al comenzar el juego
01:25:05
y me lo ha hecho todo,
01:25:07
en el First Frame.
01:25:09
Que no es lo mismo,
01:25:11
que si esto lo vuelvo a mover,
01:25:13
corto y pego aquí en el Update,
01:25:15
guardo,
01:25:17
y lo ejecuto aquí,
01:25:19
que lo que vais a ver
01:25:21
es que en cada fotograma
01:25:23
me va a contar hasta 8.
01:25:25
Le doy,
01:25:27
veis que aquí se está moviendo,
01:25:29
están cambiando los segundos,
01:25:31
y aunque no se vea muy claro,
01:25:33
veis que aquí hay
01:25:35
más de 999 mensajes,
01:25:37
y aunque haya contado hasta 8,
01:25:39
pues cada fotograma
01:25:41
de los que lo he ido haciendo.
01:25:43
Imaginaos que queréis hacer
01:25:45
un contador de tiempo.
01:25:47
Tendremos que ir consiguiendo
01:25:49
que cada uno de estos fotogramas
01:25:51
en el Update vaya generando
01:25:53
un nuevo número,
01:25:55
que vaya sumando uno a uno.
01:25:57
Para empezar estas dos funciones,
01:25:59
que como ya hemos visto
01:26:01
vienen de lo que tenemos aquí arriba,
01:26:03
sirven para decir,
01:26:05
que esto no ocurre en cesar por defecto,
01:26:07
hay que ejecutar tal código.
01:26:09
De hecho hay más momentos de ejecución.
01:26:11
Ahí está el Void Update,
01:26:14
pero ahí por ejemplo otro que sería
01:26:16
el Awake.
01:26:18
Pues aquí,
01:26:20
en estas llaves
01:26:24
de aquí,
01:26:26
lo que iremos poniendo son
01:26:28
los eventos que se van realizando
01:26:30
según se arranca el juego.
01:26:32
Es decir, aunque no se esté ejecutando
01:26:34
un frame porque este screen
01:26:36
todavía no está en juego,
01:26:37
no ha aparecido ese objeto,
01:26:39
no se ha provocado,
01:26:41
esto ya ha cargado en ese objeto
01:26:43
en potencia ciertos parámetros,
01:26:45
lo hace a priori.
01:26:47
Esto ya lo veremos.
01:26:49
Que sepáis que hay más métodos.
01:26:51
Hasta aquí ya creo que voy a ir parando
01:26:53
porque es mucha información.
01:26:55
Me interesa mucho que vayáis viendo
01:26:57
el tema 1 sobre todo,
01:26:59
que se lo vayáis haciendo
01:27:01
y también ya una vez
01:27:03
el tema 1 os pongáis con la tarea,
01:27:05
que es como el que va a ser más denso
01:27:07
y ya os he dicho que va a ser
01:27:09
a lo largo de todo el curso.
01:27:11
¿Qué tal?
01:27:15
¿Cómo estáis?
01:27:17
Muchas cosas, ¿no?
01:27:19
A ver si hay alguna cosa más así
01:27:22
a priori que os pueda ser.
01:27:24
Vamos, no tengo nada más apuntado.
01:27:26
Sí.
01:27:28
Bueno, lo que más os va a abrumar
01:27:30
sobre todo es el comienzo.
01:27:32
A medida que vaya avanzando el curso
01:27:34
pues os costará menos.
01:27:35
Yo, si os sirve de algo,
01:27:37
si os sirve de aliciente,
01:27:39
cuando empecé el curso pasado
01:27:41
no tenía ni idea de esto
01:27:43
y en un año ya voy teniéndola más.
01:27:45
Así que en un curso
01:27:47
esperemos que aprendáis mucho.
01:27:49
Sí, es denso, sí, sí.
01:27:51
El tema 0 es muy denso, ¿vale?
01:27:53
Que está el primero para que esté
01:27:55
durante todo el curso
01:27:57
pero no es para que lo estudiéis
01:27:59
entendiéndolo todo de primeras.
01:28:01
Pero bueno, sí que está bien
01:28:03
como este FOR, por ejemplo,
01:28:05
que ya se ve en el tema 0
01:28:07
pero en la primera tarea, por ejemplo,
01:28:09
no la vais a usar.
01:28:11
Pero el tema 1 sí,
01:28:13
que es el de instalación,
01:28:15
qué hace cada panel,
01:28:17
cómo se navega en la interfaz, etc.,
01:28:19
sí que es importante.
01:28:21
No sé si tenéis dudas.
01:28:23
No quiero avanzar mucho más
01:28:25
porque creo que ya os voy a agobiar.
01:28:27
Próximo día veremos lo relativo a variables
01:28:29
que es una función, un método.
01:28:31
Más componentes,
01:28:32
cómo se hace a componentes.
01:28:34
También los GameObjects.
01:28:36
Veremos eso.
01:28:38
En la primera tarea tenéis que hacer una nave
01:28:40
a partir de las geometrías básicas
01:28:42
y hacer vuestro primer script de instanciación.
01:28:46
Entonces, nada.
01:28:49
En un par de semanas, imagino,
01:28:51
convocaré otra tutoría
01:28:53
y, bueno, esperemos que sean más
01:28:55
porque el que no me vaya siguiendo
01:28:57
pues quizás se vaya quedando
01:28:59
un poco atrás.
01:29:00
No sé si tenéis dudas.
01:29:02
No sólo de esto que hemos visto
01:29:04
que además no sabía ni siquiera
01:29:06
si me iba a lanzar tanto a la piscina.
01:29:08
Pero bueno, sobre todo quería que vierais
01:29:10
los primeros problemas que pueden surgir.
01:29:12
Pero eso, que no sé si tenéis dudas
01:29:15
del módulo en general,
01:29:18
alguna cuestión, sugerencia.
01:29:20
Voy a dejar de compartir.
01:29:22
Y me veréis la cara.
01:29:27
Ahí estoy.
01:29:28
¿Qué tal?
01:29:30
Sí que es muy importante
01:29:32
para estas clases
01:29:34
y en realidad para todas
01:29:36
que tengáis un micrófono
01:29:38
porque es que las dudas,
01:29:40
como tengáis que escribirlas,
01:29:42
nos volvemos locos.
01:29:44
Os pediré que me compartáis pantalla
01:29:46
y lo vamos comentando por audio.
01:29:48
Es que si no es imposible.
01:29:50
En tal sitio, tal, por escrito
01:29:52
no vamos a tardar un montón.
01:29:54
Ya.
01:29:56
Luego otro compañero ya me ha escrito
01:29:58
su primera duda de
01:30:00
no me funciona un script
01:30:02
y hasta que no veas el script
01:30:04
es que no sé cuál es el fallo.
01:30:06
Entonces, que aquí las dudas
01:30:08
sí que me vais a tener que ir
01:30:10
dando mucho contexto
01:30:12
porque si no es imposible.
01:30:14
Para eso, sobre todo,
01:30:16
intentaré hacer tutorías como esta
01:30:18
que me podéis compartir pantalla y tal
01:30:20
y en lo más operativo.
01:30:22
Si ya empecéis a estudiar
01:30:23
ya os he dicho que deberían ser
01:30:25
ocho horas a la semana, fácilmente.
01:30:27
Si os interesa más, pues todas las que queráis.
01:30:29
Y las tareas son muy útiles.
01:30:31
A medida, si estáis abrumados hoy
01:30:33
y no me vais pillando,
01:30:35
pues dentro de un mes a lo mejor
01:30:37
ya cuesta más.
01:30:39
Entonces, sugiero que me sigáis.
01:30:41
- Subido por:
- Daniel M.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 75
- Fecha:
- 27 de octubre de 2023 - 10:47
- Visibilidad:
- Clave
- Centro:
- IES CIFP a Distancia Ignacio Ellacuría
- Duración:
- 1h′ 30′ 42″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 600.16 MBytes