如何解决UnityEngine.InputSystem无法正常工作的VisualStudio报错问题
解决Unity中VisualStudio报错“命名空间‘UnityEngine’中不存在类型或命名空间‘InputSystem’”
问题描述
无论我如何操作,始终遇到VisualStudio报错:“命名空间‘UnityEngine’中不存在类型或命名空间‘InputSystem’”。
已执行的操作:
- 安装了对应包
- 将“Active Input Handling”设置为新系统
- 重新生成项目文件(勾选和未勾选Registry packages两种情况)
- 调整Packages/Manifest.json文件
在两台电脑的三个不同Unity版本(2022.3.4f1、2021.3.3f1、2021.3.12f1)中尝试过,之前曾成功配置,但此次所有操作均无效。手动添加InputSystem.dll引用后,VisualStudio不再报错,但Unity中的问题仍存在,且重启后VS中的引用会消失,推测Unity未追踪该引用,重新生成项目文件时会被清除。使用环境为VisualStudio 2022。
可行解决方案
1. 彻底重置InputSystem包
- 打开Unity的Package Manager,找到
Input System包,点击右侧Remove卸载 - 关闭Unity和VisualStudio,删除项目根目录下的
Library文件夹(操作前备份重要资源,该文件夹会自动重建) - 重新打开Unity,在Package Manager中重新安装
Input System包 - 安装完成后,选择Unity弹出的重启提示以启用新输入系统
2. 检查自定义程序集引用
- 若项目使用了
.asmdef自定义程序集文件,打开该文件,在Assembly References列表中勾选Unity.InputSystem - 保存文件后等待Unity重新编译
3. 修复VS与Unity的关联配置
- 打开Unity编辑器顶部菜单:
Edit > Preferences > External Tools - 确认
External Script Editor选择为VisualStudio 2022 - 点击
Regenerate Project Files,完成后重新打开VisualStudio
4. 验证输入系统设置完整性
- 打开
Edit > Project Settings > Player,在Other Settings中找到Active Input Handling,确保选择Input System Package (New) - 点击
Apply保存设置,重启Unity和VisualStudio
5. 清理VisualStudio本地缓存
- 关闭VisualStudio,删除项目目录下的
.vs隐藏文件夹 - 删除项目根目录下的
*.sln和*.csproj文件 - 回到Unity中重新生成项目文件,再打开VisualStudio
内容的提问来源于stack exchange,提问作者Nathan
相关产品推荐
相关产品推荐

