Unity 项目成功生成,但 VS Code 抛出命名空间'EventSystems'中不存在的类型或命名空间名称'UnityEngine'



我有类似的项目没有出现这个问题,但这个项目出现了。它特别不能在我的类中解析UnityEngine.EventSystems,尽管它可以使用UnityEngine进行解析。

我的Unity版本是2020.3.13f1。

我相信有问题的包是Unity UI,它解析为com.Unity.ugui,并在我的项目中引用在UnityEngine.UI.csproj和UnityEditor.UI.csproj下。

Unity可以清楚地看到包,并根据代码库的变化动态重建,但VS代码不能,尽管它在看到其他Unity包时没有问题。据我所知,这似乎不是缓存问题。

using UnityEngine; <- can be resolved
using UnityEngine.EventSystems; <-- can't be resolved
public class TestScript : MonoBehaviour, IPointerEnterHandler, IPointerDownHandler, 
IPointerUpHandler, IPointerExitHandler
{
public void OnPointerEnter(PointerEventData eventData) { }
public void OnPointerDown(PointerEventData eventData) { }
public void OnPointerUp(PointerEventData eventData) { }
public void OnPointerExit(PointerEventData eventData) { }}
}

任何提示都将不胜感激:-(

建议:

检查这两个"嵌入式包"one_answers"本地包"在您的统一内部的布尔值下:

编辑/首选项/ExternalTools

然后单击"重新生成项目文件",它就会工作。

实际问题:它的发生是因为VS代码特别慢,有时它甚至没有检测到unity中的一些包/命名空间,特别是因为在VS代码中安装了unity扩展(拥有它们不是问题,因为它们当然是使用unity和智能感知所必需的,但VS代码中的扩展通常很慢,所以…(,如果你使用任何完整的IDE,比如VS社区或Jetbrains Rider,通常都不会发生这种情况,他们似乎自己在处理这个问题,你不需要担心。

注意:我知道这个问题的作者已经在评论中回答了他自己,但对于那些可能对此感到疑惑的人,我想我只是把它放在这里为他们回答,这样他们就可以很容易地找到解决方案,并澄清为什么这个问题会首先发生

希望它能帮助。。。快乐编码:(

最新更新