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

M1 Mac中VS Code适配Unity自动补全失效、运行异常问题

M1芯片Mac设备VS Code适配Unity 2021.3 LTS故障修复

问题基础信息

  • 运行环境:搭载M1芯片的MacBook Air,已安装VS Code、Unity 2021.3.4.f1 Silicon LTS版本,且已在Unity外部工具设置中完成VS Code关联配置
  • 已预装依赖:homebrew、wget、.net core、Mono稳定通道版本、Mono Visual Studio通道版本、相关SDK依赖
  • VS Code已装插件:官方C#扩展、Kleber Silva出品的Unity code snippets、Ycleptic Studios出品的Unity snippets
  • 已尝试的无效排查操作:
    • 因VS Code设置界面未找到OmniSharp Global mono选项,手动在settings.json文件中添加配置项"omnisharp.useGlobalMono": "always",多次重启设备仍未解决问题
    • 已勾选Unity设置中所有Generate .csproj files相关选项
  • 现存故障:
    • VS Code编辑Unity代码无自动补全提示
    • 编写Console.Write("hello world")类测试代码时仅能在终端运行,无法通过VS Code直接启动运行

修复步骤

一、解决Unity代码无自动补全问题

该问题核心原因是新版本C#扩展默认启用Modern .NET模式,与Unity 2021 LTS内置的Mono编译环境不兼容,且旧版useGlobalMono配置项已在高版本扩展中废弃,手动添加不会生效。

  • 完全退出VS Code与Unity,删除本地C#扩展缓存:打开访达按Command+Shift+G,输入路径~/.vscode/extensions/,找到前缀为ms-dotnettools.csharp的文件夹全部删除。
  • 重新打开VS Code安装C#扩展,选择1.25.0版本安装,该版本对M1架构、Unity 2021 LTS的适配稳定性最高,不要安装最新版。
  • 打开VS Code的用户配置settings.json,删除之前添加的"omnisharp.useGlobalMono": "always"配置,新增以下适配配置:
{
  "omnisharp.useModernNet": false,
  "omnisharp.monoPath": "/Library/Frameworks/Mono.framework/Versions/Current",
  "omnisharp.sdkPath": "/usr/local/share/dotnet/sdk",
  "omnisharp.projectLoadTimeout": 60,
  "omnisharp.autoStart": true
}
  • 打开对应Unity项目,删除项目根目录下的Library、Temp、obj文件夹,以及所有.csproj、.sln后缀的文件。
  • 进入Unity的外部工具设置页,先取消所有Generate .csproj files的选项勾选,点击应用,再重新全部勾选,点击Regenerate project files按钮等待生成完成。
  • 右键项目内任意C#脚本选择Open C# Project,等待VS Code左下角OmniSharp加载进度条走完,无红色报错提示时,代码自动补全即可正常工作。

二、解决VS Code无法直接启动运行代码问题

该问题是因为默认生成的调试配置未匹配M1芯片下的.NET路径,且未区分Unity附加调试与独立脚本运行场景:

  • 在VS Code中打开对应工作区,切换到运行和调试面板,点击创建launch.json文件,选择C#环境。
  • 将自动生成的配置内容替换为以下适配配置:
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "附加到Unity编辑器",
      "type": "mono",
      "request": "attach",
      "address": "localhost",
      "port": 55555
    },
    {
      "name": "运行独立C#脚本",
      "type": "coreclr",
      "request": "launch",
      "preLaunchTask": "build",
      "program": "${workspaceFolder}/bin/Debug/net6.0/${fileBasenameNoExtension}.dll",
      "args": [],
      "cwd": "${workspaceFolder}",
      "console": "integratedTerminal",
      "stopAtEntry": false
    }
  ]
}
  • 打开VS Code集成终端,在独立脚本存放的工作区根目录执行命令dotnet new console -f net6.0,生成基础控制台项目配置文件。
  • 后续运行独立测试代码时,在调试面板选择「运行独立C#脚本」配置,即可直接在VS Code内启动运行;调试Unity代码时选择「附加到Unity编辑器」配置,保持Unity编辑器运行状态即可实现断点调试。

注意:M1架构下不要安装任何第三方OmniSharp替代插件,此类插件会篡改Mono路径配置,反而导致OmniSharp加载失败。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 21:27:19