Fala galera, passando aqui pra trazer uma atualização importante!
A partir da versão 6.1, a Unity passou a usar por padrão o novo Input System, deixando de lado o tradicional UnityEngine.Input
que muitos já estão acostumados a utilizar.
Se você criar um novo projeto e tentar usar comandos da classe Input
, como Input.GetKeyDown()
, pode se deparar com o seguinte erro:
InvalidOperationException: You are trying to read Input using the UnityEngine.Input class, but you have switched active Input handling to Input System package in Player Settings.
Ou seja, o projeto está configurado para usar o novo sistema de input, mas você está tentando usar o antigo — e por padrão, ele vem desabilitado.
Como resolver e voltar a usar o sistema antigo de Input (Input Manager)
Se você deseja continuar utilizando o sistema clássico de Input (o Input.GetKey
, Input.GetAxis
, etc.), siga os passos abaixo:
- Vá no menu superior da Unity e clique em Edit > Project Settings.
- No painel lateral, selecione a opção Player.
- Na aba Other Settings, localize a opção Active Input Handling.
- Altere de “Input System Package (New)” para uma das opções abaixo:
- “Both”: permite usar tanto o novo quanto o antigo sistema.
- “Input Manager (Old)”: usa apenas o sistema antigo.
- A Unity pedirá para reiniciar o editor. Aceite e reinicie o projeto.
Pronto! Agora você pode usar novamente todos os comandos da classe Input
normalmente.
Dica Extra: Qual usar? Novo ou antigo?
- O Input System Package (New) é mais poderoso, modular e ideal para jogos complexos, especialmente aqueles que precisam lidar com múltiplos dispositivos (teclado, controle, mobile etc.), No curso, temos aulas ensinando como usar ele!
- Já o Input Manager (Old) é mais simples e direto — ótimo para várias coisas, inclusive muitos projetos grandes continuam usando-o por sua simplicidade e facilidade.
Recomendo a todos ativar o Input Manager, para seguir igual está sendo ensinado nas aulas, inclusive no decorrer do curso ensinamos como migrar e usar o novo Input System também.