jairogarcíarincón

Receta 2: Movimiento y cámara para un jugador (esfera) en 3D


50.0K

Introducción



En esta receta, trataremos de crear un jugador como una esfera y conseguir que se mueva en ambos ejes ya demás pueda saltar si está sobre el suelo. Además, haremos que la cámara le siga en dichos movimientos. Puedes comprobar el objetivo final haciendo clic AQUÍ.

NOTA: Se han ocultado el fondo, el título y los botones de la escena para mayor comodidad. Se recomienda además moverlos a una posición inferior.


Creación del escenario



En la escena de Juego, empezaremos creando un Jugador mediante una Sphere, así como un suelo sobre el que moverse mediante un Plane.

Adicionalmente, añadiremos a la Sphere un Rigidbody para que se vea afectado por las fuerzas físicas Physics de Unity.

El Suelo tendrá una Scale de 2,1,2 en XYZ para que haya espacio para moverse, y el Jugador tendrá una posición en Y de 3 para comprobar que cae al arrancar el juego.

Por último, para comprobar mejor el resultado, ajustaremos la Main Camera a Position XYZ 0, 5, -15 y Rotation XYZ 15, 0, 0.

Receta 1


Movimiento con el teclado



Para conseguir el movimiento con el teclado en los ejes X y Z, haremos uso de los ejes (Axis) Horizontal y Vertical proporcionados por Unity, que puedes comprobar en Edit > Project Settings > Input y que se controlan con las FLECHAS del teclado o con las teclas WASD.

Crea un nuevo C# script dentro de Assets > Scripts con el nombre JugadorController, arrástralo al objeto Jugador para añadírselo como Component y añade el siguiente código. Observa los comentarios para entender el funcionamiento de cada instrucción:



Ahora tu jugador debería moverse en las direcciones X y Z mediante las teclas. Desde la Inspector Window del jugador podrás además modificar la velocidad de movimiento mediante el deslizador Velocidad.


Salto

Para saltar utilizaremos el control Jump por defecto, que corresponde a la barra espaciadora. Además, comprobaremos si está cayendo para aplicarle una gravedad un poco mayor.

Para ello, primero debemos añadir al suelo la etiqueta (tag) Suelo:

  • Selecciona el Suelo y haz clic en el desplegable Tag de la Inspector Window.
  • Haz clic en Add Tag... y crea una nueva llamada Suelo usando el botón +.
  • Selecciona el Suelo otra vez, haz clic en el desplegable Tag de la Inspector Window y asígnale la etiqueta Suelo recién creada.

Para finalizar. modifica el código del script JugadorController:



Seguimiento de Cámara

Antes de finalizar, vamos a aplicar a nuestra Main Camera un script para que pueda seguir a nuestro Jugador a una determinada distancia siempre fija:

  • Crea un nuevo C# script llamado CamaraController.
  • Arrástralo a la cámara.
  • Añade el código que se muestra a continuación.
  • Arrastra el objeto Jugador a la variable Jugador de la Inspector Window de la Main Camera (componente CamaraController)
  • Modifica la Position XYZ de la Main Camera para que coincida con 0, 10, -10 y la Rotation para que coincida con 45, 0, 0.




Con esto estaría terminada la receta, espero que te haya resultado útil.


Publicado el 21 de Noviembre de 2024

unity