Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

Primeros pasos en Unity. El movimiento - Parte 1 - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 10 de septiembre de 2026 por Alvaro H.

70 visualizaciones

Veremos cómo funciona el componente Transform en objetos y las posibilidades que nos ofrece Unity para cambiar de posición los objetos mediante vectores.

Descargar la transcripción

Hay muchas formas de mover un objeto. Vamos a ver hoy la más sencilla porque me permite introducir otros conceptos como el de vectores o el del componente transform. 00:00:06
Pero insisto, a lo largo del curso veremos muchísimas formas en las que podemos desplazar un objeto que al fin y al cabo es una parte fundamental en la creación de videojuegos. 00:00:15
Para ello, me voy a ir a mi Unity. Tengo aquí una escena vacía. Voy a crear un objeto 3D. 00:00:25
Pues vamos a desplazarlo, pero antes de desplazarlo quiero que nos fijemos que aquí en la ventana del inspector 00:00:33
tenemos un componente que es el de Transform. Este componente es peculiar primero porque todos los objetos lo tendrán 00:00:39
y no lo podemos quitar ni siquiera desactivar porque es el que ubica este objeto, este GameObject en el espacio tridimensional 00:00:46
y tiene otra peculiaridad que ahora mismo no entenderemos muy bien pero que más adelante veremos lo útil que es 00:00:51
que es que está integrada por defecto ya en el objeto, es decir, en la clase. 00:00:59
Cuando creemos un script que crea una clase sobre este GameObject, 00:01:03
veremos que la propiedad o el método transform está integrado. 00:01:07
Es decir, que no lo tenemos que llamar de ninguna forma. 00:01:12
Lo tenemos ya disponible y lo vamos a comprobar ahora mismo. 00:01:14
De hecho, voy a crear un script para este GameObject. 00:01:16
Os recuerdo siempre que tengáis muy ordenado todos vuestros assets. 00:01:19
Le voy a llamar cubo para identificarlo bien y que sepamos que es el script que está vinculado a este cubo. 00:01:23
Siempre tenemos que recordar que los scripts tienen que estar vinculados a un GameObject o si no, no se ejecutarán. 00:01:29
Y lo voy a arrastrar. 00:01:36
Vale, ahí lo tengo. 00:01:38
Ya se me ha añadido como un componente más que de hecho puedo activar o desactivar. 00:01:40
Antes de continuar voy a explicar un concepto. 00:01:45
Esto que tenemos aquí en nuestro cubo, que dice posición, tengo una posición en X, lo voy a cambiar por 0, una posición en Y y otra posición en Z. 00:01:48
Eso es una ubicación en el espacio cogiendo los tres parámetros tridimensionales, los tres ejes. 00:01:57
Esos tres parámetros son un vector, concretamente un vector de tres dimensiones, es decir, un vector 3. 00:02:04
Al haber heredado las clases de MonoVishevior, significa que yo puedo crear una clase de tipo, voy a ponerla de momento privada, tipo vector 3. 00:02:08
Es decir, ahora mismo he creado una variable de tipo vector 3. 00:02:24
Ahora le voy a dar un nombre a mi variable, por ejemplo, initPos, por ejemplo, le voy a llamar, es decir, la posición inicial en la que estoy. 00:02:28
Recuerdo que esto es una clase, es una clase heredada, y cómo se declaraban las clases en programación orientada a objetos, es decir, cómo se instanciaban, con el comando new. 00:02:48
Y ahí me va a aparecer, como podéis ver, me sugiere, lógicamente, que sea un vector3. 00:02:58
Y ahora le añadimos los paréntesis, pero fijaros, esto es muy interesante, porque los vectores que son tridimensionales, para declararlos, nos piden tres parámetros. 00:03:03
De hecho, ahí sale la ayuda de nuestro entorno de desarrollo, diciéndonos, nos pide, como podéis ver, un número float, es decir, un número con decimales que represente la posición en X, en el eje X, 00:03:12
otro decimal que represente la posición en Y y otro decimal que represente la posición en Z. 00:03:24
pues voy a dárselos. Le voy a decir que, por ejemplo, mi objeto esté en la posición X, 0, Y, 0 y Z, 0. 00:03:29
Ahora ya puedo hacer con ella lo que quiera, es decir, usarla. 00:03:47
Por ejemplo, un uso muy habitual, posicionar mi objeto en el escenario. 00:03:50
Voy a comprobarlo. Ya os he dicho antes que el método, el componente transform de Unity que tenemos aquí 00:03:55
ya viene incluido directamente en nuestra clase 00:04:03
no otros, si quiero acceder a estos componentes 00:04:07
veréis que no puedo acceder a ellos de forma fácil 00:04:10
tengo que incorporarlos, ya veremos cómo 00:04:13
pero la de transform, el de transform ya está incluido 00:04:15
¿qué significa? que si yo empiezo a escribir transform 00:04:17
veis que me autocompleta, recordad que esto lo tengo que hacer en un método 00:04:20
no lo puedo hacer en cualquier sitio, en este caso en el método star 00:04:24
transform 00:04:27
y si le pincháis veréis que me reconoce 00:04:29
todos los atributos y los métodos disponibles en esta clase 00:04:32
que ya está declarada, no hace falta que yo la declare. 00:04:36
Y entonces ahí tenemos, por ejemplo, y no hace falta si queremos una chuleta 00:04:40
fijaros, quiero cambiar su posición. 00:04:44
Entonces si busco en los atributos de esta clase transform 00:04:48
está el position. 00:04:54
Y si nos fijamos, y además aquí te podemos tirar del ayudante de nuevo 00:04:56
nos dice, este parámetro es un parámetro de tipo vector3, es decir 00:04:59
no es una cadena de texto, no es un integrir, es un vector3 00:05:04
como el que hemos creado, entonces yo le digo 00:05:07
transform position, es decir, la posición en la que está aquí en el GameObject 00:05:11
al que está asociado este script, y si le digo que es igual a 00:05:15
por ejemplo, al que yo he creado aquí, ¿qué ocurrirá? 00:05:19
pues que mi GameObject al que está asociado, es decir, mi cubo 00:05:25
en cuanto lance el script se posicionará en las coordenadas 0, 0, 0. 00:05:29
Lo voy a comprobar. 00:05:34
¿Cómo? Moviendo mi cubo en las tres coordenadas veo que ahora estos son los parámetros. 00:05:37
Pero si todo va bien, en cuanto lance el script se moverá a la posición 0, 0, 0, como podéis ver. 00:05:42
Vayamos poco a poco. 00:05:51
Ya sabemos que los vectores 3 es un tipo de clase que pide tres parámetros, 00:05:52
x, y y z, lógicamente los vectores 2 piden solo 2 00:05:57
porque son bidimensionales 00:06:00
que una vez que los tenemos declarados 00:06:02
y una vez que los tenemos a nuestra disposición 00:06:05
pues podemos asignárselos a la posición, por ejemplo, de un objeto 00:06:06
en principio del que tenemos asociado 00:06:09
pero ahora veremos que también lo podemos asociar a objetos 00:06:11
a otros GameObjects que tenemos en la escena 00:06:14
antes de hacer eso, vamos a mover este objeto 00:06:16
¿cómo se mueve un objeto? 00:06:19
insisto, hay muchas formas 00:06:21
una de ellas es, por ejemplo, aplicando fuerzas 00:06:23
Y cuando tengamos gravedad, por ejemplo, en nuestra escena, si le tiramos una fuerza a alguien, también con un vector, 00:06:25
porque los vectores también pueden determinar vectores de movimiento o de fuerza, pues lo desplazaremos. 00:06:32
Pero aquí lo vamos a hacer un poco a las bravas, entre otras cosas también para entender el concepto. 00:06:39
Por ejemplo, ¿y si yo le digo que en cada fotograma se desplace en una dirección, a lo largo de un eje? 00:06:43
Pues bien, para eso tenemos que entender otra cosa, y es que los vectores se pueden sumar. 00:06:52
Es decir, yo puedo coger un vector, el que he creado, por ejemplo, 0, 0, 0, 00:06:55
y poner otro vector en otra posición y sumar los dos. 00:06:59
¿Qué obtendré? Pues para verlo, vamos a ver algo muy interesante. 00:07:04
Es que os he comentado que yo en todo momento puedo actuar sobre la posición de mi objeto. 00:07:10
Pero no solo eso, sino que también puedo obtenerla. 00:07:17
ejemplo, voy a declarar 00:07:20
una variable 00:07:26
de tipo 00:07:28
vector3 00:07:31
que se llama initPos 00:07:33
y no le he dado ningún valor, lógicamente 00:07:34
pero se lo voy a dar ahora 00:07:36
y se lo voy a dar, cuidado, esto lo tengo que hacer dentro del método 00:07:38
star o de cualquier otro método, le voy a dar 00:07:40
la que tengo yo ahora mismo 00:07:42
¿vale? entonces le voy a decir 00:07:44
que 00:07:47
la variable que acabo de crear 00:07:47
su valor es igual a 00:07:50
Y le tengo que dar un valor de vector3. Veréis que si le doy un valor, por ejemplo, de un número entero, me lo dirá. Me dice, no, no, esto lo que me está pidiendo es una variable de vector3. 00:07:52
Pero sabemos que mi posición, esto, hace referencia a mi posición inicial, que antes era declarado, pero yo en cualquier momento puedo ir a ella y preguntarle. 00:08:04
Le digo, oye, ¿cuál es mi posición? Pues mi posición en la que estoy ahora mismo, 00:08:17
asígnaselo a ese vector 3 que he creado. 00:08:21
Y lo voy a mandar a la pantalla para ver si efectivamente todo funciona. 00:08:23
¿Ves que ahora no lo estoy moviendo al iniciar el juego? 00:08:29
Sencillamente le estoy diciendo que me diga cuál es mi posición. 00:08:31
Voy a lanzar el script y la gente me dirá que mi posición es esta. 00:08:33
Vamos a comprobarlo. Correcto. 00:08:42
voy un paso más allá y si le digo que esta posición me la diga en el 00:08:44
método update recordad que el método update lo que hace es ejecutarse en cada 00:08:51
fotograma si yo le digo la variable de posición la de nipos es en la posición 00:08:54
en la que estoy en este momento dámela escríbeme la en la consola que ocurre 00:09:01
que si yo modifico o muevo ese elemento me lo estará diciendo constantemente 00:09:06
cuál es su posición. Vamos a comprobarlo. En principio empezará por la posición 00:09:10
inicial, por esa, pero en cuanto yo empiece a mover el objeto, vemos, esto no 00:09:14
varía, está en la misma posición, pero si yo desplazo el objeto en cualquier eje, 00:09:23
si nos fijamos, los datos aquí van cambiando en función de dónde lo 00:09:29
desplace yo. Bien, acabamos de descubrir por qué es muy importante o es muy útil 00:09:34
poder hacer modificaciones en nuestros objetos mientras se está ejecutando el 00:09:38
juego porque así vemos cómo afecta a nuestros scripts directamente y 00:09:41
también porque es importante que cuando termine esa ejecución vuelve a la 00:09:46
posición en la que estaba antes para que digamos todo lo que haya hecho no haya 00:09:50
tomado valor sino que sólo ha sido como una prueba 00:09:54
Idioma/s:
es
Materias:
Informática, Imagen y Sonido
Niveles educativos:
▼ Mostrar / ocultar niveles
  • Formación Profesional
    • Ciclo formativo de grado superior
      • Primer Curso
      • Segundo Curso
Autor/es:
Alvaro Holguera Gozalo
Subido por:
Alvaro H.
Licencia:
Reconocimiento - No comercial - Sin obra derivada
Visualizaciones:
70
Fecha:
10 de septiembre de 2026 - 20:31
Visibilidad:
Público
Centro:
CFP JOSÉ LUIS GARCI
Duración:
09′ 57″
Relación de aspecto:
1.78:1
Resolución:
1280x720 píxeles
Tamaño:
526.07 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid