Visual Studio Code中找不到TMPro

4

我正在使用Visual Studio Code编写Unity的代码,同时安装了以下扩展程序:C#,Debugger for Unity,Unity Code Snippets和Unity Tools。

在使用TMPro处理TextMeshPro组件时出现了以下错误:

Unnecessary using directive. [Assembly-CSharp]csharp(CS8019)
The type or namespace name 'TMPro' could not be found (are you missing a using directive or an assembly reference?) [Assembly-CSharp, Assembly-CSharp, Assembly-CSharp, Assembly-CSharp, Assembly-CSharp, Assembly-CSharp, Assembly-CSharp]csharp(CS0246)

好的一面是,在Unity编辑器中没有抛出任何错误,但它仍然很烦人。

有人知道我是否需要下载其他扩展或如何解决此问题吗?

最好的

7个回答

16

我已经有这个问题很久了,下面是适用于Unity 2021.1和最新的Vscode插件的解决方案:

前往“首选项”>“外部工具”,然后取消选中所有生成csproj复选框,删除所有sln和CSproj文件。

点击“重新生成项目文件”。


太好了,这个对我有用。谢谢伙计。 - Ginxxx
不行,不起作用。或者说,上面的说明不够详细。在Unity 2021.3.12f1中没有起作用。TMPro是通过包获取而不是资产商店获取的。 - eric frazer
实际上,它确实有助于v 2021.3版本,并且不需要重新启动、删除库文件或卸载任何东西。 - Shachar Oz

11
在设置Unity内的单元测试后,我遇到了这个问题。如果你在Unity项目中有一个程序集定义文件,那么需要在检视面板中添加一个新的程序集定义引用。在这种情况下,就是 Unity.TextMeshPro

这并没有真正回答问题。如果您有不同的问题,可以通过单击提问来提出您的问题。如果您希望在这个问题有新答案时得到通知,您可以关注这个问题。一旦您获得足够的声望,您还可以添加悬赏以吸引更多关注。- [来自评论审查] (/review/late-answers/29953910) - Sangeerththan Balachandran
这解决了我遇到的问题,即Unity和Rider(IDE)不停地引发错误(不是在运行时,无法运行场景),因为找不到TMPro。我确实需要将Unity.TextMeshPro.asmdef添加到项目正在使用的asmdef文件中以引用程序集定义。谢谢。如果您在项目中导入了TextMeshPro,请在项目资源管理器中搜索Unity.TextMeshPro以找到它。 - El Bachir
1
这正是我的情况,它起作用了!谢谢。 - Yaroslav Petrenko

5
如果您将项目移动到其他文件夹,请确保更新“Assembly-CSharp.csproj”以使用新的、正确的文件路径来包含像“TextMeshPro”和“UnityEngine.UI”这样的库。

2
原来问题出在我的项目的*.sln文件中,由于缺少对*.dll文件的路径引用,所以找不到参考文献。删除Unity.TextMeshProUnity.TextMeshPro.Editor然后重新导入它们可以解决这个问题。

谢谢。我刚安装了Unity 2020.3.18f1,当我尝试在脚本中访问obj.text元素时,我的第一个TMPro UI元素出现了这个问题。卸载TMPro资产包并重新安装似乎已解决了这个问题。 - RogueDeus

2
在我的情况下,我不得不向“脚本”文件夹(我将所有游戏脚本放在此处)添加一个脚本程序集。完成后,在“程序集定义引用”中添加了一个引用并选择了“Unity.TextMeshPro”,然后我就可以在脚本中添加using TMPro;
这种情况以前从未发生过,我怀疑是测试运行器抱怨它不知道“TMPro”的原因。 unity3d assembly reference for TextMeshPro

不起作用。我刚试过了。TMP是通过包管理器导入的,Unity版本为2021.3.12f1。此外,您可能需要提到您还需要为其他导入的项目添加程序集定义。并不是这样就可以工作的。 - eric frazer
@ericfrazer 我尝试透明地表明,由于你刚提到的确切情况,我发现自己处于一个非标准的场景中。干杯~ - Jacksonkr

0
打开“包管理器”,确保您已安装了TextMeshPro软件包。 如果此错误仍然存在,请重新启动“Unity编辑器”。

嘿,感谢你的回答。错误不是在“Unity编辑器”中发生的,而是在“Visual Studio Code”中发生的。 - Spoon
毫无用处的回答。你为什么要浪费时间打那个呢? - eric frazer

0
在我的情况下,答案是删除所有项目文件,在包管理器中重新安装TMPro,并删除Library/PackageCache/下的所有文件夹。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接