plataforma 3D

CRIANDO JOGO DE PLATAFORMA 3D NA UNITY

Um jogo de plataforma 3D é um gênero de videogame caracterizado por seu foco na navegação por ambientes que envolvem a movimentação do personagem em várias superfícies e a superação de obstáculos, geralmente através de saltos. Esses jogos têm como elemento central a habilidade do jogador de controlar um personagem que se movimenta por plataformas elevadas, evitando quedas, enfrentando inimigos e coletando itens.

Características Principais de um Jogo de Plataforma 3D:

  • Plataformas elevadas
  • Desníveis e Pulos
  • Armadilhas
  • Inimigos
  • Itens
  • Arte e Animação

Exemplos de Jogos de Plataforma 3D:

  • Super Mario Bros.: Um dos exemplos mais icônicos, com mecânicas de pulo e coleta de itens.

plataforma 3D

  • Sonic the Hedgehog: Conhecido pela velocidade e design de níveis que desafiam os reflexos do jogador.

plataforma 3D

  • Crash Bandicoot: Um exemplo de jogo de plataforma 3D com níveis cheios de obstáculos e inimigos.
plataforma 3D

Tutorial de jogo de plataforma 3D unity:

Passo 1:

Criar um novo projeto na unity

plataforma 3D

Passo 2:

Criar a primeira parte do desafio com a coleta de moedas

plataforma 3D

Passo 3:

Criar scripts para moeda e para o jogador

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

public class Coin : MonoBehaviour
{
    void OnTriggerEnter(Collider other)
    {

        Player player = other.GetComponent<Player>();

        //The number of coins is updated
        player.ColetarMoedas();

        //The coin that was collected is destroyed
        Destroy(gameObject);
    }

}

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

public class Player : MonoBehaviour
{

    //criar variavel da moeda
    public int moeda = 0;

    //função de coletar moeda
    public void ColetarMoedas()
    {
        //aumentando numero de moedas
        moeda = moeda + 1;
        print("Moedas coletadas: " + moeda);
    }
}

				
			

Passo 4:

Criar a segunda parte do desafio com trampolins

plataforma 3D
				
					using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class trampolim : MonoBehaviour
{

    //variavel para usar a class jump
    Jump puloJogador;

    //tamanho do pulo no trampolim
    public float puloTrampolim = 5f;

    //colindindo com o trampolim- inicio da colisao
    private void OnTriggerEnter(Collider other)
    {
        //usando o componente do jump
        puloJogador = other.GetComponent<Jump>();
        //aumentando o pulo do trampolim
        puloJogador.jumpStrength = puloTrampolim;

    }

    //colisão quando sair do trampolim
    private void OnTriggerExit(Collider other)
    {
        //usando o componente do jump
        puloJogador = other.GetComponent<Jump>();
        puloJogador.jumpStrength = 2f;
    }

}
				
			

Passo 5:

Criar a terceira parte do desafio com teleporte. Nessa etapa é necessário criar 2 objetos: o teleport e spawnPlayer. O spawnPlayer pode ser um objto invisível como no exemplo abaixo, ou um objeto real.

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

public class Teleport : MonoBehaviour
{
    // objeto jogador
    public GameObject player;
    //da posição de saida do jogador
    public Transform spawnPlayer;


    //veirificando colisão

    private void OnTriggerEnter(Collider other)
    {
        //alterar a posição do jogador
        player.transform.position = spawnPlayer.transform.position;
    }
}

				
			

Passo 6:

Criar a quarta parte do desafio com acelerador. Nessa etapa é necessário criar o objeto de acelerador, representado pelas setas na imagem abaixo:

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

public class Speed : MonoBehaviour
{
    public float speedArrows;

    void OnTriggerEnter(Collider other)
    {
        FirstPersonMovement movement = other.GetComponent<FirstPersonMovement>();

        if (movement != null)
        {
            movement.speed *= speedArrows;
        }
    }

    void OnTriggerExit(Collider other)
    {
        FirstPersonMovement movement = other.GetComponent<FirstPersonMovement>();

        if (movement != null)
        {
            movement.speed /= speedArrows;
        }
    }
}

				
			

Passo 7:

Agora que já temos nosso personagem se movimentando pela fase e interagindo com o ambiente, chegou a hora de implementar algo que todo jogo de ação precisa: um sistema de dano! Vamos aprender como fazer com que nosso jogador perca vida ao entrar em contato com armadilhas!

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

public class Damage : MonoBehaviour
{
    public float damage = 1f;

    private void OnTriggerEnter(Collider other)
    {
        PlayerMethods player = other.GetComponent<PlayerMethods>();

        if (player != null)
        {
            player.life -= damage;
        }
    }
}

				
			

Para o script do jogador:

A variável life vai garantir que o sistema de dano funcione corretamente, já que é ela que será diminuída quando o jogador encostar em uma armadilha.

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

public class PlayerMethods : MonoBehaviour
{
        //criar variavel da moeda
    public int moeda = 0;
    
    // Variável de vida do jogador
    public float life = 10f; 

 //função de dano do player
    public void DamagePlayer()
    {
        life -= 1; // Método para diminuir a vida
    }

 //função de coletar moeda
    public void ColetarMoedas()
    {
        //aumentando numero de moedas
        moeda = moeda + 1;
        print("Moedas coletadas: " + moeda);
    }
}

    void Update()
    {
        if (life > 0)
        {
            print("Tá vivo"); // Mostra que o jogador ainda está vivo
        }
        else
        {
            SceneManager.LoadScene("game"); // Reinicia o jogo se a vida acabar
        }
    }
}



   

				
			

Passo 8:

As plataformas móveis são um elemento clássico nos jogos de plataforma, e são perfeitas para aumentar o desafio do jogador. Neste passo, vamos ensinar como criar essas plataformas e fazer com que elas se movam automaticamente para frente e para trás.

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

public class Plataform : MonoBehaviour
{
  
    public int speed = 1; // Velocidade da plataforma
    public float MaxDistance = 0.5f; // Distância máxima que a plataforma alcança
    private Vector3 positionNow; // Posição inicial da plataforma
    private Vector3 direction; // Direção do movimento

    public bool plataform; // Definindo se a plataforma vai para frente ou para trás

    private void Start()
    {
        positionNow = transform.position; // A posição inicial é capturada
        direction = plataform ? Vector3.forward : Vector3.back; // Definindo a direção inicial
    }

    void Update()
    {
        // Calcula a distância entre a posição atual e a posição inicial
        float distance = Vector3.Distance(positionNow, transform.position);

        // Verifica se a plataforma atingiu a distância máxima
        if (distance >= MaxDistance)
        {
            direction *= -1; // Inverte a direção quando a distância máxima é alcançada
            positionNow = transform.position; // Atualiza a posição inicial
        }

        // Movimenta a plataforma na direção definida
        transform.position += direction * speed * Time.deltaTime;
    }
}

				
			
ploataforma

FERRAMENTA DOS ASSETS

  • UNITY ASSET

Uma loja online integrada ao Unity onde você pode comprar e baixar assets criados por desenvolvedores e artistas. Inclui uma ampla gama de recursos gratuitos e pagos.

Posts Similares

Deixe um comentário

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