You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中“nameof不存在于当前上下文”错误求助

解决Unity中nameof不存在的编译错误

1. 先修正代码中的语法错误

你的代码里有个明显的语法错误:nameof(ReloadLevel()多了一个闭合括号,正确写法应该是:

Invoke(nameof(ReloadLevel), 1.3f);

这个错误可能干扰编译器的错误提示,先修正它再排查其他问题。

2. 检查Unity的脚本运行时版本

nameof是C# 6.0引入的特性,需要确保Unity配置支持该版本:

  • 打开Unity编辑器,点击顶部菜单 Edit > Project Settings
  • 左侧面板选择 Player,切换到 Other Settings 标签页
  • 找到 Configuration 区域:
    • 将 Scripting Runtime Version 设置为 .NET 4.x Equivalent
    • 将 Scripting Version 设置为 C# 7.3(Unity 2021.3版本支持该选项,完全覆盖nameof特性)
  • 设置完成后点击 Apply,等待Unity重新生成项目文件

3. 重置VSCode与Unity的关联配置

  • 关闭VSCode,删除项目根目录下的.vs和Library文件夹(操作前备份重要文件)
  • 重新打开Unity项目,等待Unity完成资源导入和配置生成
  • 再次打开VSCode,让OmniSharp重新加载项目文件

4. 手动指定C#语言版本(可选)

如果以上步骤无效,可直接修改项目配置文件:

  • 在项目根目录找到Assembly-CSharp.csproj,用文本编辑器打开
  • 在<PropertyGroup>节点内添加或修改:<LangVersion>7.3</LangVersion>
  • 保存文件后,回到VSCode等待OmniSharp重新加载项目

若问题仍存在,建议创建一个新的Unity测试项目,写入包含nameof的简单代码,验证是否是当前项目的配置损坏导致的异常。

内容的提问来源于stack exchange,提问作者Katu Monsterpants

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 19:55:31