3
respostas

[Bug] Erro CS0246 e CS0108

Segui todos os passos do modulo 2 e baixei o código, mas aparece os seguinte erro Insira aqui a descrição dessa imagem para ajudar na acessibilidade e de todo jeito o problema não resolve.

3 respostas

Olá Bernardo.
Tudo bem?
1. Erro CS0246 : “The type or namespace name ‘InputAction’ could not be found”
Esse erro significa:
O tipo InputAction não existe no seu projeto.
Motivos mais comuns:
(A) O novo Input System não está instalado/ativado
Você deve:

  1. Ir em Window > Package Manager
  2. Em Unity Registry, procure Input System
  3. Clique em Install
  4. Depois vá em Edit > Project Settings > Player
  5. Em Active Input Handling, selecione:
    • Input System Package (New)
      — ou —
    • Both

Reinicie o Unity.

(B) Faltou o using correto
No topo do script Input Manager.cs, precisa ter:

using UnityEngine.InputSystem;

Sem isso, InputAction não é reconhecida.

(C) Você não criou uma InputActions asset
Se o curso usa algo como InputMaster.inputactions, você precisa ter criado o arquivo:
Assets > Create > Input Actions

2. Warning CS0108 — “hides inherited member 'Component.rigidbody'”
Isso significa que no seu script PlayerBehavior.cs, você tem algo como:

public Rigidbody rigidbody;

Mas já existe Component.rigidbody (da Unity antiga).
Soluções:

  • Renomear a variável (recomendado)**
public Rigidbody rb;

E troque nos outros scripts também.

  • Usar new para esconder (não recomendado)**
public new Rigidbody rigidbody;

**Resumindo :

  • Instalar e ativar o Input System
  • Adicionar using UnityEngine.InputSystem; no script
  • Criar ou reimportar seu arquivo de ações
  • Renomear rigidbody para rb

Faça os testes ai e avise o resultado.
Aguardo seu feedback.
Bons estudos.

Ronaldo Cordeiro Schmidt, o erro permaneceInsira aqui a descrição dessa imagem para ajudar na acessibilidade mas agora está assim

Olá amigo.
Vamos tentar mais algumas coisas:
O novo Input System requer uma versão específica do Unity (geralmente 2019.1 ou superior).
Certifique-se de que você está utilizando uma versão que seja compatível com o sistema de entrada novo.
Tente atualizar o Unity para a versão mais recente (caso esteja usando uma versão mais antiga).
Às vezes, o Unity pode não importar corretamente os pacotes.
Tente reimportar os pacotes manualmente.
Vá para Window > Package Manager.
Selecione Input System, e clique em Reimport.
Tente fechar o Unity e deletar a pasta Library do seu projeto.
Isso pode resolver problemas relacionados a pacotes e importação de assets.
Feche o Unity.
Apague a pasta Library na raiz do seu projeto.
Abra o Unity novamente, e ele irá reconstruir a pasta Library.
Mesmo que você tenha selecionado o "Input System (New)", se você tiver algum código ou configuração residual do Input Manager antigo, pode causar conflito.
Tente desabilitar o Input Manager antigo:
Vá em Edit > Project Settings > Player.
Em Active Input Handling, selecione apenas Input System Package (New).
Certifique-se de que nenhum script ainda está usando o Input.GetButton() ou outras funções do sistema antigo.
Teste ai e me avise.
Bons estudos.