Criando um jogo de plataforma 2D simples no Unity

Neste tutorial, criaremos um jogo de plataforma 2D básico em Unity. Isso envolverá a criação de um personagem de jogador que pode se mover, pular e interagir com plataformas. Também adicionaremos alguns elementos básicos de jogo, como obstáculos e itens colecionáveis.

1. Configurando o Projeto

Vamos começar configurando um novo projeto Unity 2D:

  1. Abra Unity e crie um novo projeto 2D.
  2. Vá em Arquivo > Nova Cena e selecione Modo 2D.
  3. Salve a cena como MainScene.

2. Criando o personagem do jogador

Primeiro, criaremos um personagem de jogador simples usando um sprite e adicionaremos funcionalidade de movimento:

  1. Clique com o botão direito na janela Hierarchy e selecione Create Empty. Nomeie esse objeto como Player.
  2. Adicione um componente Sprite Renderer ao objeto Player clicando em Adicionar Componente no Inspetor.
  3. Selecione um sprite para usar como personagem, criando o seu próprio ou importando um recurso 2D do Unity Asset Store.
  4. Adicione um Rigidbody2D e um BoxCollider2D ao objeto Player para detecção de física e colisão.

3. Escrevendo o script de movimento do jogador

Agora, vamos escrever um script para permitir que o jogador se mova e pule. Siga estes passos:

  1. Clique com o botão direito na janela Project e escolha Create > C# Script. Nomeie-o como PlayerController.
  2. Anexe este script ao objeto Player arrastando-o da janela Projeto para o Player na Hierarquia.

Substitua o conteúdo do script pelo seguinte:

using UnityEngine;

public class PlayerController : MonoBehaviour
{
    public float moveSpeed = 5f;
    public float jumpForce = 7f;
    private Rigidbody2D rb;
    private bool isGrounded = true;

    void Start()
    {
        rb = GetComponent();
    }

    void Update()
    {
        // Player movement
        float moveInput = Input.GetAxis("Horizontal");
        rb.velocity = new Vector2(moveInput * moveSpeed, rb.velocity.y);

        // Jumping
        if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
        {
            rb.velocity = new Vector2(rb.velocity.x, jumpForce);
            isGrounded = false;
        }
    }

    private void OnCollisionEnter2D(Collision2D collision)
    {
        // Check if player is touching the ground
        if (collision.collider.CompareTag("Ground"))
        {
            isGrounded = true;
        }
    }
}

4. Criando Plataformas e Ambiente

Agora criaremos plataformas para o jogador pular:

  1. Na Hierarquia, clique com o botão direito e selecione Criar Vazio, depois nomeie-o como Plataforma.
  2. Adicione um BoxCollider2D e um Sprite Renderer à plataforma.
  3. Selecione um sprite para a plataforma (por exemplo, um retângulo plano).
  4. Duplique a plataforma pressionando Ctrl+D (ou Cmd+D no Mac) e posicione as cópias para criar um nível.
  5. Marque esses objetos como Terra no Inspetor para a lógica de salto do jogador.

5. Adicionando Obstáculos

Para tornar o jogo mais desafiador, vamos adicionar alguns obstáculos:

  • Crie outro GameObject vazio e nomeie-o Obstáculo.
  • Adicione um BoxCollider2D e um Sprite Renderer a este objeto.
  • Escolha um sprite para o obstáculo (por exemplo, um pico ou perigo).
  • No método OnCollisionEnter2D do jogador, você pode detectar colisões com obstáculos e reiniciar o jogo ou deduzir saúde.

6. Adicionando itens colecionáveis

Também podemos adicionar itens colecionáveis, como moedas ou power-ups:

  • Crie outro GameObject vazio e nomeie-o Collectible.
  • Adicione um CircleCollider2D (defina-o como um gatilho) e um Sprite Renderer para representar o colecionável.
  • Escreva um script simples para detectar quando o jogador coleta um item:
using UnityEngine;

public class Collectible : MonoBehaviour
{
    private void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Player"))
        {
            // Add points or other effects here
            Destroy(gameObject); // Remove the collectible from the scene
        }
    }
}

7. Testando e ajustando o jogo

Agora que a mecânica básica está pronta, você pode testar o jogo apertando o botão Play. Tente ajustar o seguinte:

  • Modifique os valores moveSpeed e jumpForce para ajustar a velocidade com que o jogador se move e salta.
  • Duplique plataformas e obstáculos para criar níveis diferentes.
  • Adicione elementos de fundo ou decorações para tornar o jogo visualmente atraente.

8. Melhorando o jogo de plataforma

Para levar seu jogo de plataforma para o próximo nível, considere adicionar:

  • Animações para o jogador, como animações de caminhada e salto.
  • Efeitos sonoros para pular, coletar itens e bater em obstáculos.
  • Uma câmera que segue os movimentos do jogador para uma visão mais dinâmica do jogo.

Conclusão

Com esta configuração simples de plataforma 2D, você agora tem uma estrutura básica de jogo que pode ser expandida com mais recursos, níveis e polimento. Experimente diferentes mecânicas e crie sua própria plataforma única.