Creación de un videojuego en Unity desde cero

espai mover objetos con unity

Creación de un videojuego en Unity desde cero

Hola a todos y bienvenidos a un nuevo artículo del blog de Espai. Hoy vamos a comenzar una serie que consistirá en la creación de un videojuego con Unity desde cero, y en este primer capítulo veremos cómo mover objetos usando la función Translate. Que no Google Translate… Eso da para otro libro.

 

sal, gorda

Maravillas de la traducción automática

 

Aquí tienes una tabla de contenidos, por si quieres ir a alguna sección directamente.

 

Creación del proyecto
Configuración del entorno del editor
Creación del personaje
Creación del script que controlará al personaje
Escritura del código
Diferencias entre Space.World y Space.Self

 

Creación del proyecto

 

creando el proyecto

Abrimos Unity Hub y creamos un proyecto nuevo

 

escogemos 3D y ponemos un nombre de proyecto

escogemos 3D y ponemos un nombre de proyecto

 

 

Aceptamos para crear la estructura de archivos

Aceptamos para crear la estructura de archivos

 

Nuestro flamante proyecto vacío

Nuestro flamante proyecto vacío

 

Configuración del entorno del editor

 

Recolocamos los paneles para trabajar más a gusto. Por mi parte prefiero todos en el lado derecho, el editor en el izquierdo y la consola abajo (donde veremos los inevitables errores)

Recolocamos los paneles para trabajar más a gusto. Por mi parte prefiero todos en el lado derecho, el editor en el izquierdo y la consola abajo (donde veremos los inevitables errores)

 

Creación del personaje

 

Creamos una cápsula, que de momento será nuestro personaje

Creamos una cápsula, que de momento será nuestro personaje

 

¡Ya la tenemos!

¡Ya la tenemos!

 

 

Creación del script que controlará al personaje

 

En el inspector, pulsamos en "add component" y añadimos un nuevo script, que haremos nosotros mismos.

En el inspector, pulsamos en “add component” y añadimos un nuevo script, que haremos nosotros mismos.

 

"Semos" gente ordenada. Por eso creamos una carpeta para poner dentro todos los scripts.

“Semos” gente ordenada. Por eso creamos una carpeta para poner dentro todos los scripts.

 

Movemos el script recién creado a la nueva carpeta.

Movemos el script recién creado a la nueva carpeta.

 

Nuestro script vacío. Como resumen, Start() se ejecutará la primera vez que se cargue en memoria nuestra cápsula (personaje). Update() se ejecutará unas 60 veces por segundo.

Nuestro script vacío. Como resumen, Start() se ejecutará la primera vez que se cargue en memoria nuestra cápsula (personaje). Update() se ejecutará unas 60 veces por segundo.

 

Escritura del código

 

En Start(), ubicamos nuestro objeto en la posición 0, 0, 0.<br /> En Update(), usamos la función Translate(). Ésta necesita como parámetro la dirección en la que vamos a desplazarnos. En el ejemplo, esta compuesto de estas partes:<br /> <strong>1.</strong> Posición a la que nos vamos a desplazar. Puede ser un new Vector3() con el incremento de posición, o una constante como Vector3.forward que ya está "prefabricada" para desplazarse hacia adelante. Otras constantes son right, left, up o down.<br /> <strong>2.</strong> Time.deltaTime. Variable interna de Unity que nos permite ajustar la velocidad para que nuestro videojuego se vea igual en un ordenador rápido y en uno lento.<br /> <strong>3.</strong> velocidad. Variable creada por nosotros, nos permitirá ajustar desde el editor el movimiento del personaje.

En Start(), ubicamos nuestro objeto en la posición 0, 0, 0.
En Update(), usamos la función Translate(). Ésta necesita como parámetro la dirección en la que vamos a desplazarnos. En el ejemplo, esta compuesto de estas partes:
1. Posición a la que nos vamos a desplazar. Puede ser un new Vector3() con el incremento de posición, o una constante como Vector3.forward que ya está “prefabricada” para desplazarse hacia adelante. Otras constantes son right, left, up o down.
2. Time.deltaTime. Variable interna de Unity que nos permite ajustar la velocidad para que nuestro videojuego se vea igual en un ordenador rápido y en uno lento.
3. velocidad. Variable creada por nosotros, nos permitirá ajustar desde el editor el movimiento del personaje.

 

Diferencias entre Space.World y Space.Self

 

Hay un segundo parámetro en Translate que podemos usar: Space.Self o Space.World.<br /> 1. Si usamos Self, Vector3.forward será relativo a nuestro objeto (la cápsula). Significa que si rotamos el objeto, forward apuntará a la dirección en la que lo hemos rotado.<br /> 2. Space.world. No importa la rotación del objeto, forward siempre será el "norte" en el mundo de nuestro juego.

Hay un segundo parámetro en Translate que podemos usar: Space.Self o Space.World.
1. Si usamos Self, Vector3.forward será relativo a nuestro objeto (la cápsula). Significa que si rotamos el objeto, forward apuntará a la dirección en la que lo hemos rotado.
2. Space.world. No importa la rotación del objeto, forward siempre será el “norte” en el mundo de nuestro juego.

 

Es muy fácil cambiar el punto de referencia para desplazar el pbjeto: Basta cambiar Self por World.

Es muy fácil cambiar el punto de referencia para desplazar el pbjeto: Basta cambiar Self por World.

 

Y hasta aquí el artículo de hoy. Si el personaje de la cápsula os parece soso (que lo es) podéis descargar cualquiera del Asset Store, de hecho haremos eso mismo en el próximo artículo.

 

Enhorabuena por leer hasta aquí, no ha sido corto! Felices fiestas y cuidaros de los visuses, hasta el próximo artículo.

Escribe un comentario