Um jogo de plataforma 2D desenvolvido em Unity, com mecânicas clássicas de movimento, coleta de itens, combate e progressão por níveis.
2D Platformer é um jogo de plataforma side-scrolling onde o jogador controla um personagem que deve navegar por fases desafiadoras, coletar itens, derrotar inimigos e alcançar o objetivo final.
- Sistema de movementação fluida com suporte a corrida, pulo e wall slide
- Mecânicas de combate e dano
- Sistema de vidas e health
- Coletáveis (moedas, vidas extras, health, chaves)
- Inimigos com comportamentos diferentes (terrestres e voadores)
- Sistema de checkpoints
- Plataformas animadas
- UI completa (pontuação, vidas, health, high score)
- Suporte a múltiplas cenas (menu principal, níveis)
- Unity: 6000.4.0f1 (Unity 6.0)
- Linguagem: C#
- Input System: Nova API de Input da Unity
- Rendering: Universal Render Pipeline (URP)
- Text: TextMesh Pro
- Audio: Sistema de áudio nativo da Unity
- Sistema de Física: Physics2D
- Tilemaps: Sistema de Tilemaps da Unity
2DPlatformer/
├── Assets/
│ ├── Art/ # Arte do jogo
│ │ ├── Animation/ # Animações de sprites
│ │ ├── Collectables/ # Sprites de itens coletáveis
│ │ ├── Enemies/ # Sprites de inimigos
│ │ ├── Environment/ # Sprites de cenário
│ │ ├── Player/ # Sprites do jogador
│ │ └── UI Elements/ # Elementos de UI
│ ├── Audio/ # Arquivos de áudio
│ │ ├── Jingles/ # Músicas de vitória/derrota
│ │ ├── Music/ # Trilha sonora
│ │ └── SFX/ # Efeitos sonoros
│ ├── Prefabs/ # Prefabs do jogo
│ │ ├── Enemies/
│ │ ├── Environment/
│ │ ├── Managers/
│ │ ├── PickUps/
│ │ ├── Player/
│ │ ├── UI/
│ │ └── Utilities/
│ ├── Scripts/ # Código fonte
│ │ ├── Camera/ # Controle de câmera
│ │ ├── Checkpoint/ # Sistema de checkpoints
│ │ ├── Enemy/ # Lógica de inimigos
│ │ ├── Environment/ # Plataformas, objetos ambientais
│ │ ├── Health&Damage/ # Sistema de dano e vida
│ │ ├── Keys&Doors/ # Sistema de chaves e portas
│ │ ├── Pickups/ # Itens coletáveis
│ │ ├── Player/ # Controles do jogador
│ │ ├── UI/ # Interface do usuário
│ │ └── Utility/ # Scripts utilitários
│ ├── Input/ # Configurações de input
│ ├── Physics Materials/ # Materiais de física
│ ├── Resources/ # Recursos dinâmicos
│ ├── TextMesh Pro/ # Fontes e configurações TMP
│ ├── _Scenes/ # Cenas do jogo
│ │ ├── Level1.unity # Primeiro nível
│ │ └── MainMenu.unity # Menu principal
│ └── Imported Custom Asset Packages/
│ └── Developer Console/ # Console de desenvolvimento
├── Library/ # Cache do Unity (não versionar)
├── Logs/ # Logs do Unity
├── Packages/ # Pacotes Unity
├── ProjectSettings/ # Configurações do projeto
├── UserSettings/ # Configurações do usuário
├── *.sln # Solution do Visual Studio
├── opencode.json # Configuração Claude Code
└── README.md # Este arquivo
- Move: setas direcionais ou A/D
- Pulo: Espaço ou botão de ação
- Correr: Shift (movimento mais rápido)
- Wall Slide: Perto de parede durante pulo
- Interagir: E (para portas e objetos interativos)
| Sistema | Descrição | Scripts |
|---|---|---|
| Player | Movimentação, pulo, wall slide, animações | PlayerMovement.cs, PlayerAnimator.cs, PlayerChilder.cs |
| Câmera | Segue o jogador com拖拽 limits | CameraController.cs |
| Inimigos | Dois tipos: terrestre e voador | WalkingEnemy.cs, FlyingEnemy.cs, EnemyBase.cs, EnemyAnimator.cs |
| Dano/Vida | Sistema de health com invulnerabilidade | Health.cs, Damage.cs, Head.cs, DeathEffectAnimationHandler.cs |
| Coletáveis | Moedas, vidas, health, chaves, objetivo | ScorePickup.cs, HealthPickup.cs, ExtraLifePickup.cs, KeyPickup.cs, GoalPickup.cs |
| Checkpoints | Pontos de respawn automático | Checkpoint.cs, CheckpointTracker.cs |
| Portas/Chaves | Sistema de acesso com chaves | Door.cs, KeyRing.cs |
| Plataformas | Plataformas animadas | PlatformAnimator.cs, WaypointMover.cs |
| UI | HUD com pontuação, vidas, health | UIManager.cs, ScoreDisplay.cs, LivesDisplay.cs, HealthDisplay.cs |
| Gestão de Nível | Carregamento de cenas, reset | LevelManager.cs, LevelSwitcher.cs |
| Game Manager | Estado global do jogo | GameManager.cs |
- Unity: 6000.4.0f1 (Unity 6.0) ou superior
- Sistema Operacional: Windows, macOS ou Linux
- GPU: Qualquer GPU com suporte a OpenGL 3.0+ / DirectX 11+
- RAM: Mínimo de 4GB (recomendado 8GB+)
-
Abrir o Projeto
- Abra o Unity Hub - Clique em "Add Project" - Selecione a pasta D:/Unity_Projects/2DPlatformer - Clique em "Open"
-
Aguardar Compilação
- O Unity vai importar e compilar todos os assets
- Isso pode levar alguns minutos na primeira vez
-
Executar o Jogo
- Abra a cena
Assets/_Scenes/MainMenu.unity(ou Level1.unity) - Clique no botão Play no topo do editor Unity
- Ou pressione Ctrl+P (Windows/Linux) / Cmd+P (macOS)
- Abra a cena
-
Build para Executável (opcional)
File → Build Settings- Adicione a cena desejada
- Selecione plataforma (Windows, macOS, Linux)
- Clique em Build and Run
- Sprites: Arte pixel art em Assets/Art/
- Tilemaps: Sistema de tiles para cenários
- Animações: Spritesheets com sprites individuais e animações
- Cores: Paleta vibrante estilo retro
- Resolução: Game desenvolvido para resolução base 1920x1080 (upscaling)
✅ Implementado:
- Menu principal funcional
- Sistema de input completo
- Movimentação do jogador (run, jump, wall slide)
- Sistema de animações do jogador
- Câmera com acompanhamento
- Inimigos básicos (terrestre e voador)
- Sistema de coleta de itens
- Sistema de health e dano
- Sistema de vidas e respawn
- Checkpoints
- Portas e sistema de chaves
- Plataformas animadas
- UI completa (HUD e menus)
- Sistema de pontuação e high score
- Transições entre cenas
- Sons e música
🔄 Em Desenvolvimento:
- Mais níveis
- Mais tipos de inimigos
- Power-ups
- Bosses
- Cutscenes
- Mais tipos de plataformas
O projeto inclui funcionalidades de debugging:
- Console de Desenvolvedor: Comandos disponíveis via console
loadscene <nome>- Carrega uma cena específicasethhealth <valor>- Define a saúde do jogadorlistscenes- Lista todas as cenas disponíveis
Para ativar o console de desenvolvedor, pressione a tecla ~ (til) durante o jogo.
Player(layer 8) - Camada do jogadorGround(layer 7) - Camada do chão e plataformasEnemy(layer 9) - Camada dos inimigosFeet(layer 10) - Detectores de chão
Player- Objeto jogadorMainCamera- Câmera principalFeet- Pontos de detecção de chão
O projeto usa o novo Input System da Unity com os seguintes action maps:
Player- Controles do jogador (move, jump, run)UI- Navegação na interface
PlayerMovement.cs- Física e controle do jogadorPlayerAnimator.cs- Controlador de animaçõesPlayerChilder.cs- Gerencia objetos filhos do player
EnemyBase.cs- Classe base para todos os inimigosWalkingEnemy.cs- Inimigo que anda entre waypointsFlyingEnemy.cs- Inimigo que voa em padrões
UIManager.cs- Gerenciador principal da interfaceScoreDisplay.cs- Exibição da pontuaçãoLivesDisplay.cs- Exibição das vidasHealthDisplay.cs- Exibição da saúde
Este é um projeto pessoal/educacional. Se deseja contribuir:
- Faça um fork do repositório
- Crie uma branch para sua feature (
git checkout -b feature/NovaFeature) - Faça commit das mudanças (
git commit -m 'Adiciona nova feature') - Faça push para a branch (
git push origin feature/NovaFeature) - Abra um Pull Request
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
Desenvolvido por: Jhonni Vieceli
- Versionamento: Este projeto usa Git para controle de versão
- Unity Version: 6000.4.0f1 (Unity 6.0)
- Target Platform: Windows ( construível para outras plataformas)
- Source Control: Configurado para Unity com arquivos .meta versionados
Divirta-se jogando! 🎮