unity

Como criar um jogo de plataforma 2D na Unity

A Unity é uma das ferramentas mais poderosas e acessíveis para criar jogos 2D e 3D. Neste tutorial, vamos te mostrar como desenvolver um jogo de plataforma 2D simples na Unity, com movimentação lateral e pulo, usando o componente Rigidbody2D. Essa é uma ótima introdução ao desenvolvimento de jogos e uma excelente forma de montar seu portfólio.

Você vai entender conceitos fundamentais como entrada do jogador, física 2D e movimentação controlada por script em C#. Ideal para iniciantes que querem criar seu primeiro jogo!

Exemplo Prático: Ball Game

Aqui está o jogo que usaremos como referência:

Passo 1: Criando o Projeto na Unity

  1. Abra a Unity Hub e clique em “New Project”.

  2. Selecione o template 2D (Core).

  3. Dê um nome como BallGame e clique em Create.

unity

Passo 2: Criando o cenário com plataformas

  • No painel Hierarchy, clique com o botão direito e vá em 2D Object > Sprite.

  • Renomeie o novo objeto para Plataforma.

  • No Inspector, clique em “Sprite” e escolha uma imagem de plataforma (como a da imagem do tutorial).

  • Adicione o componente BoxCollider2D para permitir que o jogador colida com ela.

  • Duplique a plataforma (Ctrl + D) e reposicione as cópias para formar o cenário com diferentes níveis, igual ao layout mostrado na imagem.

unity

Passo 3: Adicionando o jogador

  1. Crie um novo GameObject do tipo Sprite (pode ser uma esfera como na imagem).

  2. Adicione os seguintes componentes:

    • Rigidbody2D

    • CircleCollider2D

    • Player.cs

Passo 4: Criando o script de movimentação - Declarando variáveis

Essas variáveis serão usadas para controlar o movimento horizontal, a velocidade do jogador e o pulo:

				
					private float movimentoH;
public float velocidade; // Exemplo: 10
public float jumpForce;  // Força do pulo
private Rigidbody2D jogadorRb;
private float velocidadeY;

				
			

Explicação:

  • movimentoH: armazena o valor do eixo horizontal (teclas A/D ou setas).

  • velocidade: define a velocidade da movimentação.

  • jumpForce: controla a força do pulo.

  • jogadorRb: acessa o componente Rigidbody2D.

  • velocidadeY: preserva a velocidade vertical.

Passo 5: Criando o script de movimentação - Iniciando o Rigidbody no Start

				
					void Start()
{
    jogadorRb = GetComponent<Rigidbody2D>();
}

				
			

Explicação:

Essa parte do código executa apenas uma vez quando o jogo começa, buscando o componente Rigidbody2D para que o script possa controlar a física do personagem.

Passo 6: Criando o script de movimentação - Capturando o movimento no Update

				
					void Update()
{
    movimentoH = Input.GetAxisRaw("Horizontal");

    if (Input.GetButtonDown("Jump"))
    {
        jogadorRb.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse);
    }
}

				
			

Explicação:

  • Input.GetAxisRaw("Horizontal"): retorna -1 (esquerda), 0 (parado) ou 1 (direita).

  • Input.GetButtonDown("Jump"): detecta se o botão de pulo foi pressionado (geralmente a tecla espaço).

  • AddForce: aplica uma força vertical para o personagem pular.

Passo 7: Criando o script de movimentação - Aplicando o movimento

				
					velocidadeY = jogadorRb.velocity.y;
jogadorRb.velocity = new Vector2(movimentoH * velocidade, velocidadeY);

				
			

Explicação:

  • Mantemos a velocidade vertical (y) para não interferir na gravidade.

  • Alteramos apenas o valor de x com base na direção e na velocidade desejada.

Resultado Final

				
					using UnityEngine;

public class Player : MonoBehaviour
{
    private float movimentoH;
    public float velocidade; //10
    public float jumpForce;
    private Rigidbody2D jogadorRb;
    private float velocidadeY;

    void Start()
    {
        jogadorRb = GetComponent<Rigidbody2D>();
    }

    void Update()
    {
        movimentoH = Input.GetAxisRaw("Horizontal");

        if (Input.GetButtonDown("Jump"))
        {
            jogadorRb.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse);
        }

        velocidadeY = jogadorRb.velocity.y;
        jogadorRb.velocity = new Vector2(movimentoH * velocidade, velocidadeY);
    }
}

				
			

Ao executar o código, você verá:

  • Um personagem (bolinha vermelha) posicionado sobre a plataforma superior esquerda.

  • Um cenário com plataformas fixas posicionadas em diferentes alturas.

  • O personagem se movimentando para a esquerda e direita com as teclas A/D ou ←/→.

  • O personagem pulando ao pressionar a tecla Espaço.

  • As colisões funcionando corretamente: o jogador não atravessa as plataformas.

Posts Similares

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *