1 00:00:00,000 --> 00:00:07,000 Pues nada, simplemente deciros que este es el módulo de DEIN, Desarrollo de Entornos Interactivos Multidispositivos, 2 00:00:07,000 --> 00:00:13,000 y yo voy a ser vuestro profesor este año, ¿vale? Tenéis aquí mi data de contacto, etc. 3 00:00:13,000 --> 00:00:18,000 Voy rápido, por lo que os he comentado, para intentar aprovechar sobre la ficha del alumno, ¿vale? 4 00:00:18,000 --> 00:00:21,000 Ahora lo vemos, que me están haciendo una pregunta por el chat. 5 00:00:21,000 --> 00:00:25,000 Estos son los horarios preferentes de atención para este módulo, ¿vale? 6 00:00:25,000 --> 00:00:28,000 Pues, por ejemplo, ahora mismo estaríamos en este hueco de aquí, ¿vale? 7 00:00:28,000 --> 00:00:34,000 Hoy, dependiendo de si tenéis dudas o no, veremos cuánto ocupamos de las dos horas posibles que tenemos. 8 00:00:34,000 --> 00:00:42,000 Vamos viendo. Según los que estéis hoy aquí, pues como estáis, si habéis leído el material, 9 00:00:42,000 --> 00:00:46,000 o si lo estáis intentando realizar alguna tarea, etc. 10 00:00:46,000 --> 00:00:52,000 Vale, simplemente os pongo la ficha del módulo con la relación de horas en presencia que tendría. 11 00:00:53,000 --> 00:00:59,000 Como podéis comprobar, se supone una dedicación de 8 horas semanales para superar este módulo. 12 00:00:59,000 --> 00:01:07,000 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, 13 00:01:07,000 --> 00:01:12,000 las cuales también en este caso, digamos, se incluyen en estas 8 horas. 14 00:01:12,000 --> 00:01:17,000 Pero bueno, que sepáis que esto es, de hecho, de segundo, como podéis comprobar, 15 00:01:17,000 --> 00:01:25,000 el módulo que más exigencia pide a nivel de horas, a nivel de ficha del ciclo. 16 00:01:25,000 --> 00:01:30,000 Este módulo, y aquí hay una rata, que cambio ya, aprovecho, ¿vale? 17 00:01:30,000 --> 00:01:35,000 Se comprende 8 unidades de trabajo, 8 temas, ¿no? 18 00:01:35,000 --> 00:01:40,000 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, 19 00:01:40,000 --> 00:01:48,000 es decir, en ningún caso va a contar para nota, y aunque tiene una fecha sugerida de entrega, es una unidad transversal, 20 00:01:48,000 --> 00:01:54,000 porque se dedica básicamente a bases de programación, y entonces vamos a estar volviendo a ella constantemente. 21 00:01:54,000 --> 00:02:01,000 Por eso prefiero no cerrarla, digamos, como la primera, si abrirla la primera, pero iremos volviendo a ella progresivamente. 22 00:02:01,000 --> 00:02:13,000 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é. 23 00:02:13,000 --> 00:02:20,000 Aquí he puesto, aquí se está bien puesto el número, las 8 unidades, la fecha establecida para la apertura del tema, 24 00:02:20,000 --> 00:02:26,000 que eso no significa que luego en las tutorías o de otro modo se pueda seguir ampliando el contenido incluso evaluable, 25 00:02:26,000 --> 00:02:30,000 pero un poco de referencia a cuando se abre el grueso de contenido, ¿no? 26 00:02:30,000 --> 00:02:36,000 Bueno, hasta ahora estamos ya en este punto, ya se ha abierto la UT1, y la UT2 se abrirá. 27 00:02:36,000 --> 00:02:43,000 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. 28 00:02:43,000 --> 00:02:49,000 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, 29 00:02:49,000 --> 00:02:56,000 por lo que hay más o menos un mes de la apertura del último tema hasta los exámenes de evaluación ordinaria. 30 00:02:56,000 --> 00:03:01,000 Por lo tanto, yo creo que hay tiempo para estudiar. Lo mismo, es el último tema. 31 00:03:01,000 --> 00:03:06,000 Hasta esta fecha ya deberíais ir haciendo seguimiento del resto de unidades. 32 00:03:09,000 --> 00:03:18,000 Hola, ¿qué tal? Jesús, perdonad, vuelvo a parar. ¿Alguno tenéis el módulo de Primero de Diseño, Dibujo y Modelado? 33 00:03:19,000 --> 00:03:28,000 Mani Ángeles, entiendo que no, pero Jesús puede que sí. Lo digo porque coincide la segunda hora, ¿vale? 34 00:03:28,000 --> 00:03:38,000 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. 35 00:03:39,000 --> 00:03:42,000 Bueno, Jesús, entiendo que me escuchas. 36 00:03:43,000 --> 00:03:54,000 Vale, bueno, sigo con esto y si en algún momento me respondes, pues te leo, o te escucho. 37 00:03:54,000 --> 00:04:02,000 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. 38 00:04:02,000 --> 00:04:15,000 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. 39 00:04:15,000 --> 00:04:24,000 Pero han vuelto para atrás y hasta que no se lanza un producto que tenga muchos ingresos, se puede usar de manera gratuita. 40 00:04:24,000 --> 00:04:31,000 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. 41 00:04:31,000 --> 00:04:44,000 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. 42 00:04:44,000 --> 00:04:50,000 Además, aquí os pongo la versión, ahora hablaremos sobre esto, que os pido que uséis. 43 00:04:50,000 --> 00:04:58,000 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. 44 00:04:59,000 --> 00:05:08,000 Son estas las versiones. Si más adelante vemos que hay funcionalidades interesantes en versiones más recientes, lo actualizaremos. 45 00:05:08,000 --> 00:05:13,000 Pero de momento esta es operativa y es la que más nos interesa ahora mismo. 46 00:05:13,000 --> 00:05:18,000 Aparte habrá paquetes que a veces habrá que ir instalando, esto ya lo iremos viendo. 47 00:05:18,000 --> 00:05:23,000 En cierto momento se pueden usar otros softwares relacionados, como Mixamo. Esto llegaremos. 48 00:05:23,000 --> 00:05:43,000 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. 49 00:05:43,000 --> 00:05:49,000 No es de los softwares más exigentes, a menos que hiciéramos cosas que cargaran mucho el sistema. 50 00:05:49,000 --> 00:05:59,000 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. 51 00:05:59,000 --> 00:06:15,000 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. 52 00:06:15,000 --> 00:06:27,000 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. 53 00:06:27,000 --> 00:06:36,000 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. 54 00:06:37,000 --> 00:06:47,000 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. 55 00:06:47,000 --> 00:06:59,000 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, 56 00:06:59,000 --> 00:07:19,000 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. 57 00:07:19,000 --> 00:07:29,000 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. 58 00:07:29,000 --> 00:07:44,000 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 59 00:07:44,000 --> 00:08:02,000 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. 60 00:08:02,000 --> 00:08:18,000 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. 61 00:08:18,000 --> 00:08:35,000 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. 62 00:08:35,000 --> 00:08:48,000 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. 63 00:08:48,000 --> 00:09:01,000 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. 64 00:09:01,000 --> 00:09:26,000 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, 65 00:09:26,000 --> 00:09:51,000 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. 66 00:09:52,000 --> 00:10:04,000 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í. 67 00:10:04,000 --> 00:10:32,000 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. 68 00:10:34,000 --> 00:10:56,000 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. 69 00:10:56,000 --> 00:11:09,000 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. 70 00:11:09,000 --> 00:11:36,000 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. 71 00:11:36,000 --> 00:12:04,000 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. 72 00:12:04,000 --> 00:12:15,000 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. 73 00:12:16,000 --> 00:12:40,000 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. 74 00:12:40,000 --> 00:13:01,000 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. 75 00:13:01,000 --> 00:13:18,000 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. 76 00:13:18,000 --> 00:13:46,000 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. 77 00:13:46,000 --> 00:13:53,000 Que así está todo mucho mejor organizado y es más fácil. Entonces, intentad seguir un poco esta organización. 78 00:13:54,000 --> 00:14:12,000 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. 79 00:14:13,000 --> 00:14:34,000 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. 80 00:14:34,000 --> 00:14:49,000 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. 81 00:14:49,000 --> 00:15:09,000 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. 82 00:15:09,000 --> 00:15:37,000 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. 83 00:15:37,000 --> 00:15:55,000 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. 84 00:15:55,000 --> 00:16:09,000 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. 85 00:16:09,000 --> 00:16:30,000 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. 86 00:16:31,000 --> 00:16:37,000 Vale, sigamos. Hasta aquí alguna duda con lo que hemos estado viendo? No sé. 87 00:16:38,000 --> 00:17:02,000 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. 88 00:17:03,000 --> 00:17:07,000 Creo que es una buena práctica para que no seamos tan anónimos. 89 00:17:10,000 --> 00:17:24,000 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. 90 00:17:24,000 --> 00:17:53,000 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. 91 00:17:54,000 --> 00:18:08,000 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. 92 00:18:09,000 --> 00:18:26,000 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. 93 00:18:26,000 --> 00:18:40,000 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. 94 00:18:40,000 --> 00:18:56,000 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. 95 00:18:56,000 --> 00:19:09,000 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. 96 00:19:09,000 --> 00:19:26,000 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? 97 00:19:26,000 --> 00:19:47,000 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. 98 00:19:47,000 --> 00:19:59,000 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. 99 00:19:59,000 --> 00:20:14,000 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. 100 00:20:14,000 --> 00:20:36,000 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. 101 00:20:36,000 --> 00:20:55,000 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. 102 00:20:55,000 --> 00:21:21,000 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. 103 00:21:22,000 --> 00:21:42,000 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. 104 00:21:43,000 --> 00:22:03,000 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. 105 00:22:03,000 --> 00:22:30,000 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. 106 00:22:30,000 --> 00:22:58,000 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. 107 00:22:59,000 --> 00:23:25,000 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. 108 00:23:26,000 --> 00:23:32,000 No sé si hasta aquí alguno había intentado, ya lo tenéis instalado, por ver un poco en qué punto estáis. 109 00:23:32,000 --> 00:24:01,000 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. 110 00:24:02,000 --> 00:24:21,000 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. 111 00:24:21,000 --> 00:24:39,000 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. 112 00:24:39,000 --> 00:25:00,000 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. 113 00:25:01,000 --> 00:25:17,000 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. 114 00:25:17,000 --> 00:25:43,000 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? 115 00:25:44,000 --> 00:26:07,000 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. 116 00:26:07,000 --> 00:26:33,000 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. 117 00:26:34,000 --> 00:26:57,000 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. 118 00:26:57,000 --> 00:27:21,000 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. 119 00:27:22,000 --> 00:27:46,000 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. 120 00:27:46,000 --> 00:28:02,000 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. 121 00:28:02,000 --> 00:28:24,000 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. 122 00:28:25,000 --> 00:28:29,000 A ver, ¿hasta aquí alguna duda? A ver si vamos aprovechando. 123 00:28:29,000 --> 00:28:41,000 Bueno, no sé si estáis por ahí o no. 124 00:28:41,000 --> 00:29:02,000 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. 125 00:29:03,000 --> 00:29:13,000 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. 126 00:29:13,000 --> 00:29:35,000 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. 127 00:29:35,000 --> 00:29:51,000 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. 128 00:29:51,000 --> 00:30:08,000 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. 129 00:30:08,000 --> 00:30:29,000 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. 130 00:30:29,000 --> 00:30:53,000 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. 131 00:30:53,000 --> 00:31:16,000 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. 132 00:31:16,000 --> 00:31:36,000 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. 133 00:31:36,000 --> 00:32:01,000 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. 134 00:32:01,000 --> 00:32:30,000 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. 135 00:32:30,000 --> 00:32:52,000 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. 136 00:32:52,000 --> 00:33:12,000 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. 137 00:33:12,000 --> 00:33:32,000 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. 138 00:33:32,000 --> 00:33:51,000 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. 139 00:33:52,000 --> 00:34:11,000 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. 140 00:34:11,000 --> 00:34:31,000 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. 141 00:34:32,000 --> 00:34:42,000 En principio no debería ser esencial, pero sí que ya os incorpora bastantes funcionalidades que necesitaréis o que vendrá bien. 142 00:34:42,000 --> 00:35:10,000 Esto lo tenéis en los apuntes. Cuando salga esta desplegable de workloads, seleccionad Game Development con Unity y lo instaláis también. 143 00:35:10,000 --> 00:35:15,000 Esto irá saliendo solo a medida que vayáis instalando lo que hemos visto. 144 00:35:15,000 --> 00:35:30,000 ¿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? 145 00:35:31,000 --> 00:35:43,000 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. 146 00:35:43,000 --> 00:36:03,000 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. 147 00:36:03,000 --> 00:36:26,000 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. 148 00:36:27,000 --> 00:36:42,000 ¿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. 149 00:36:43,000 --> 00:36:59,000 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. 150 00:36:59,000 --> 00:37:13,000 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. 151 00:37:14,000 --> 00:37:35,000 ¿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. 152 00:37:36,000 --> 00:37:50,000 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. 153 00:37:51,000 --> 00:38:01,000 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. 154 00:38:02,000 --> 00:38:16,000 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. 155 00:38:17,000 --> 00:38:33,000 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. 156 00:38:33,000 --> 00:38:58,000 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. 157 00:38:59,000 --> 00:39:11,000 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. 158 00:39:12,000 --> 00:39:20,000 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. 159 00:39:21,000 --> 00:39:38,000 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í. 160 00:39:38,000 --> 00:39:46,000 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, 161 00:39:47,000 --> 00:39:57,000 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. 162 00:39:58,000 --> 00:40:08,000 Por ejemplo, un RigidBody, lo agrego y ahora hay otro componente que tiene unas cuantas secciones, unos cuantos parámetros posibles, desplegables, etc. 163 00:40:09,000 --> 00:40:22,000 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. 164 00:40:23,000 --> 00:40:33,000 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 165 00:40:34,000 --> 00:40:47,000 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 166 00:40:47,000 --> 00:40:58,000 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, 167 00:40:59,000 --> 00:41:15,000 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. 168 00:41:16,000 --> 00:41:26,000 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. 169 00:41:27,000 --> 00:41:40,000 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, 170 00:41:40,000 --> 00:41:49,000 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, 171 00:41:50,000 --> 00:41:58,000 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, 172 00:41:59,000 --> 00:42:12,000 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, 173 00:42:13,000 --> 00:42:24,000 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, 174 00:42:24,000 --> 00:42:33,000 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, 175 00:42:34,000 --> 00:42:44,000 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. 176 00:42:45,000 --> 00:42:55,000 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, 177 00:42:56,000 --> 00:43:03,000 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. 178 00:43:03,000 --> 00:43:14,000 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. 179 00:43:15,000 --> 00:43:26,000 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 180 00:43:27,000 --> 00:43:35,000 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. 181 00:43:36,000 --> 00:43:45,000 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 182 00:43:46,000 --> 00:43:52,000 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. 183 00:43:52,000 --> 00:43:59,000 Esto es importante porque, si veis este asterisquito, significa que esta escena no está guardada. También aparece aquí arriba. 184 00:44:00,000 --> 00:44:09,000 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. 185 00:44:09,000 --> 00:44:19,000 A lo mejor estamos trabajando... Puedo crear aquí, con clic derecho, otra escena y llamarla nivel 2. 186 00:44:20,000 --> 00:44:31,000 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. 187 00:44:32,000 --> 00:44:43,000 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. 188 00:44:44,000 --> 00:44:49,000 Importante, para ir cambiando de nivel, damos doble clic y podremos ir variando. Esto ya lo veremos más avanzado. 189 00:44:50,000 --> 00:44:57,000 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, 190 00:44:58,000 --> 00:45:11,000 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. 191 00:45:12,000 --> 00:45:18,000 De hecho, ya si nos metemos, veréis que dentro de la carpeta de escenas, que es esta aquí, ya hay dos niveles. 192 00:45:18,000 --> 00:45:22,000 Veréis que todo lo que se vaya haciendo en este panel de proyectos luego se ve reflejado en esta carpeta. 193 00:45:23,000 --> 00:45:32,000 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. 194 00:45:33,000 --> 00:45:38,000 Estos archivos no los borréis, son metadatos. Son como archivos que genera automáticamente con los cambios que vayamos haciendo. 195 00:45:39,000 --> 00:45:44,000 Que no os asuste que no veáis aquí esos archivos porque están destinados para trabajar por debajo. 196 00:45:45,000 --> 00:45:51,000 Nosotros no lo vamos a manipular directamente, pero veis que se va viendo reflejado. 197 00:45:54,000 --> 00:46:01,000 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. 198 00:46:02,000 --> 00:46:06,000 Vuelvo a los assets, que aquí ahora mismo solo tengo esta carpeta de escenas. 199 00:46:07,000 --> 00:46:13,000 ¿Hasta aquí qué tal? ¿Me estáis siguiendo o está habiendo muchas dudas? 200 00:46:14,000 --> 00:46:18,000 Cuando leáis, si hubierais leído, seguramente me seguiría bastante bien. Si no, estaréis un poco aletargados. 201 00:46:20,000 --> 00:46:27,000 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. 202 00:46:28,000 --> 00:46:34,000 Exacto, de momento es muy parecido. 203 00:46:39,000 --> 00:46:46,000 Igual que tenemos esta carpeta de escenas, ahora podemos crear otra carpeta. 204 00:46:47,000 --> 00:46:51,000 Podemos hacer todas las carpetas que queramos y aquí vamos a hacer una, y esta es buena práctica, 205 00:46:51,000 --> 00:46:59,000 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. 206 00:47:00,000 --> 00:47:10,000 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. 207 00:47:11,000 --> 00:47:17,000 Claro, pero eso va a ejecutar animaciones preechas. Lo bueno y diferente de Maya con respecto a esto es que también aquí 208 00:47:17,000 --> 00:47:27,000 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. 209 00:47:28,000 --> 00:47:36,000 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, 210 00:47:37,000 --> 00:47:45,000 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, 211 00:47:45,000 --> 00:47:52,000 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, 212 00:47:53,000 --> 00:48:00,000 mediante nodos. Los nodos seguramente ya también los habréis visto en algún momento en otro software, mediante nodos. 213 00:48:01,000 --> 00:48:07,000 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. 214 00:48:08,000 --> 00:48:18,000 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 215 00:48:19,000 --> 00:48:29,000 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. 216 00:48:30,000 --> 00:48:40,000 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. 217 00:48:41,000 --> 00:48:50,000 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, 218 00:48:50,000 --> 00:49:01,000 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, 219 00:49:02,000 --> 00:49:12,000 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é, 220 00:49:12,000 --> 00:49:22,000 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. 221 00:49:23,000 --> 00:49:37,000 Cada uno es programación con unas reglas y una sintaxis diferenciadas. Los Blueprints de Unreal son de Unreal, aquí está este Visual Scripting, 222 00:49:37,000 --> 00:49:48,000 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, 223 00:49:49,000 --> 00:49:56,000 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í. 224 00:49:56,000 --> 00:50:03,000 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. 225 00:50:05,000 --> 00:50:14,000 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. 226 00:50:15,000 --> 00:50:23,000 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. 227 00:50:24,000 --> 00:50:34,000 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, 228 00:50:35,000 --> 00:50:44,000 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. 229 00:50:45,000 --> 00:50:53,000 Antes os he dicho, voy a poner ya el nombre, y luego os sigo explicando. Voy a poner esto, Script 1, así con letras. 230 00:50:54,000 --> 00:51:01,000 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, 231 00:51:02,000 --> 00:51:08,000 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, 232 00:51:08,000 --> 00:51:18,000 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. 233 00:51:19,000 --> 00:51:28,000 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. 234 00:51:28,000 --> 00:51:37,000 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 235 00:51:38,000 --> 00:51:46,000 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 236 00:51:47,000 --> 00:51:55,000 de funcionalidades. Por ejemplo, el Rigidbody para dar atributos de gravedad a nuestros objetos, o el BoxCollider sirve para que se detecten las colisiones 237 00:51:55,000 --> 00:52:05,000 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 238 00:52:05,000 --> 00:52:12,000 y le damos aquí a ver por qué no está saliendo. 239 00:52:13,000 --> 00:52:15,000 Van a salir... 240 00:52:30,000 --> 00:52:39,000 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. 241 00:52:40,000 --> 00:52:49,000 Cada una de estas funcionalidades, si no tuviera el BoxCollider, no detectaría las colisiones. De hecho, como un ejemplo rápido. 242 00:52:50,000 --> 00:52:58,000 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í, 243 00:52:58,000 --> 00:53:09,000 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. 244 00:53:10,000 --> 00:53:18,000 Si vemos aquí, podemos activar y desactivar este Collider. Como ejemplo, hemos puesto un componente, una funcionalidad que tenga gravedad. 245 00:53:19,000 --> 00:53:27,000 Cuando yo le doy al Play, ejecuto el juego, vais a ver que este objeto, y lo estamos viendo en la escena de juego, 246 00:53:28,000 --> 00:53:38,000 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, 247 00:53:39,000 --> 00:53:46,000 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, 248 00:53:46,000 --> 00:53:54,000 vamos a querer seguir tocando nuestros objetos. De buena práctica tener el panel de escena y el panel de juego los dos abiertos. 249 00:53:55,000 --> 00:54:01,000 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. 250 00:54:02,000 --> 00:54:14,000 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. 251 00:54:15,000 --> 00:54:23,000 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, 252 00:54:24,000 --> 00:54:32,000 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, 253 00:54:33,000 --> 00:54:41,000 no se ve. Tenemos por un lado en la ventana juego la vista de ese juego y aquí en escena donde podemos navegar. 254 00:54:42,000 --> 00:54:46,000 Cuando demos a Play, como ese cubo tiene el Rigid Body, vais a ver que por defecto va a hacer... 255 00:54:49,000 --> 00:54:56,000 y se va a ir cayendo con la gravedad que tenga. Si yo, por ejemplo, con estos puntitos que tengo aquí, quito este componente, 256 00:54:57,000 --> 00:55:03,000 vais a ver que el cubo no se cae porque no se le está aplicando esta fuerza de la gravedad, de fuerza física. 257 00:55:04,000 --> 00:55:12,000 Entonces, cada uno de estos componentes, este nombre que tiene aquí, se corresponde con... 258 00:55:13,000 --> 00:55:17,000 cuando estudiéis la parte de Programación Orientada Objetos de la unidad 0, que vais a decir, 259 00:55:18,000 --> 00:55:28,000 ¿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. 260 00:55:29,000 --> 00:55:35,000 Voy a ir más allá y lo vais a entender mejor. Esto es importante para ir haciendo en la cabeza. 261 00:55:36,000 --> 00:55:42,000 Cuando abramos el script, tenemos aquí el script esperando algo. Para abrirlo, recordad que tiene que estar asociado 262 00:55:43,000 --> 00:55:49,000 en External Tools el Visual Studio correspondiente que lo va a gestionar. Entre el 2019 y el 2022, 263 00:55:50,000 --> 00:55:54,000 habrá diferencias para programadores avanzados. Para nosotros es lo mismo, pero esta versión de verdad, 264 00:55:54,000 --> 00:56:00,000 que la que yo os digo 2020, la asociada que instala como módulo por defecto es la 2019. 265 00:56:01,000 --> 00:56:08,000 Para abrir, doble clic sobre ese botón. Se os abrirá una ventana de Visual Studio, cargará y os abrirá esto por defecto. 266 00:56:09,000 --> 00:56:14,000 Esperamos un poco, que sobre todo el primero tarda más. A ver que lo tengo con bastante zoom. 267 00:56:15,000 --> 00:56:21,000 Aquí podemos cambiar un poco el zoom. Bueno, no voy a dejar 150. Yo creo que se ve bien, ¿verdad? 268 00:56:21,000 --> 00:56:26,000 ¿Qué tal? ¿Hasta aquí me vais siguiendo? Sé que voy rápido, pero con el tema y tal leyéndolo, 269 00:56:27,000 --> 00:56:31,000 un poco voy hablando de estas cosas. ¿Hasta aquí qué tal? ¿Me vais siguiendo? ¿Se ve bien el texto? 270 00:56:32,000 --> 00:56:42,000 Sí, vale. Esta parte de código, que es de la forma que viene planteada de primeras, pues tranquilidad, 271 00:56:43,000 --> 00:56:47,000 esto lo iremos viendo. Pero vais a ver que hay una cosa que no suena, que es este script1, 272 00:56:48,000 --> 00:56:54,000 que se llama así, igual que el script que hemos creado aquí. Se llama igual porque cuando creamos un script, 273 00:56:55,000 --> 00:56:59,000 lo que estamos generando es una clase nueva, un objeto nuevo de programación. 274 00:57:00,000 --> 00:57:06,000 Aquí vais a ver, aunque todavía no sepamos muy bien qué quiere decir todo esto, que se ha creado esto. 275 00:57:07,000 --> 00:57:14,000 Aquí hay una clase que se llama script1. Para que este objeto que está en Unity se asocie bien al código 276 00:57:14,000 --> 00:57:18,000 que estamos tocando en Visual Studio, se tiene que llamar exactamente igual. 277 00:57:19,000 --> 00:57:24,000 Si yo aquí, por ejemplo, digo... Lo voy a hacer aquí. Me he equivocado del nombre y no, yo lo quería llamar 278 00:57:25,000 --> 00:57:30,000 disparar, porque es el script que vamos a usar para disparar y lo guardo. Nada te va a dar error, 279 00:57:31,000 --> 00:57:38,000 pero como aquí vuelvo al Visual Studio... De hecho, mira, ya no lo está reconociendo y algo pasa. 280 00:57:39,000 --> 00:57:45,000 Yo aquí, cuando abra, le doy doble clic. Como esto se va a seguir llamando, que no se va a actualizar solo script1, 281 00:57:46,000 --> 00:57:51,000 todo lo que vayamos haciendo a este código no se va a traducir bien. De hecho, cuando clicáis aquí vais a ver 282 00:57:52,000 --> 00:57:57,000 que sale el mismo código y sigue poniendo script1. Vais a ver que no se van a relacionar, os va a dar fallo. 283 00:57:58,000 --> 00:58:02,000 Por eso, si se cambia el nombre aquí, hay que ir con mucho cuidado aquí y cambiar el nombre de la clase. 284 00:58:02,000 --> 00:58:09,000 Se tienen que llamar siempre igual. Cuidado con las líneas, con los saltos. Disparar. 285 00:58:10,000 --> 00:58:15,000 Luego, importante, y esto también pasa en todos los softwares. Igual que os he dicho antes, aquí hay una estrellita, 286 00:58:16,000 --> 00:58:21,000 un asterisquillo, que nos indica que no están guardados los avances, los cambios que hemos hecho. 287 00:58:22,000 --> 00:58:27,000 Para guardar, como siempre, Control-S. Le he dado y se ha guardado. Para que los cambios que yo vaya haciendo 288 00:58:28,000 --> 00:58:33,000 en el código también se vean reflejados. Ahora, cuando clico aquí, ya sí pone disparar. Para que se vean reflejados. 289 00:58:34,000 --> 00:58:41,000 De hecho, si yo pongo aquí disparar2 y vuelvo a Unity y no he guardado, aunque yo le dé, aquí no se ha actualizado. 290 00:58:42,000 --> 00:58:47,000 Así que, importante, todo cambia. Y vuelvo a poner el nombre que tiene el script. Todo cambia. 291 00:58:47,000 --> 00:58:52,000 Todo cambia, que vayamos haciendo Control-S, para que no dé problema. 292 00:58:53,000 --> 00:58:59,000 Cuando vayamos viendo ejemplos de qué se hace con scripts, vais a ver que pasa otra cosa. 293 00:58:59,000 --> 00:59:07,000 Igual estáis aquí diciendo, esto ya lo veremos, pero transformPosition es igual a las coordenadas que doy, 294 00:59:08,000 --> 00:59:13,000 dónde tiene que estar la posición es, esto ya lo veremos, pero aquí estoy diciéndole que al empezar el juego, 295 00:59:19,000 --> 00:59:27,000 el objeto se ubique en las coordenadas 0, 0, 0. Y esto, vamos a ver, que hemos guardado y todo eso, 296 00:59:28,000 --> 00:59:35,000 pero yo, si voy al objeto, importante, para hacer zoom al objeto y verlo de cerca, en el panel de escena podéis 297 00:59:36,000 --> 00:59:42,000 seleccionarlo y darle a la tecla F o, me vuelvo a alejar, darle doble clic al objeto y os acerca a ese objeto. 298 00:59:46,000 --> 00:59:52,000 Todo esto lo ponen los contenidos igualmente. Las coordenadas que tiene ahora mismo este cubo, 299 00:59:52,000 --> 01:00:01,000 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. 300 01:00:02,000 --> 01:00:11,000 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. 301 01:00:12,000 --> 01:00:18,000 Le doy al play y el objeto no se ha movido en absoluto, sigue en las coordenadas que estaba. ¿Por qué? 302 01:00:19,000 --> 01:00:24,000 Y esto es la lógica que hay que seguir también. ¿Por qué? Primero, porque ¿en qué momento hemos dicho 303 01:00:25,000 --> 01:00:31,000 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. 304 01:00:32,000 --> 01:00:37,000 Hay que pensar siempre que queramos que un script se aplique a un objeto, a un GameObject. Aquí todo se llama GameObject, 305 01:00:38,000 --> 01:00:44,000 todos los cubitos estos, todos los elementos que veis que tanto la luz como las cámaras suelen tener el mismo iconito, 306 01:00:45,000 --> 01:00:52,000 algunos variarán, pero de momento todos son GameObjects. Hasta que no le asociemos este script, que es otro componente, 307 01:00:53,000 --> 01:01:01,000 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, 308 01:01:02,000 --> 01:01:07,000 que puede haber más, pues este disparar, que en realidad sirve para que se reubique la posición, lo arrastramos como componente. 309 01:01:07,000 --> 01:01:16,000 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. 310 01:01:17,000 --> 01:01:24,000 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. 311 01:01:25,000 --> 01:01:38,000 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. 312 01:01:39,000 --> 01:01:47,000 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, 313 01:01:47,000 --> 01:01:52,000 es decir, otro objeto con otra clase, que en este caso se llama Disparar, que es la que hemos puesto aquí. 314 01:01:53,000 --> 01:02:03,000 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. 315 01:02:04,000 --> 01:02:09,000 Todo seguido y con lo que vemos la separación de palabras es con las mayúsculas. 316 01:02:10,000 --> 01:02:15,000 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. 317 01:02:16,000 --> 01:02:23,000 Y cuando voy a cubo no está funcionando porque no está detectando qué clase es a la que estamos hablando. 318 01:02:24,000 --> 01:02:31,000 ¿Por qué? Nuevamente, porque no está asociado el nombre del objeto, que es MoverObjeto, con la clase que está gestionando este script. 319 01:02:32,000 --> 01:02:37,000 Por tanto, como he vuelto a cambiar el nombre, aquí con cuidadete, MoverObjeto y guardamos. 320 01:02:38,000 --> 01:02:45,000 Y ahora cuando volvamos a Unity, pues recargará y ahora sí que sí, volvemos a cubo y ahí está MoverObjeto. 321 01:02:46,000 --> 01:02:53,000 Y fijaos cómo es que aquí nos ha puesto un espacio. Esta es la forma en la que el editor, el inspector, 322 01:02:54,000 --> 01:02:59,000 lo visual que vamos viendo aquí, cómo se reflejan todos los parámetros, nos lo intenta hacer fácil y amigable, 323 01:02:59,000 --> 01:03:04,000 tan amigable que aunque a nivel de código hay que escribirlo así, porque si no da fallos, 324 01:03:05,000 --> 01:03:09,000 aquí nos lo va separando cuando detecta que estamos poniendo hasta mayúsculas. 325 01:03:10,000 --> 01:03:14,000 Y recordad, os he dicho, cada componente es una clase, un objeto, una clase, un objeto. 326 01:03:15,000 --> 01:03:21,000 Estos que vamos añadiendo aquí son ya clases como esta, que se llamarán BoxCollider. 327 01:03:22,000 --> 01:03:27,000 Ahí en algún punto si buscáramos un código, un script que se llama BoxCollider, que lo han configurado a otro iconito 328 01:03:28,000 --> 01:03:32,000 y ciertos parámetros, pero al final es otro código cuya clase es BoxCollider. 329 01:03:33,000 --> 01:03:37,000 Entonces, pensar en cada uno de estos apartados o de los componentes, por ejemplo, 330 01:03:38,000 --> 01:03:43,000 yo que sé, cualquier cosa, el Physics Raycaster, pues esto es otro componente. 331 01:03:44,000 --> 01:03:49,000 Hay otro componente que es la cámara. Si nos vamos metiendo en el código, llegaremos a la cámara. 332 01:03:50,000 --> 01:03:53,000 Hasta aquí, ¿qué tal? Más o menos. 333 01:03:58,000 --> 01:04:02,000 Muchas cosas, ¿no? Imagino. Pero bueno, poco a poco iremos viéndolo. 334 01:04:03,000 --> 01:04:09,000 Si veis aquí hay bastantes... muchas cosas, sí, sí. Y, Saúl, muchas más que va a haber. 335 01:04:10,000 --> 01:04:14,000 Este módulo es complicado. Bueno, yo hago un inciso también para procesar. 336 01:04:15,000 --> 01:04:18,000 Yo no soy desarrollador de videojuegos de profesión, nunca lo he sido. 337 01:04:19,000 --> 01:04:23,000 Bueno, por cómo se asignan los módulos me toca a mí, desde el año pasado. 338 01:04:23,000 --> 01:04:26,000 El año pasado sí que tuve que tocar por primera vez Unity y formarme. 339 01:04:27,000 --> 01:04:31,000 Este año ya voy más suelto. Pero mi nivel tampoco llega a ser súper avanzado. 340 01:04:32,000 --> 01:04:34,000 Entonces, creo que vamos a ver un montón de cosas, muchísimas. 341 01:04:35,000 --> 01:04:40,000 Pero en cierto momento, si me preguntáis algo que se sale de lo que estamos viendo, 342 01:04:41,000 --> 01:04:44,000 os intentaré responder de la mejor forma o daros otros recursos. 343 01:04:45,000 --> 01:04:48,000 Pero no voy a negar que yo no soy desarrollador a nivel profesional. 344 01:04:49,000 --> 01:04:54,000 Me sé todas las cosas que pueden pasar. Pero bueno, aún así vais a ver que hay muchas cosas. 345 01:04:55,000 --> 01:05:00,000 Por tanto, creo que no se va a dar esta circunstancia, menos en cosas que planteéis muy alejadas. 346 01:05:01,000 --> 01:05:06,000 Y tampoco soy programador. Este módulo un poco es de desarrollo, es de programación. 347 01:05:07,000 --> 01:05:10,000 Pero tened en cuenta que somos de la familia de imagen y sonido, los profes somos de imagen y sonido. 348 01:05:11,000 --> 01:05:15,000 Entonces, es como una programación, digamos, orientada a iniciación para gente de imagen y sonido. 349 01:05:15,000 --> 01:05:19,000 Si alguno, que a veces pasa, es programador, pues probablemente sepa programar mejor que yo 350 01:05:20,000 --> 01:05:27,000 y lo entienda todo mejor que yo. Entonces, bueno, simplemente para que sepáis que esto sucede. 351 01:05:28,000 --> 01:05:33,000 Cuando... Sí, ya os digo, en el propio tema también hay un tutorial explicando esto, a lo mejor, 352 01:05:34,000 --> 01:05:37,000 de una forma más sucinta. Y en el propio tema está todo esto. 353 01:05:38,000 --> 01:05:40,000 Que no es que esto, si no vierais el vídeo, no sabréis hacerlo. 354 01:05:40,000 --> 01:05:45,000 Pero sí que estoy intentando ver las primeras cosas que dan fallo o que nos vuelven un poco locos. 355 01:05:46,000 --> 01:05:51,000 En plan, no me funciona. Por ejemplo, es que la clase del script no se llama como el objeto. 356 01:05:52,000 --> 01:05:56,000 Que tenemos el GameObject. Vamos, el script que tenemos en Unity. 357 01:05:57,000 --> 01:06:04,000 Aquí vais a ver que hay muchos elementos que son como lo que se llaman librerías o namespaces. 358 01:06:04,000 --> 01:06:08,000 Qué importante, cuando os ponéis encima de cualquier elemento, en el Visual Studio, 359 01:06:09,000 --> 01:06:11,000 tiene muchas ayudas y, de hecho, es bastante esencial. 360 01:06:12,000 --> 01:06:16,000 Que, por ejemplo, en la primera línea vais a ver que os pone de qué tipo es este objeto. 361 01:06:17,000 --> 01:06:20,000 Y aquí os pone namespace. Si, por ejemplo, nos ponemos en Start, 362 01:06:21,000 --> 01:06:25,000 os pondrán VoyMoverObjeto.Start y paréntesis. Esto es lo que se llama una función. 363 01:06:26,000 --> 01:06:29,000 En MonoBehaviour vais a ver que es una clase. Otra vez lo de clases. 364 01:06:30,000 --> 01:06:32,000 Si me pongo en MoverObjeto, al ponerme encima, te dice esto es la clase MoverObjeto. 365 01:06:33,000 --> 01:06:35,000 Aquí está muy claro, porque está aquí lo de clase. 366 01:06:36,000 --> 01:06:40,000 Pero es que luego, en cierto momento, también vamos a poder recurrir a MoverObjeto sin ponerlo de clase. 367 01:06:41,000 --> 01:06:47,000 Y está muy útil saber que esto es MoverObjeto y es una clase. 368 01:06:48,000 --> 01:06:51,000 Aquí ya habría que hacer más operaciones, etcétera. Esto ya lo veremos también. 369 01:06:52,000 --> 01:06:55,000 Pero que tengáis en cuenta que al poneros encima de los objetos, os va diciendo 370 01:06:56,000 --> 01:06:59,000 Posición es de la clase Transform, un parámetro que se llama Posición. 371 01:06:59,000 --> 01:07:06,000 Un Vector3 tiene una estructura de tres floats. Todo esto lo iremos viendo. 372 01:07:07,000 --> 01:07:10,000 Pero que es importante. Igual que cuando vayamos escribiendo ciertas palabras, 373 01:07:11,000 --> 01:07:14,000 nos va ayudando. A veces nos sugiere Transform. 374 01:07:15,000 --> 01:07:19,000 Ya os diré qué hago, pero hoy no quiero ir demasiado lejos. 375 01:07:20,000 --> 01:07:25,000 Y os va sugiriendo opciones dentro de lo que tenga lógica en el momento que estéis escribiendo. 376 01:07:26,000 --> 01:07:28,000 Entonces es una ayuda importantísima. 377 01:07:29,000 --> 01:07:34,000 Igual que cuando vamos escribiendo ciertas cosas, si salen estos tachados rojos, estos subrayados rojos, 378 01:07:35,000 --> 01:07:38,000 significa que hay un error. Un error además grave. 379 01:07:39,000 --> 01:07:42,000 Si aparece ese rojo y guardara... Esto lo he escrito al tuntún. 380 01:07:43,000 --> 01:07:46,000 Hay un código que no sabe qué hacer el programa. Y cuando el programa se pone... 381 01:07:47,000 --> 01:07:51,000 Hay algo que no sabe qué hacer, se pone de esta guisa, que es que sale un aviso rojo 382 01:07:52,000 --> 01:07:54,000 y cuando intento ejecutar el juego no me deja. 383 01:07:55,000 --> 01:08:00,000 Vais a ver que la programación en sí es muy exquisita porque con tener una letra mal escrita, 384 01:08:01,000 --> 01:08:04,000 ya sale, por ejemplo, aquí, que se me ha olvidado poner la S. 385 01:08:05,000 --> 01:08:09,000 Y de pronto sale este error y yo digo, ah, vale, voy a seguir. 386 01:08:10,000 --> 01:08:13,000 Pues no os deja jugar, no os deja testear el juego, no os va a dejar avanzar. 387 01:08:14,000 --> 01:08:17,000 Entonces, siempre que veáis este subrayado rojo, sabéis que os va a dar error. 388 01:08:18,000 --> 01:08:22,000 Que no es lo mismo que si en cierto momento... A ver, un ejemplo... 389 01:08:23,000 --> 01:08:26,000 Voy a poner una cosa que tampoco sabemos qué es. 390 01:08:33,000 --> 01:08:38,000 Hacemos esto y sale un subrayado verde. El subrayado verde, como los propios colores indican, 391 01:08:39,000 --> 01:08:41,000 significa que algo pasa, pero esto no es un error fatal. 392 01:08:42,000 --> 01:08:47,000 Aunque hayamos declarado algo y nos dé ese error, ahora nos sale un warning que es amarillo 393 01:08:47,000 --> 01:08:52,000 y este sí deja testear el juego, sí dejará hacer lo que haya que hacer. 394 01:08:53,000 --> 01:08:55,000 En este caso es que ha puesto el objeto en el 000. 395 01:08:56,000 --> 01:09:01,000 Cuando hay este tipo de subrayados verdes significa, esto ya lo veremos también, 396 01:09:02,000 --> 01:09:03,000 que hemos declarado una variable, pero luego no se usa. 397 01:09:04,000 --> 01:09:06,000 Es decir, que ahora mismo esta línea no molesta, pero no aporta nada. 398 01:09:07,000 --> 01:09:10,000 No está mal escrita, sabe qué es, pero no está aportando nada. 399 01:09:11,000 --> 01:09:16,000 De hecho, cuando nos ponemos encima, veis que os pone aquí una cosa en plan, 400 01:09:17,000 --> 01:09:19,000 para saber qué es lo que pone en la segunda línea. 401 01:09:20,000 --> 01:09:22,000 La variable comprobación se ha declarado, pero nunca se usa. 402 01:09:23,000 --> 01:09:27,000 No es un problema error fatal, pero bueno, si no se va a usar, pues fuera. 403 01:09:28,000 --> 01:09:30,000 Y todo más tranquilo. Pero los verdes se pueden dejar ahí, no hay problema. 404 01:09:31,000 --> 01:09:32,000 Cosas que os irán surgiendo. 405 01:09:33,000 --> 01:09:38,000 Se parece un poco, sí. Al final, todo tiene algo que ver. 406 01:09:39,000 --> 01:09:43,000 Es bastante diferente. Se parece más a Javascript, si has tocado esa parte. 407 01:09:43,000 --> 01:09:46,000 Pero el código, al final, es un poco así. 408 01:09:47,000 --> 01:09:51,000 El próximo día que tengamos tutorial, me meteré un poco más en sintaxis, 409 01:09:52,000 --> 01:09:58,000 que son estas llavecitas, para quien haya hecho HTML o lo haya visto, sabrá más. 410 01:10:02,000 --> 01:10:05,000 Todas estas funcionalidades que van saliendo aquí, a medida que escribimos, 411 01:10:06,000 --> 01:10:09,000 no salen de la nada. Es porque se están viendo librerías aquí, 412 01:10:09,000 --> 01:10:12,000 que tienen un montón de configuraciones prehechas, 413 01:10:13,000 --> 01:10:16,000 que nos permiten ir detectando parámetros. 414 01:10:17,000 --> 01:10:20,000 Por ejemplo, hay un parámetro de sana transformación, otro de red transformación. 415 01:10:21,000 --> 01:10:23,000 Eso es porque tenemos aquí librerías instaladas. 416 01:10:24,000 --> 01:10:27,000 Más adelante tendremos que ir incorporando más librerías, 417 01:10:28,000 --> 01:10:35,000 como por ejemplo Unity Engine. 418 01:10:36,000 --> 01:10:41,000 Cuando queramos hacer gestión de escenas, hasta que no pongamos esta línea, 419 01:10:42,000 --> 01:10:46,000 no nos van a salir, por ejemplo, estos parámetros. 420 01:10:47,000 --> 01:10:49,000 Imaginaos que pongo aquí Scene Manager. 421 01:10:51,000 --> 01:10:53,000 Voy a poner algo que no dé error. 422 01:11:06,000 --> 01:11:08,000 GetActiveScene, por ejemplo. 423 01:11:09,000 --> 01:11:12,000 Y ahora no da error. No sabemos qué es, pero vemos que no da error. 424 01:11:13,000 --> 01:11:15,000 Importante, cuando más adelante estemos trabajando, 425 01:11:16,000 --> 01:11:20,000 imaginaos que yo borro esta línea porque no está, veréis que da error. 426 01:11:21,000 --> 01:11:24,000 ¿Por qué? Porque no está detectando una librería que contiene la información 427 01:11:25,000 --> 01:11:27,000 de qué hace esta orden. Importante. 428 01:11:28,000 --> 01:11:31,000 Por defecto, vamos a ir tirando con estas tres librerías. 429 01:11:31,000 --> 01:11:37,000 Y ojo con esto que pone MonoBehaviour, que es otra clase que tiene Unity, 430 01:11:38,000 --> 01:11:41,000 específica de Unity, de la que heredan todas las clases que iremos viendo 431 01:11:42,000 --> 01:11:45,000 con también atributos. Es decir, hay como librerías externas 432 01:11:46,000 --> 01:11:50,000 y luego los propios códigos que ya tiene Unity incorporados 433 01:11:51,000 --> 01:11:54,000 a través de una programación especial que tenía. 434 01:11:55,000 --> 01:11:57,000 De hecho, lo pone ahí. MonoBehaviour es la base clase 435 01:11:58,000 --> 01:12:01,000 desde la cual cualquier script de Unity deriva. 436 01:12:02,000 --> 01:12:05,000 Esto, que es una operación de herencia, al final también permite 437 01:12:06,000 --> 01:12:10,000 que haya ciertos comportamientos que si no, no estarían por defecto 438 01:12:11,000 --> 01:12:15,000 en el lenguaje C Sharp. Esto quiere decir que no podemos, por ejemplo, 439 01:12:16,000 --> 01:12:19,000 borrar cosas al tuntún porque va a empezar a dar fallos. 440 01:12:20,000 --> 01:12:22,000 Por ejemplo, el transform no viene de estos namespace. 441 01:12:23,000 --> 01:12:26,000 El transform es una instrucción, una palabra clave, por decirlo de alguna forma, 442 01:12:27,000 --> 01:12:31,000 que viene de MonoBehaviour. Si, de hecho, le dierais a Control 443 01:12:32,000 --> 01:12:35,000 y a esta clase, os abre aquí un montón de cosas, 444 01:12:36,000 --> 01:12:39,000 que es lo que hay detrás de estas clases. Podemos ir entrándonos 445 01:12:40,000 --> 01:12:43,000 en el agujero hasta infinito, porque ya es cosa muy avanzada, 446 01:12:44,000 --> 01:12:49,000 pero digamos que todo está heredando de otra información 447 01:12:50,000 --> 01:12:53,000 que ha hecho quien haya desarrollado Unity, por ejemplo. 448 01:12:54,000 --> 01:12:56,000 ¿Qué tal hasta aquí? 449 01:13:04,000 --> 01:13:07,000 ¿Todo OK? Vale. 450 01:13:08,000 --> 01:13:11,000 Más cosas importantes, así a priori. 451 01:13:13,000 --> 01:13:18,000 Vale, sí. Nada, y leed el tema. Esto viene explicado en el tema, de verdad. 452 01:13:19,000 --> 01:13:22,000 Igual con menos detalle, y hay cosas que estoy adelantando que ya veremos. 453 01:13:23,000 --> 01:13:28,000 Pero sí, para eso estoy grabando la tutoría, que de hecho voy a comprobar... 454 01:13:29,000 --> 01:13:31,000 Perfecto, se está grabando bien. 455 01:13:32,000 --> 01:13:36,000 Cuando empezamos a trabajar en Unity vais a ver que están, 456 01:13:37,000 --> 01:13:39,000 por ejemplo, quien antes ha mencionado lo de HTML, 457 01:13:40,000 --> 01:13:42,000 estas llavecitas que vais a ver constantemente. 458 01:13:43,000 --> 01:13:45,000 Las llavecitas, digamos que es... 459 01:13:46,000 --> 01:13:50,000 La llavecita de abertura y cierre implica el ámbito 460 01:13:50,000 --> 01:13:53,000 dentro del que se van a dar ciertas instrucciones. 461 01:13:54,000 --> 01:13:56,000 Por ejemplo, esto que es un método, ya veremos que es un método, 462 01:13:57,000 --> 01:14:00,000 que implica que todo lo que esté aquí dentro de estas llaves 463 01:14:01,000 --> 01:14:03,000 asociado a este método, esto digamos que es un paquete, 464 01:14:04,000 --> 01:14:06,000 todo lo que pongamos aquí se va a ejecutar en el Start. 465 01:14:07,000 --> 01:14:11,000 Si yo, como he hecho antes, pongo Transform, Position, New Vector, 3, 466 01:14:12,000 --> 01:14:16,000 que es una ubicación, pues al empezar el juego 467 01:14:16,000 --> 01:14:21,000 o cuando se inicie este script, que puede ser porque lo lancemos 468 01:14:22,000 --> 01:14:24,000 durante el juego, todo lo que esté en el Start se va a aplicar 469 01:14:25,000 --> 01:14:28,000 en el primer momento que se use este objeto. 470 01:14:29,000 --> 01:14:31,000 Por eso al empezar el juego, el objeto Q al que le hemos aplicado 471 01:14:32,000 --> 01:14:35,000 este script, que sigue estando aquí, nuevo objeto, 472 01:14:36,000 --> 01:14:38,000 al empezar el juego se ha aplicado. 473 01:14:39,000 --> 01:14:43,000 Sin embargo, hay otra sección, otro método, se llama, 474 01:14:43,000 --> 01:14:45,000 otra función, que es el Update. 475 01:14:46,000 --> 01:14:49,000 Aquí vais a ver que ya por defecto vienen estas dos líneas verdes, 476 01:14:50,000 --> 01:14:52,000 una referida al Start y otra al Update. 477 01:14:53,000 --> 01:14:55,000 Esto son lo que se llaman comentarios. 478 01:14:56,000 --> 01:14:59,000 Cuando el código se va ejecutando, toda línea que veáis que empieza 479 01:15:00,000 --> 01:15:05,000 con estas dos barras así inclinadas, significa que es como un comentario 480 01:15:06,000 --> 01:15:09,000 que se ha dejado, que no se va a tener en cuenta a nivel de ejecución, 481 01:15:10,000 --> 01:15:12,000 pero por ejemplo para aclarar, yo ahora mismo aquí puedo poner 482 01:15:13,000 --> 01:15:15,000 dos líneas de estas, que veis que se vuelve verde, 483 01:15:16,000 --> 01:15:20,000 y ponerme un comentario en plan, con esto consigo que el objeto 484 01:15:21,000 --> 01:15:23,000 se vaya a cero, por ponerlo rápido. 485 01:15:24,000 --> 01:15:27,000 Esto es muy útil para ir comentando, para ir dejándote notas. 486 01:15:28,000 --> 01:15:30,000 Si os fijáis aquí pone, justo antes de la aclaración, 487 01:15:31,000 --> 01:15:34,000 Start, este método y lo que hay en sus llaves, se llama, 488 01:15:34,000 --> 01:15:39,000 se activa antes justo del primer frame de actualización. 489 01:15:40,000 --> 01:15:43,000 Es decir, en el primer frame en el que se ponga en uso este script, 490 01:15:44,000 --> 01:15:46,000 va a ocurrir esto. 491 01:15:47,000 --> 01:15:49,000 Y el comentario de lo que esté dentro de este void, 492 01:15:50,000 --> 01:15:51,000 que nos ha dejado aquí el programa de Update, 493 01:15:52,000 --> 01:15:53,000 es llamado una vez por frame. 494 01:15:54,000 --> 01:15:57,000 Cuando vais jugando a un juego, igual que pasa también al ver un vídeo 495 01:15:58,000 --> 01:16:02,000 o al hacer cualquier cosa audiovisual, la reproducción se compone de frames. 496 01:16:02,000 --> 01:16:05,000 Es decir, se irá desarrollando en un número de frames 497 01:16:06,000 --> 01:16:09,000 determinado por, en este caso, la potencia del ordenador. 498 01:16:10,000 --> 01:16:12,000 Cuanta más potencia tenga, más frames por segundo 499 01:16:13,000 --> 01:16:15,000 podrá ir ejecutando. 500 01:16:17,000 --> 01:16:20,000 De hecho, si alguna vez habéis jugado a videojuegos, 501 01:16:21,000 --> 01:16:23,000 muchas veces podéis, en las opciones en el menú del videojuego, 502 01:16:24,000 --> 01:16:27,000 seleccionar cuántos frames por segundo, incluso podéis decir 503 01:16:28,000 --> 01:16:30,000 a qué velocidad de reproducción se va generando, 504 01:16:30,000 --> 01:16:32,000 porque a diferencia de lo que ocurre en algo renderizado, 505 01:16:33,000 --> 01:16:36,000 como un render que hagáis de Maya, por poner un ejemplo, 506 01:16:37,000 --> 01:16:39,000 de Premiere o de After o de un vídeo cualquiera, 507 01:16:40,000 --> 01:16:42,000 ahí ya está definido el número de frames que tiene ese vídeo. 508 01:16:43,000 --> 01:16:49,000 Pero en un videojuego se va creando a medida que se va jugando. 509 01:16:50,000 --> 01:16:53,000 Entonces, podríamos ir definiendo cuántos fotogramas por segundo 510 01:16:54,000 --> 01:16:55,000 tiene el juego. 511 01:16:56,000 --> 01:16:58,000 Aquí, por defecto, lo que va a intentar es 512 01:16:59,000 --> 01:17:01,000 hacer tantos fotogramas por segundo se puedan 513 01:17:02,000 --> 01:17:04,000 con respecto a la potencia que tenga el ordenador. 514 01:17:05,000 --> 01:17:08,000 Entonces, cuando lanzamos este script, le decimos 515 01:17:09,000 --> 01:17:11,000 quiero que la posición transform esté en el 0,0. 516 01:17:12,000 --> 01:17:14,000 Pero a lo mejor queremos que luego, a otra orden, 517 01:17:15,000 --> 01:17:18,000 cada fotograma vaya variando, y para eso tendríamos que meterla 518 01:17:19,000 --> 01:17:21,000 dentro de esta función de Update, de actualización. 519 01:17:24,000 --> 01:17:26,000 Por ejemplo, se me ocurre 520 01:17:26,000 --> 01:17:28,000 para no llevarlo a algo muy avanzado, 521 01:17:29,000 --> 01:17:31,000 a ver si se me ocurre algo, 522 01:17:33,000 --> 01:17:35,000 voy a hacer como un contador. 523 01:17:36,000 --> 01:17:38,000 Esperad un segundillo, que hago una cosa, 524 01:17:39,000 --> 01:17:41,000 esto ya lo iremos viendo. 525 01:17:46,000 --> 01:17:48,000 Esto ya lo veremos. 526 01:17:57,000 --> 01:17:59,000 Vale. 527 01:18:00,000 --> 01:18:03,000 Y ahora os explico alguna cosilla de esto que estoy poniendo. 528 01:18:04,000 --> 01:18:06,000 No todo, pero alguna cosilla. 529 01:18:11,000 --> 01:18:13,000 Vale. 530 01:18:14,000 --> 01:18:16,000 Esto ya es avanzado, pero lo que os digo es 531 01:18:17,000 --> 01:18:19,000 que he hecho un bucle que va a estar leyendo 532 01:18:20,000 --> 01:18:21,000 lo que hay dentro de estas llaves. 533 01:18:22,000 --> 01:18:23,000 Recordad que hay una llave de apertura y una de cierre 534 01:18:23,000 --> 01:18:25,000 que están asociadas, y lo que hay aquí dentro, 535 01:18:26,000 --> 01:18:28,000 lo que le estábamos diciendo es que nos represente 536 01:18:29,000 --> 01:18:32,000 un número que se está ejecutando cada fotograma 537 01:18:33,000 --> 01:18:35,000 hasta llegar al número 9. 538 01:18:40,000 --> 01:18:43,000 Si esto lo vamos ejecutando cada fotograma, 539 01:18:44,000 --> 01:18:47,000 cuando le demos a Play al juego, 540 01:18:50,000 --> 01:18:52,000 si vamos a la consola, 541 01:18:53,000 --> 01:18:55,000 la consola al final lo que hace es darnos comprobaciones 542 01:18:56,000 --> 01:18:58,000 de qué está haciendo el juego de ciertos parámetros 543 01:18:59,000 --> 01:19:01,000 que vayamos poniendo. 544 01:19:02,000 --> 01:19:04,000 Cuando queráis, por ejemplo, poner una orden, 545 01:19:05,000 --> 01:19:07,000 voy a parar el juego, 546 01:19:12,000 --> 01:19:14,000 cuando queramos ir comprobando algo del juego, 547 01:19:15,000 --> 01:19:18,000 lo vamos a tener que mandar a esa carpeta que se llama Consola. 548 01:19:19,000 --> 01:19:21,000 Por ejemplo, imaginaos que yo tengo una opción 549 01:19:21,000 --> 01:19:26,000 que es decirle cuando a un objeto le toque otro 550 01:19:27,000 --> 01:19:28,000 que se muera. 551 01:19:29,000 --> 01:19:33,000 Eso ya diríamos que eso lo haga efectivamente el juego, 552 01:19:34,000 --> 01:19:36,000 pero si yo quiero verlo en consola, 553 01:19:37,000 --> 01:19:39,000 hay un comando que se llama debug.log, 554 01:19:40,000 --> 01:19:42,000 esto lo tenéis que aprender, lo veréis también en el primer tema, 555 01:19:43,000 --> 01:19:47,000 y dentro de los paréntesis 556 01:19:48,000 --> 01:19:50,000 es donde ponemos qué mensaje tiene que mostrar 557 01:19:51,000 --> 01:19:54,000 esa consola a medida que juguemos. 558 01:19:55,000 --> 01:19:57,000 Por ejemplo, yo voy a querer que al empezar el juego, 559 01:19:58,000 --> 01:19:59,000 en el Start lo pongo todavía, 560 01:20:00,000 --> 01:20:04,000 voy a poner que me diga, por ejemplo, 561 01:20:05,000 --> 01:20:07,000 hola mundo, que es como se suele poner. 562 01:20:08,000 --> 01:20:10,000 Cuando arranque el juego, al empezar, 563 01:20:11,000 --> 01:20:12,000 en la consola se va a ver este mensaje de hola mundo 564 01:20:13,000 --> 01:20:14,000 como comprobación. 565 01:20:15,000 --> 01:20:17,000 E importante, como ahora solo quiero ver 566 01:20:18,000 --> 01:20:19,000 este debug.log de hola mundo, 567 01:20:19,000 --> 01:20:20,000 que antes he puesto un código, 568 01:20:21,000 --> 01:20:22,000 ahora vuelvo a explicarlo, 569 01:20:23,000 --> 01:20:24,000 que igual me he adelantado un poco. 570 01:20:25,000 --> 01:20:27,000 Imaginaos que yo este código no quiero que se ejecute, 571 01:20:28,000 --> 01:20:29,000 pero tampoco quiero borrarlo porque ya lo tengo escrito 572 01:20:30,000 --> 01:20:31,000 y igual más adelante lo recupero. 573 01:20:32,000 --> 01:20:33,000 Para esto vuelven a servir los comentarios. 574 01:20:34,000 --> 01:20:35,000 Si yo en una línea vuelvo a poner las dos líneas, 575 01:20:36,000 --> 01:20:37,000 veis que de pronto se comenta, 576 01:20:38,000 --> 01:20:39,000 se convierte en verde todo, 577 01:20:40,000 --> 01:20:41,000 y entonces esto lo tengo aquí, 578 01:20:42,000 --> 01:20:43,000 que en cualquier momento yo lo puedo borrar 579 01:20:44,000 --> 01:20:45,000 y vuelve a activarse, 580 01:20:45,000 --> 01:20:48,000 que es muy útil para ir dejando un comentario 581 01:20:49,000 --> 01:20:50,000 en algo que a lo mejor luego uso, 582 01:20:51,000 --> 01:20:52,000 ciertas líneas, para ir comprobando el código. 583 01:20:53,000 --> 01:20:54,000 Esto está muy bien para eso, 584 01:20:55,000 --> 01:20:56,000 para ir sin borrar. 585 01:20:57,000 --> 01:20:58,000 Estamos probando cosas y hemos escrito bastante código 586 01:20:59,000 --> 01:21:00,000 en vez de borrarlo, 587 01:21:01,000 --> 01:21:02,000 que a lo mejor luego solo estamos testeando 588 01:21:03,000 --> 01:21:04,000 que funciona o no, pues se comenta y listo. 589 01:21:05,000 --> 01:21:06,000 ¿Qué pasa? Aquí, por ejemplo, 590 01:21:07,000 --> 01:21:08,000 voy a comentar esto que no me interesa. 591 01:21:09,000 --> 01:21:10,000 Aquí he comentado esta línea, 592 01:21:11,000 --> 01:21:13,000 pero además he incluido hasta la llave 593 01:21:13,000 --> 01:21:15,000 y ahora esta llave de cierre no está cerrando aquí, 594 01:21:16,000 --> 01:21:17,000 sino que está cerrando esta llave de aquí. 595 01:21:18,000 --> 01:21:19,000 Entonces, al final hay una llave aquí 596 01:21:20,000 --> 01:21:21,000 que no está cerrando nada 597 01:21:22,000 --> 01:21:23,000 porque las he desemparejado. 598 01:21:24,000 --> 01:21:26,000 Entonces, habría que ir comentando todas las líneas 599 01:21:27,000 --> 01:21:28,000 hasta que todo lo que tenga lógica... 600 01:21:29,000 --> 01:21:30,000 ¿Veis que se ha quitado ya el error? 601 01:21:31,000 --> 01:21:32,000 O hay otra forma de comentar, 602 01:21:33,000 --> 01:21:34,000 esto creo que no lo ponen los apuntes, 603 01:21:35,000 --> 01:21:36,000 que es para comentar varias líneas de golpe, 604 01:21:37,000 --> 01:21:39,000 hay otra forma que es poner la línea 605 01:21:40,000 --> 01:21:41,000 en vez de dos, una, 606 01:21:41,000 --> 01:21:42,000 y un asterisquillo. 607 01:21:43,000 --> 01:21:44,000 Y en la línea que queramos que deje de comentar, 608 01:21:45,000 --> 01:21:46,000 al revés, asterisquillo y línea. 609 01:21:47,000 --> 01:21:48,000 Y ahora veis que se ha comentado todo esto. 610 01:21:49,000 --> 01:21:50,000 Está en verde. 611 01:21:51,000 --> 01:21:52,000 Ahora mismo este código yo lo podría 612 01:21:53,000 --> 01:21:54,000 recuperar enseguida borrando esto. 613 01:21:55,000 --> 01:21:56,000 Y ahí está otra vez. 614 01:21:57,000 --> 01:21:58,000 Bueno, aquí como he comentado antes esto también. 615 01:21:59,000 --> 01:22:00,000 Pero no lo borro. 616 01:22:01,000 --> 01:22:02,000 Entonces esto es muy útil para, 617 01:22:03,000 --> 01:22:04,000 en plan estoy probando una línea y no me funciona, 618 01:22:05,000 --> 01:22:06,000 la voy a dejar comentada y luego vemos. 619 01:22:07,000 --> 01:22:08,000 Entonces, ahora mismo en el update 620 01:22:09,000 --> 01:22:10,000 no se está ejecutando nada 621 01:22:12,000 --> 01:22:13,000 y en el start, al empezar, 622 01:22:14,000 --> 01:22:15,000 el objeto que tenga el script 623 01:22:16,000 --> 01:22:17,000 se va a ir al 000 624 01:22:18,000 --> 01:22:19,000 y aparte quiero que en la consola, 625 01:22:20,000 --> 01:22:21,000 esto ahora mismo es muy abstracto 626 01:22:22,000 --> 01:22:23,000 por decir, ¿para qué voy a querer 627 01:22:24,000 --> 01:22:25,000 que ponga Hola Mundo en la consola? 628 01:22:26,000 --> 01:22:27,000 Bueno, ya veremos que esto tiene 629 01:22:28,000 --> 01:22:29,000 más aplicaciones en el futuro. 630 01:22:30,000 --> 01:22:31,000 Pero guardo y si voy aquí ahora 631 01:22:32,000 --> 01:22:33,000 al editor, al darle a play, 632 01:22:34,000 --> 01:22:35,000 en la consola vais a ver que va a poner 633 01:22:36,000 --> 01:22:37,000 Hola Mundo. 634 01:22:38,000 --> 01:22:39,000 Ha funcionado. 635 01:22:39,000 --> 01:22:40,000 Y sólo una vez, 636 01:22:41,000 --> 01:22:42,000 porque sólo se ha ejecutado 637 01:22:43,000 --> 01:22:44,000 al empezar el juego. 638 01:22:45,000 --> 01:22:46,000 Que no es lo mismo, 639 01:22:47,000 --> 01:22:48,000 y vuelvo al código, 640 01:22:49,000 --> 01:22:50,000 que corto esta línea, 641 01:22:51,000 --> 01:22:52,000 Control X, y la pego en el update 642 01:22:53,000 --> 01:22:54,000 y ahora lo que le estoy diciendo 643 01:22:55,000 --> 01:22:56,000 es esta línea, esta comprobación, 644 01:22:57,000 --> 01:22:58,000 este Hola Mundo que aparezca 645 01:22:59,000 --> 01:23:00,000 en cada fotograma del juego. 646 01:23:01,000 --> 01:23:02,000 Esta instrucción vais a ver 647 01:23:03,000 --> 01:23:04,000 que ha cambiado radicalmente 648 01:23:05,000 --> 01:23:06,000 en el sentido de que cuando desactivo 649 01:23:07,000 --> 01:23:08,000 y en la consola cuando ya tengáis 650 01:23:09,000 --> 01:23:10,000 los elementos para no confundiros 651 01:23:11,000 --> 01:23:12,000 entre un play y otro, 652 01:23:13,000 --> 01:23:14,000 aunque lo suelo hacer por defecto, 653 01:23:15,000 --> 01:23:16,000 le podéis dar a clear, 654 01:23:17,000 --> 01:23:18,000 que son los mensajes, 655 01:23:19,000 --> 01:23:20,000 no pasa nada, no estáis borrando nada. 656 01:23:21,000 --> 01:23:22,000 Si volvemos a ejecutar el juego 657 01:23:23,000 --> 01:23:24,000 ahora se generarán los mensajes 658 01:23:25,000 --> 01:23:26,000 de esta nueva reproducción. 659 01:23:27,000 --> 01:23:28,000 Y vais a ir viendo que aparece 660 01:23:29,000 --> 01:23:30,000 mucho Hola Mundo, 661 01:23:31,000 --> 01:23:32,000 uno por cada fotograma. 662 01:23:33,000 --> 01:23:34,000 Vais viendo que aquí pone la hora 663 01:23:35,000 --> 01:23:36,000 en la que se está ejecutando 664 01:23:37,000 --> 01:23:38,000 y como habrá bastantes fotogramas 665 01:23:39,000 --> 01:23:40,000 para decir esto, 666 01:23:41,000 --> 01:23:42,000 vais a ver que al pulsar 667 01:23:43,000 --> 01:23:44,000 os pone cosas como en qué script, 668 01:23:45,000 --> 01:23:46,000 que es el mover objetos, 669 01:23:47,000 --> 01:23:48,000 incluso os dice en qué línea 670 01:23:49,000 --> 01:23:50,000 es la que está ejecutando esto 671 01:23:51,000 --> 01:23:52,000 que está ocurriendo, 672 01:23:53,000 --> 01:23:54,000 que si vamos aquí vamos a ver 673 01:23:55,000 --> 01:23:56,000 que la línea 22 es donde estamos 674 01:23:57,000 --> 01:23:58,000 dando esta orden. 675 01:23:59,000 --> 01:24:00,000 Fijaos que aquí os dice 676 01:24:01,000 --> 01:24:02,000 en qué línea se está ejecutando 677 01:24:03,000 --> 01:24:04,000 la orden. 678 01:24:05,000 --> 01:24:06,000 Incluso si damos a doble clic aquí 679 01:24:07,000 --> 01:24:08,000 cuando salgan errores o lo que sea, 680 01:24:09,000 --> 01:24:10,000 esto es útil. 681 01:24:11,000 --> 01:24:12,000 Véis que no es lo mismo 682 01:24:13,000 --> 01:24:14,000 ejecutar las órdenes en Start 683 01:24:15,000 --> 01:24:16,000 que en Update, 684 01:24:17,000 --> 01:24:18,000 que va un fotograma tras otro. 685 01:24:19,000 --> 01:24:20,000 Si yo, por ejemplo, 686 01:24:21,000 --> 01:24:22,000 voy a comentar para no borrar 687 01:24:23,000 --> 01:24:24,000 este backlog, 688 01:24:25,000 --> 01:24:26,000 y vuelvo a coger este For, 689 01:24:27,000 --> 01:24:28,000 simplemente, 690 01:24:29,000 --> 01:24:30,000 y lo pongo, sin comentar, 691 01:24:31,000 --> 01:24:32,000 en Start, es decir, 692 01:24:33,000 --> 01:24:34,000 solo una vez se va a ejecutar 693 01:24:35,000 --> 01:24:36,000 que me enseñe en la consola 694 01:24:37,000 --> 01:24:38,000 que se ejecute hasta 695 01:24:39,000 --> 01:24:40,000 8, en realidad menor de 9. 696 01:24:41,000 --> 01:24:42,000 Esto ya sé que igual, 697 01:24:43,000 --> 01:24:44,000 seguro que no estaréis siguiendo, 698 01:24:45,000 --> 01:24:46,000 pero voy explicando lo que hace. 699 01:24:47,000 --> 01:24:48,000 Ya veremos cómo se hace, 700 01:24:49,000 --> 01:24:50,000 pero quiero que veáis el funcionamiento 701 01:24:51,000 --> 01:24:52,000 de la consola. 702 01:24:53,000 --> 01:24:54,000 Al darle a Play vais a ver 703 01:24:55,000 --> 01:24:56,000 que se ha generado 704 01:24:57,000 --> 01:24:58,000 el 0 al 8 una vez y ya está. 705 01:24:59,000 --> 01:25:00,000 Porque al arrancar el juego 706 01:25:01,000 --> 01:25:02,000 le he dicho 707 01:25:03,000 --> 01:25:04,000 ponme una cuenta del 0 al 8 708 01:25:05,000 --> 01:25:06,000 al comenzar el juego 709 01:25:07,000 --> 01:25:08,000 y me lo ha hecho todo, 710 01:25:09,000 --> 01:25:10,000 en el First Frame. 711 01:25:11,000 --> 01:25:12,000 Que no es lo mismo, 712 01:25:13,000 --> 01:25:14,000 que si esto lo vuelvo a mover, 713 01:25:15,000 --> 01:25:16,000 corto y pego aquí en el Update, 714 01:25:17,000 --> 01:25:18,000 guardo, 715 01:25:19,000 --> 01:25:20,000 y lo ejecuto aquí, 716 01:25:21,000 --> 01:25:22,000 que lo que vais a ver 717 01:25:23,000 --> 01:25:24,000 es que en cada fotograma 718 01:25:25,000 --> 01:25:26,000 me va a contar hasta 8. 719 01:25:27,000 --> 01:25:28,000 Le doy, 720 01:25:29,000 --> 01:25:30,000 veis que aquí se está moviendo, 721 01:25:31,000 --> 01:25:32,000 están cambiando los segundos, 722 01:25:33,000 --> 01:25:34,000 y aunque no se vea muy claro, 723 01:25:35,000 --> 01:25:36,000 veis que aquí hay 724 01:25:37,000 --> 01:25:38,000 más de 999 mensajes, 725 01:25:39,000 --> 01:25:40,000 y aunque haya contado hasta 8, 726 01:25:41,000 --> 01:25:42,000 pues cada fotograma 727 01:25:43,000 --> 01:25:44,000 de los que lo he ido haciendo. 728 01:25:45,000 --> 01:25:46,000 Imaginaos que queréis hacer 729 01:25:47,000 --> 01:25:48,000 un contador de tiempo. 730 01:25:49,000 --> 01:25:50,000 Tendremos que ir consiguiendo 731 01:25:51,000 --> 01:25:52,000 que cada uno de estos fotogramas 732 01:25:53,000 --> 01:25:54,000 en el Update vaya generando 733 01:25:55,000 --> 01:25:56,000 un nuevo número, 734 01:25:57,000 --> 01:25:58,000 que vaya sumando uno a uno. 735 01:25:59,000 --> 01:26:00,000 Para empezar estas dos funciones, 736 01:26:01,000 --> 01:26:02,000 que como ya hemos visto 737 01:26:03,000 --> 01:26:04,000 vienen de lo que tenemos aquí arriba, 738 01:26:05,000 --> 01:26:06,000 sirven para decir, 739 01:26:07,000 --> 01:26:08,000 que esto no ocurre en cesar por defecto, 740 01:26:09,000 --> 01:26:10,000 hay que ejecutar tal código. 741 01:26:11,000 --> 01:26:13,000 De hecho hay más momentos de ejecución. 742 01:26:14,000 --> 01:26:15,000 Ahí está el Void Update, 743 01:26:16,000 --> 01:26:17,000 pero ahí por ejemplo otro que sería 744 01:26:18,000 --> 01:26:19,000 el Awake. 745 01:26:20,000 --> 01:26:21,000 Pues aquí, 746 01:26:24,000 --> 01:26:25,000 en estas llaves 747 01:26:26,000 --> 01:26:27,000 de aquí, 748 01:26:28,000 --> 01:26:29,000 lo que iremos poniendo son 749 01:26:30,000 --> 01:26:31,000 los eventos que se van realizando 750 01:26:32,000 --> 01:26:33,000 según se arranca el juego. 751 01:26:34,000 --> 01:26:35,000 Es decir, aunque no se esté ejecutando 752 01:26:36,000 --> 01:26:37,000 un frame porque este screen 753 01:26:37,000 --> 01:26:38,000 todavía no está en juego, 754 01:26:39,000 --> 01:26:40,000 no ha aparecido ese objeto, 755 01:26:41,000 --> 01:26:42,000 no se ha provocado, 756 01:26:43,000 --> 01:26:44,000 esto ya ha cargado en ese objeto 757 01:26:45,000 --> 01:26:46,000 en potencia ciertos parámetros, 758 01:26:47,000 --> 01:26:48,000 lo hace a priori. 759 01:26:49,000 --> 01:26:50,000 Esto ya lo veremos. 760 01:26:51,000 --> 01:26:52,000 Que sepáis que hay más métodos. 761 01:26:53,000 --> 01:26:54,000 Hasta aquí ya creo que voy a ir parando 762 01:26:55,000 --> 01:26:56,000 porque es mucha información. 763 01:26:57,000 --> 01:26:58,000 Me interesa mucho que vayáis viendo 764 01:26:59,000 --> 01:27:00,000 el tema 1 sobre todo, 765 01:27:01,000 --> 01:27:02,000 que se lo vayáis haciendo 766 01:27:03,000 --> 01:27:04,000 y también ya una vez 767 01:27:05,000 --> 01:27:06,000 el tema 1 os pongáis con la tarea, 768 01:27:07,000 --> 01:27:08,000 que es como el que va a ser más denso 769 01:27:09,000 --> 01:27:10,000 y ya os he dicho que va a ser 770 01:27:11,000 --> 01:27:12,000 a lo largo de todo el curso. 771 01:27:15,000 --> 01:27:16,000 ¿Qué tal? 772 01:27:17,000 --> 01:27:18,000 ¿Cómo estáis? 773 01:27:19,000 --> 01:27:20,000 Muchas cosas, ¿no? 774 01:27:22,000 --> 01:27:23,000 A ver si hay alguna cosa más así 775 01:27:24,000 --> 01:27:25,000 a priori que os pueda ser. 776 01:27:26,000 --> 01:27:27,000 Vamos, no tengo nada más apuntado. 777 01:27:28,000 --> 01:27:29,000 Sí. 778 01:27:30,000 --> 01:27:31,000 Bueno, lo que más os va a abrumar 779 01:27:32,000 --> 01:27:33,000 sobre todo es el comienzo. 780 01:27:34,000 --> 01:27:35,000 A medida que vaya avanzando el curso 781 01:27:35,000 --> 01:27:36,000 pues os costará menos. 782 01:27:37,000 --> 01:27:38,000 Yo, si os sirve de algo, 783 01:27:39,000 --> 01:27:40,000 si os sirve de aliciente, 784 01:27:41,000 --> 01:27:42,000 cuando empecé el curso pasado 785 01:27:43,000 --> 01:27:44,000 no tenía ni idea de esto 786 01:27:45,000 --> 01:27:46,000 y en un año ya voy teniéndola más. 787 01:27:47,000 --> 01:27:48,000 Así que en un curso 788 01:27:49,000 --> 01:27:50,000 esperemos que aprendáis mucho. 789 01:27:51,000 --> 01:27:52,000 Sí, es denso, sí, sí. 790 01:27:53,000 --> 01:27:54,000 El tema 0 es muy denso, ¿vale? 791 01:27:55,000 --> 01:27:56,000 Que está el primero para que esté 792 01:27:57,000 --> 01:27:58,000 durante todo el curso 793 01:27:59,000 --> 01:28:00,000 pero no es para que lo estudiéis 794 01:28:01,000 --> 01:28:02,000 entendiéndolo todo de primeras. 795 01:28:03,000 --> 01:28:04,000 Pero bueno, sí que está bien 796 01:28:05,000 --> 01:28:06,000 como este FOR, por ejemplo, 797 01:28:07,000 --> 01:28:08,000 que ya se ve en el tema 0 798 01:28:09,000 --> 01:28:10,000 pero en la primera tarea, por ejemplo, 799 01:28:11,000 --> 01:28:12,000 no la vais a usar. 800 01:28:13,000 --> 01:28:14,000 Pero el tema 1 sí, 801 01:28:15,000 --> 01:28:16,000 que es el de instalación, 802 01:28:17,000 --> 01:28:18,000 qué hace cada panel, 803 01:28:19,000 --> 01:28:20,000 cómo se navega en la interfaz, etc., 804 01:28:21,000 --> 01:28:22,000 sí que es importante. 805 01:28:23,000 --> 01:28:24,000 No sé si tenéis dudas. 806 01:28:25,000 --> 01:28:26,000 No quiero avanzar mucho más 807 01:28:27,000 --> 01:28:28,000 porque creo que ya os voy a agobiar. 808 01:28:29,000 --> 01:28:30,000 Próximo día veremos lo relativo a variables 809 01:28:31,000 --> 01:28:32,000 que es una función, un método. 810 01:28:32,000 --> 01:28:33,000 Más componentes, 811 01:28:34,000 --> 01:28:35,000 cómo se hace a componentes. 812 01:28:36,000 --> 01:28:37,000 También los GameObjects. 813 01:28:38,000 --> 01:28:39,000 Veremos eso. 814 01:28:40,000 --> 01:28:41,000 En la primera tarea tenéis que hacer una nave 815 01:28:42,000 --> 01:28:45,000 a partir de las geometrías básicas 816 01:28:46,000 --> 01:28:48,000 y hacer vuestro primer script de instanciación. 817 01:28:49,000 --> 01:28:50,000 Entonces, nada. 818 01:28:51,000 --> 01:28:52,000 En un par de semanas, imagino, 819 01:28:53,000 --> 01:28:54,000 convocaré otra tutoría 820 01:28:55,000 --> 01:28:56,000 y, bueno, esperemos que sean más 821 01:28:57,000 --> 01:28:58,000 porque el que no me vaya siguiendo 822 01:28:59,000 --> 01:29:00,000 pues quizás se vaya quedando 823 01:29:00,000 --> 01:29:01,000 un poco atrás. 824 01:29:02,000 --> 01:29:03,000 No sé si tenéis dudas. 825 01:29:04,000 --> 01:29:05,000 No sólo de esto que hemos visto 826 01:29:06,000 --> 01:29:07,000 que además no sabía ni siquiera 827 01:29:08,000 --> 01:29:09,000 si me iba a lanzar tanto a la piscina. 828 01:29:10,000 --> 01:29:11,000 Pero bueno, sobre todo quería que vierais 829 01:29:12,000 --> 01:29:13,000 los primeros problemas que pueden surgir. 830 01:29:15,000 --> 01:29:17,000 Pero eso, que no sé si tenéis dudas 831 01:29:18,000 --> 01:29:19,000 del módulo en general, 832 01:29:20,000 --> 01:29:21,000 alguna cuestión, sugerencia. 833 01:29:22,000 --> 01:29:23,000 Voy a dejar de compartir. 834 01:29:27,000 --> 01:29:28,000 Y me veréis la cara. 835 01:29:28,000 --> 01:29:29,000 Ahí estoy. 836 01:29:30,000 --> 01:29:31,000 ¿Qué tal? 837 01:29:32,000 --> 01:29:33,000 Sí que es muy importante 838 01:29:34,000 --> 01:29:35,000 para estas clases 839 01:29:36,000 --> 01:29:37,000 y en realidad para todas 840 01:29:38,000 --> 01:29:39,000 que tengáis un micrófono 841 01:29:40,000 --> 01:29:41,000 porque es que las dudas, 842 01:29:42,000 --> 01:29:43,000 como tengáis que escribirlas, 843 01:29:44,000 --> 01:29:45,000 nos volvemos locos. 844 01:29:46,000 --> 01:29:47,000 Os pediré que me compartáis pantalla 845 01:29:48,000 --> 01:29:49,000 y lo vamos comentando por audio. 846 01:29:50,000 --> 01:29:51,000 Es que si no es imposible. 847 01:29:52,000 --> 01:29:53,000 En tal sitio, tal, por escrito 848 01:29:54,000 --> 01:29:55,000 no vamos a tardar un montón. 849 01:29:56,000 --> 01:29:57,000 Ya. 850 01:29:58,000 --> 01:29:59,000 Luego otro compañero ya me ha escrito 851 01:30:00,000 --> 01:30:01,000 su primera duda de 852 01:30:02,000 --> 01:30:03,000 no me funciona un script 853 01:30:04,000 --> 01:30:05,000 y hasta que no veas el script 854 01:30:06,000 --> 01:30:07,000 es que no sé cuál es el fallo. 855 01:30:08,000 --> 01:30:09,000 Entonces, que aquí las dudas 856 01:30:10,000 --> 01:30:11,000 sí que me vais a tener que ir 857 01:30:12,000 --> 01:30:13,000 dando mucho contexto 858 01:30:14,000 --> 01:30:15,000 porque si no es imposible. 859 01:30:16,000 --> 01:30:17,000 Para eso, sobre todo, 860 01:30:18,000 --> 01:30:19,000 intentaré hacer tutorías como esta 861 01:30:20,000 --> 01:30:21,000 que me podéis compartir pantalla y tal 862 01:30:22,000 --> 01:30:23,000 y en lo más operativo. 863 01:30:23,000 --> 01:30:24,000 Si ya empecéis a estudiar 864 01:30:25,000 --> 01:30:26,000 ya os he dicho que deberían ser 865 01:30:27,000 --> 01:30:28,000 ocho horas a la semana, fácilmente. 866 01:30:29,000 --> 01:30:30,000 Si os interesa más, pues todas las que queráis. 867 01:30:31,000 --> 01:30:32,000 Y las tareas son muy útiles. 868 01:30:33,000 --> 01:30:34,000 A medida, si estáis abrumados hoy 869 01:30:35,000 --> 01:30:36,000 y no me vais pillando, 870 01:30:37,000 --> 01:30:38,000 pues dentro de un mes a lo mejor 871 01:30:39,000 --> 01:30:40,000 ya cuesta más. 872 01:30:41,000 --> 01:30:42,000 Entonces, sugiero que me sigáis.