Fall Down en Unity3D

Contactar con el profesor

Ponemos el fondo de pantalla

fall down game con unity 3D

Un misil cae por gravedad

  1. Añadimos el sprite de un misil a la pantalla.
  2. Le añadimos al misil un componente de tipo RigidBody 2D.

Tipos de RigidBody

  • Dynamic: El cuerpo es afectado por las fuerzas que interactúan con él.
  • Kinematic: El cuerpo no es afectado por las fuerzas que interactúan con él.
  • Static: Ideal para plataformas estáticas.

Detectamos la pulsación sobre el misil

Recuerda como lo hiciste en el juego de Elige tu propia aventura:

using UnityEngine;

public class Nave : MonoBehaviour
{
    void OnMouseDown()
    {
        Debug.Log("Nave pulsada");
    }
}

Animación de explotar

Panel animation

Muestra las animaciones vinculadas con el objeto activo.

Puedo asignar una animación a un objeto, arrastrando la animación sobre el objeto en el panel de jerarquía o sobre el inspector.

Puedo reutilizar animaciones de desplazamiento, rotación, escala y, para varios objetos. Pero las animaciones consistentes en sprites animados serán solo para un único objeto. De lo contrario, si a un pingüino le pongo una aimación de sprites de un perro andando, el pingüino se convertirá en perro.

Si no queremos que una animación se repita indefinidamente (comportamiento por defecto), seleccionaremos la animación en el panel de proyecto y desmarcaremos la check “loop” en el panel inspector.

Animar frame a frame

Pasos para hacer una animación.

  1. Debemos preparar un sprite dando los siguientes pasos en su panel inspector:
    1. Texture Type: Sprite (2D and UI)
    2. Sprite Mode: Multiple
    3. Sprite Editor
      1. SI -> Slice
        • Type: Automatic
        • Slice
  2. Seleccionamos en el panel de jerarquía el Sprite sobre el que queremos crear la animación -> Panel animation -> create new clip.
    • Creamos la animación reposo. Esta animación tiene una única que imágen que es el sprite del misil
    • Creamos la animación explosión. Esta animación tiene varios sprites, correspondientes a los estados de la explosión.
      • Habrá que ir añadiendo cada uno de estos sprites de uno en uno a la línea de tiempo del panel animation.
      • También podemos seleccionar todos los sprites de la animación (manteniendo shift pulsado mientras seleccionamos) y arrastrarlos de una sola vez a la línea de tiempo.

Por defecto Unity reproduce las animaciones en bucle. Para evitar esto, selecciono la animación creada en el panel de proyecto y desmarco la check Loop Time.

Panel Animator

Este panel gestiona la vinculación entre las animaciones y los objetos.

Si un objeto tiene errores en su panel animator, no se reproducirán las animaciones asociadas a él.

Es posible unir las animaciones vinculadas a un objeto mediante flechas. A estas uniones las llamaremos transiciones.

Estado Entry
  • Entry es el punto de partida de la animación.
  • En muchos casos, el estado Entry va vinculado a un estado creado por nosotros llamado idle, que corresponde a una animación del objeto en reposo.
  • Obligatoriamente, el estado Entry debe estar unido con algún otro estado.
  • Cuando una animación llega al exit, regresa al estado Entry.

Detonar la animación mediante código:

GetComponent<Animator>().Play("explosion");
panel animator unity 3d

Detener la caída por gravedad del objeto

GetComponent<Rigidbody2D>().simulated = false;

Destruir objeto cuando la animación ha terminado

public AnimationClip animationClip;
...
float duracionExplosion = animationClip.length;
Destroy(this.gameObject, duracionExplosion);

Generar un misil cada segundo

Usaremos un código similar al tel temporizado del juego Acierta Imagen.¿Recuerdas?

void temporizador(){
	Debug.Log("Llamada al código");
	Invoke("temporizador", 1.0f);
}
← Acierta imagen en Unity3D
Poner una imagen de fondo →

Aviso Legal | Política de privacidad