Home | Clases | Unity: Videojuego estilo Space Shooter | Mejoras

Mejoras


Mejoras

A sugerencia de un alumno, se podría mejorar el comportamiento de la nave al llegar a los límites de modo que no sea posible salirse de ellos aún cuando la nave sigue rotando.

Para ello, bastaría con modificar el método FixedUpdate de NaveController para que quite velocity en el eje de movimiento al llegar a los límites. Además, haremos la rotación de la nave dependiente de la variable movimientoH (porque si no al llegar a los límites dejará de rotar al haberle quitado velocity:


void FixedUpdate () {

//Capturo el movimiento en horizontal y vertical de nuestro teclado
float movimientoH = Input.GetAxis("Horizontal");
float movimientoV = Input.GetAxis("Vertical");

//Genero el vector de movimiento asociado, teniendo en cuenta la velocidad
Vector3 movimiento = new Vector3(movimientoH * velocidad, 0.0f, movimientoV * velocidad);

//Aplico ese movimiento al RigidBody de la nave
rb.AddForce(movimiento);

//Le quito la velocity (x o z) si llega a los límites
if (rb.position.x < xMin || rb.position.x > xMax)
{
rb.velocity = new Vector3(0, 0, rb.velocity.z);
}
if (rb.position.z < zMin || rb.position.z > zMax)
{
rb.velocity = new Vector3(rb.position.x, 0, 0);
}

//Restrinjo la posición de la nave a los límites del juego
rb.position = new Vector3
(
Mathf.Clamp (rb.position.x, xMin, xMax),
0.0f,
Mathf.Clamp (rb.position.z, zMin, zMax)
);

//Rotación de la nave en Z en función del movimiento h, la velocidad y el giro
rb.rotation = Quaternion.Euler(0.0f, 0.0f, movimientoH * velocidad * giro);

}


Para finalizar, modifica el valor de la variable giro a -1 si no quieres que la nave rote tanto.

SI estás interesado en avanzar todavía más, te invito a seguir los dos videos siguientes (en inglés):

Extending Space Shooter


Mobile Development: Space Shooter


En el primero de ellos se añaden enemigos, mas daños, un fondo que se va moviendo, etc. y en el segundo se adapta el juego para que los controles funcionen en dispositivos móviles.
Fecha de publicación: 15/10/2018
Asignaturas: realización de proyectos multimedia interactivosdesarrollo de entornos interactivos multidispositivo
Temas: unity space shooter
Utilizamos cookies propias y de terceros para mejorar su experiencia en la navegación. Al seguir navegando entendemos que acepta su uso.
Si lo desea, consulte nuestras políticas de privacidad y cookies
ENTENDIDO
[X] Cerrar

Contacta conmigo


[X] Cerrar

Acceso alumnos