Cómo hacer un juego de cañón en Unity

Crear un juego de cañones en Unity es una excelente manera de aprender los conceptos básicos del desarrollo de juegos. En este tutorial, crearemos un juego sencillo en el que el jugador puede apuntar y disparar un cañón para alcanzar objetivos. Cubriremos la configuración del proyecto, la creación y el control de un cañón y la adición de objetivos.

Paso 1: configurar el proyecto

Primero, abra Unity y cree un nuevo proyecto 2D. Nombra tu proyecto "CannonGame". Una vez creado el proyecto, estará en la ventana principal del editor Unity.

Paso 2: crear el cañón

Necesitamos una representación visual del cañón. Puedes crear un objeto rectangular simple para que actúe como tu cañón. Para hacer esto:

  1. Haga clic derecho en la ventana Jerarquía y seleccione Crear vacío. Nómbrelo "Cannon".
  2. Haga clic derecho en el objeto "Cannon" y seleccione Objeto 2D -> Sprite. Nómbrelo "CannonSprite".
  3. En la ventana Inspector, haz clic en el campo Sprite y selecciona un sprite para tu cañón.

Coloque el cañón en la parte inferior de la pantalla estableciendo su posición en (0, -4, 0) en el componente Transform.

Ahora, crea un script para controlar el cañón. Haga clic derecho en la carpeta Assets, seleccione Create -> C# Script y asígnele el nombre "CannonController". Haga doble clic en el script para abrirlo en su editor de código.

// CannonController.cs
using UnityEngine;

public class CannonController : MonoBehaviour
{
    public GameObject cannonballPrefab;
    public float shootForce = 700f;

    void Update()
    {
        Aim();
        if (Input.GetButtonDown("Fire1"))
        {
            Shoot();
        }
    }

    void Aim()
    {
        Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        Vector2 direction = new Vector2(mousePosition.x - transform.position.x, mousePosition.y - transform.position.y);
        transform.up = direction;
    }

    void Shoot()
    {
        GameObject cannonball = Instantiate(cannonballPrefab, transform.position, transform.rotation);
        Rigidbody2D rb = cannonball.GetComponent();
        rb.AddForce(transform.up * shootForce);
    }
}

Paso 3: crear la bala de cañón

Necesitamos crear una bala de cañón para que dispare el cañón. Así es cómo:

  1. Haga clic derecho en la ventana Jerarquía y seleccione Objeto 2D -> Sprite. Nómbrelo "Cannonball".
  2. En la ventana Inspector, haz clic en el campo Sprite y selecciona un sprite para tu bala de cañón.
  3. Agregue un componente Rigidbody2D a la bala de cañón haciendo clic en Agregar componente y seleccionando Rigidbody2D.
  4. Agregue un componente CircleCollider2D a la bala de cañón haciendo clic en Agregar componente y seleccionando CircleCollider2D.

A continuación, arrastre la bala de cañón desde la carpeta Jerarquía a la carpeta Assets para crear una casa prefabricada. Esta casa prefabricada será utilizada por el cañón para disparar balas de cañón.

En la ventana Inspector del script CannonController (adjunto al objeto Cannon), establezca el campo CannonballPrefab en la casa prefabricada Cannonball.

Paso 4: creación de objetivos

Agreguemos algunos objetivos a los que el jugador puede disparar:

  1. Haga clic derecho en la ventana Jerarquía y seleccione Objeto 2D -> Sprite. Nómbrelo "Target".
  2. En la ventana Inspector, haz clic en el campo Sprite y selecciona un sprite para tu objetivo.
  3. Agregue un componente BoxCollider2D al destino haciendo clic en Agregar componente y seleccionando BoxCollider2D.

Duplica el objetivo haciendo clic derecho sobre él y seleccionando Duplicar. Coloque los objetivos alrededor de la pantalla.

Paso 5: Manejo de colisiones

Necesitamos manejar lo que sucede cuando una bala de cañón alcanza un objetivo. Cree un script llamado "Target" para gestionar esto:

  1. Haga clic derecho en la carpeta Assets, seleccione Create -> C# Script y asígnele el nombre "Target".
  2. Haga doble clic en el script para abrirlo en su editor de código.
// Target.cs
using UnityEngine;

public class Target : MonoBehaviour
{
    void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject.CompareTag("Cannonball"))
        {
            Destroy(gameObject);
        }
    }
}

Adjunte el script Target a todos los objetos de destino. Asegúrese de que su prefabricado de bala de cañón tenga la etiqueta "Cannonball".

Conclusión

Siguiendo estos pasos, habrás creado un juego de cañones sencillo en Unity. Ha aprendido a configurar un proyecto, crear y controlar un cañón y agregar objetivos. Este proyecto cubre conceptos básicos de desarrollo de juegos, como la creación de objetos, la entrada del usuario, la física y la detección de colisiones. Puedes mejorar aún más este juego agregando funciones como puntuación, niveles y diferentes tipos de objetivos. ¡Diviértete experimentando y aprendiendo más sobre Unity!