Como fazer um jogo de canhão no Unity

Criar um jogo canhão em Unity é uma ótima maneira de aprender o básico do desenvolvimento de jogos. Neste tutorial criaremos um jogo simples onde o jogador poderá mirar e disparar um canhão para atingir os alvos. Abordaremos a configuração do projeto, a criação e o controle de um canhão e a adição de alvos.

Etapa 1: Configurando o Projeto

Primeiro, abra Unity e crie um novo projeto 2D. Nomeie seu projeto como "CannonGame". Assim que o projeto for criado, você estará na janela principal do editor Unity.

Etapa 2: Criando o Canhão

Precisamos de uma representação visual do canhão. Você pode criar um sprite retangular simples para atuar como seu canhão. Para fazer isso:

  1. Clique com o botão direito na janela Hierarquia e selecione Criar Vazio. Nomeie-o como "Cannon".
  2. Clique com o botão direito no objeto "Cannon" e selecione 2D Object -> Sprite. Nomeie-o como "CannonSprite".
  3. Na janela Inspector, clique no campo Sprite e selecione um sprite para seu canhão.

Posicione o canhão na parte inferior da tela definindo sua posição como (0, -4, 0) no componente Transform.

Agora, crie um script para controlar o canhão. Clique com o botão direito na pasta Assets, selecione Create -> C# Script e nomeie-o como "CannonController". Clique duas vezes no script para abri-lo em seu 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);
    }
}

Etapa 3: Criando a bala de canhão

Precisamos criar uma bala de canhão para o canhão disparar. Veja como:

  1. Clique com o botão direito na janela Hierarchy e selecione 2D Object -> Sprite. Nomeie-o como "Cannonball".
  2. Na janela Inspector, clique no campo Sprite e selecione um sprite para sua bala de canhão.
  3. Adicione um componente Rigidbody2D à bala de canhão clicando em Adicionar Componente e selecionando Rigidbody2D.
  4. Adicione um componente CircleCollider2D à bala de canhão clicando em Adicionar Componente e selecionando CircleCollider2D.

Em seguida, arraste a bala de canhão de Hierarchy para a pasta Assets para criar um pré-fabricado. Esta casa pré-fabricada será usada pelo canhão para disparar balas de canhão.

Na janela Inspector do script CannonController (anexado ao objeto Cannon), defina o campo CannonballPrefab como o pré-fabricado cannonball.

Etapa 4: Criando Alvos

Vamos adicionar alguns alvos para o jogador atirar:

  1. Clique com o botão direito na janela Hierarquia e selecione Objeto 2D -> Sprite. Nomeie-o como "Target".
  2. Na janela Inspector, clique no campo Sprite e selecione um sprite para seu alvo.
  3. Adicione um componente BoxCollider2D ao destino clicando em Adicionar Componente e selecionando BoxCollider2D.

Duplique o alvo clicando com o botão direito nele e selecionando Duplicar. Posicione os alvos ao redor da tela.

Etapa 5: Lidando com Colisões

Precisamos lidar com o que acontece quando uma bala de canhão atinge um alvo. Crie um script chamado "Target" para gerenciar isso:

  1. Clique com o botão direito na pasta Assets, selecione Create -> C# Script e nomeie-o como "Target".
  2. Clique duas vezes no script para abri-lo em seu editor de código.
// Target.cs
using UnityEngine;

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

Anexe o script Target a todos os objetos de destino. Certifique-se de que sua casa pré-fabricada de bala de canhão tenha a tag "Cannonball".

Conclusão

Seguindo estes passos, você criou um jogo de canhão simples em Unity. Você aprendeu como configurar um projeto, criar e controlar um canhão e adicionar alvos. Este projeto cobre conceitos básicos de desenvolvimento de jogos, como criação de objetos, entrada do usuário, física e detecção de colisão. Você pode aprimorar ainda mais este jogo adicionando recursos como pontuação, níveis e diferentes tipos de alvos. Divirta-se experimentando e aprendendo mais sobre Unity!