Resumo

Neste curso gratuito, você irá aprender a criar um jogo de plataforma 2D usando a Unity. O jogo de plataforma é um gênero dos jogos digitais, onde o player pode andar, correr e pular. O mais interessante desse estilo de jogo são os diversos desafios e mecânicas  que você pode colocar, e claro que os inimigos fazem toda a diferença.
Vamos começar criando o movimento do personagem, utilizando o novo sistema de entrada da Unity o que torna a codificação muito mais flexível.

Sistema de Entrada

O novo sistema de entrada da unity permite que você configure rapidamente controles para múltiplas plataformas, de dispositivos móveis a realidade virtual. Por essa razão devemos usar.

InputSystem
Novo sistema de entrada

Movimento do personagem

O movimento do personagem no sistema 2D pode ser realizado usando componentes como: Transform ou RigidBody2D. Nessa aula, vamos utilizar o  componente RigidBody2D, conforme você pode ver na vídeo aula a seguir.

Logo, podemos criar a classe ManagerInput,  a qual será responsável por capturar as informações de entrada e iremos fazer a codificação a seguir:

Classe ManagerInput

using UnityEngine;
using UnityEngine.InputSystem;
public class ManagerInput : MonoBehaviour
{
   private float inputX;
   public void SetInputMove(InputAction.CallbackContext value)
   {
    inputX = value.ReadValue<Vector2>().x;
   }

   public float GetInputX()
   {
    return inputX;
   }

}

Após  a classe ManagerInput deve ser associada no objeto Player.

Seguimos com a classe Player, conforme o código a seguir:

Classe Player

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour
{
[Header("Dependencies")]
[SerializeField] ManagerInput managerInput;
[SerializeField] Rigidbody2D rigidBody2D;

[Header("Physics")]
[SerializeField] float speed;

// Start is called before the first frame update
   void Start()
   {

   }

// Update is called once per frame
   void FixedUpdate()
   {
    Move();
   }

   private void Move()
   {
    rigidBody2D.velocity = new Vector2(managerInput.GetInputX() * speed, rigidBody2D.velocity.y);
   }

O movimento é realizado pela propriedade velocity do componente de física Rigidbody2D.

 

Agora, é sua vez de colocar a mão na massa!


Aproveite para pegar um ebook de criação de um jogo 2D.
Jogo de Nave