✔️ Apenas uma cena para facilitar carregamento no celular.
✔️ Uso de 3 estados de jogo (Menu, InGame, GameOver)
✔️ GameManager é um singleton com todos managers instanciados utilizando interface.
GameStates[] internStates = GetComponents<GameStates>();
gameStates.AddRange(internStates);
✔️ UnityEvents para uso fácil de designers no editor Unity.
✔️ Projeto com estrutura dividida com definições de montagem, ajudando em tempos de compilações menores,obrigando uso de SOLID e divisão de testes.
✔️ Separação total da lógica do jogo com UI, nada depende da interface do usuário e sua lógica.
✔️ Utilizado URP com renderização rápida e fácil para plataforma mobile.
✔️ Simples animações de UI com uso de triggers.
✔️ Modo de chefe Pull Request #1.
✔️ Uso do Test Framework para testes de procedimentos. - Testes de runtime. - Testes de editor.
Foi criado certos gerenciadores para utilizar lógica e dados de forma fácil e limpa.
🚨 GameManager: Um classe singleton. com estados do jogo, Importante notar aqui o uso de uma interface para todos componentes que queiram receber notificações de eventos dos estados do jogo.
🚨 LevelManager: Responsável obviamente pelos estágios e seus carregamentos.
🚨 UIManager: Além de ser pai de toda interface do usuário, armazena o Canvas também.
⛹️ Player com Shooter,Scorer
⛹️ Madeira com Rotator,CurveRotator
⛹️ Facas com Knife,RigidBody2D
⛹️ Frutas com Rigidbody2D
✔️ ScriptableObjects para separar dados das cenas.
✔️ AnimationCurves para tempo de interpolação da velocidade da madeira.
✔️ AngleObject é uma lista que mantém itens de objeto com um ângulo.
Um dos maiores problemas vistos nessa produção foi a dúvida que se deveria usar física ou não. Problemas de utilizar física do Unity podem ser vistos aqui:
Para um designer é muito fácil apenas editar um arquivo, desta forma foi utilizado o ScriptableObject.
Obviamente um designer que deseja-se trocar um som de efeito ou escolher quando instanciar uma partícula na cena deveria criar de um forma fácil e rápida, assim foi utilizado extensivamente o 'UnityEvent'.
Uso de pacotes de montagem para cada namespace do projeto, divindo assim o uso de recursos ajudando no uso de testes.
⏰ 12 horas
👤 Rafael Correa (Script)
- Twitter: @ScriptsEngineer
- Github: @scriptsengineer
Contribuições, problemas and pedido de recursos são bem-vindos!
Veja aqui => issues page.
Dê uma ⭐️ se este projeto te ajudou!
🎨 20 Evolving Fantasy RPG Weapons
Este projeto é licenciado pelo MIT.