Mac上VScode无法提示Unity代码

这个问题困扰了我将近三天,网上大部分文章对我都无效。终于解决了,留个记录文章,希望能帮到其他人。

前言

Unity在Mac上只与VS绑定,但是VS在Mac上太难用了,没有插件,界面也丑。VScode虽然好用插件多,但和Unity的配合很差,环境配置很复杂,今天我们就来详细介绍一下如何做配置。

步骤

1. Unity中的设置

Unity - Settings - External Tools ,第一个选项下拉,找到VScode,选中。下图中设置和我保持一致。

在这里插入图片描述

2. 检查MONO

mono简单理解是为net在mac上运行提供一个环境,这是必须的。

2.1 先检查是否安装了MONO

在终端里输入如下:

mono --version

如果下面有很多行信息而不是报错之类的,那说明你已经安装了。关键的来了,你安装的这个,可能是为VS安装的MONO,VScode并不用这一款MONO,你需要重新安装。如果你没安装过,则跳到第3步即可。

2.2 卸载当前MONO

在终端里输入如下,即可卸载成功:

sudo rm -rf /Library/Frameworks/Mono.framework
sudo pkgutil --forget com.xamarin.mono-MDK.pkg
sudo rm /etc/paths.d/mono-commands
2.3 安装MONO

我们到MONO官网选择右侧的安装,一定不要装错了。

在这里插入图片描述

3.检查.net

这一步是我卡了最久的,因为我的问题实际上是.net的版本和VScode里omniSharp不匹配。我这里直接给大家提供一套统一的思路:卸载当前mac中所有版本的net,安装6.0.412,在VScode中配置omniSharp到此版本。接下来我们一步步操作。

3.1 卸载当前net

一般来说,我们电脑里可能有一个或多个版本的net,我们把他们都删掉。
我们到官方提供的卸载工具,下载dotnet-core-uninstall.tar.gz也就是下图中红色的:
在这里插入图片描述
下载之后把这个tar.gz放在~目录下,就是你终端一打开的目录位置(懂得自己操作的明白就行,我写给小白)。
然后执行接下来的代码

mkdir -p ~/dotnet-core-uninstall
tar -zxf dotnet-core-uninstall.tar.gz -C ~/dotnet-core-uninstall
cd ~/dotnet-core-uninstall

现在你已经进到卸载工具中了,然后我们先查再删:

下面这句帮你查看你电脑里有多少net的版本,看一眼心里有数就行

./dotnet-core-uninstall list     

net分为sdk和runtime,下面这两行我们把他们分别全删除了

sudo ./dotnet-core-uninstall remove --all --runtime
sudo ./dotnet-core-uninstall remove --all --sdk

执行完上面的之后,再看一眼net版本:

./dotnet-core-uninstall list     

理论上应该什么都没了,如果你有我下图中红框框起来的内容,没事,这个是专供VS的,不影响我们,如果你还有其他的,那继续按照版本号给他删了,比如我这个图里还有6.0.20和6.0.412的,那就这么删:(实际上6.0.412是后面我又重新下载的,这里我举个例子)

sudo ./dotnet-core-uninstall remove 6.0.412 --sdk
sudo ./dotnet-core-uninstall remove 6.0.20 --runtime

在这里插入图片描述

3.2 重新安装net

经过我的反复实验和对网上的信息的对比,我认为6.0版本的net是兼容咱们vscode最好的版本,我推荐大家和我下载一样的官网版本net
在这里插入图片描述
如果你是M1或M2芯片,就用左边的Arm64,inter的芯片就用x64。下载完成后一路安装即可。

到这一步,你电脑里的MONO和net不可能有问题,如果你是老手懂怎么操作可以不像我上述步骤那么麻烦,但如果是你环境配置小白,按照我的步骤做没问题。

4. VScode配置

Code - 首选项 -设置

和我下两张图的配置保持一致。

在这里插入图片描述
在这里插入图片描述
如果有问题,不要急,重启电脑先,net重装后需要重启。
重启之后,发现已经搞定。

在这里插入图片描述

<think>我们正在配置VSCode以调试运行在Android或iOS真机设备上的Unity应用。这需要设置VSCode的调试配置,并确保VSCode能够连接到设备上的Unity应用。 步骤概述: 1. 确保Unity项目中已启用调试功能,并设置正确的开发构建选项。 2. 在VSCode中安装必要的扩展(如Unity Debugger扩展)。 3. 配置VSCode的调试启动文件(launch.json)以连接到真机设备。 4. 对于Android:需要确保设备通过USB连接并开启了USB调试,且能够通过ADB访问。 5. 对于iOS:需要配置iOS设备进行网络调试(通常需要安装ios-webkit-debug-proxy等工具)。 详细步骤: 1. Unity项目设置: - 在Unity编辑器中,打开项目,进入`File > Build Settings`。 - 选择目标平台(Android或iOS)。 - 勾选`Development Build`和`Script Debugging`(或`Wait for managed debugger`,如果需要等待调试器连接)。 - 对于Android,确保在`Player Settings > Other Settings`中,将`Scripting Backend`设置为`Mono`(因为IL2CPP目前不支持调试托管代码,但注意:Unity Debugger扩展可能支持IL2CPP的调试,需查看扩展文档确认)。 - 对于iOS,同样在`Player Settings`中,设置`Scripting Backend`为`Mono`(或根据调试器支持情况选择)。 2. VSCode扩展安装: - 打开VSCode,进入扩展市场(Ctrl+Shift+X)。 - 搜索并安装`Unity Debugger`扩展(由Unity Technologies提供)。注意:之前常用的Debugger for Unity扩展已不再维护,推荐使用官方的Unity Debugger。 - 另外,确保安装了C#扩展(由Microsoft提供)。 3. 配置launch.json文件: - 在VSCode中,打开调试视图(Ctrl+Shift+D),然后点击齿轮图标创建`launch.json`文件。 - 选择环境为`Unity`(如果Unity Debugger扩展已安装,应该会出现这个选项)。 - 将生成一个基础的Unity调试配置。我们需要修改它以连接到真机设备。 4. Android设备调试配置: - 确保Android设备通过USB连接到电脑,并在设备上启用USB调试(在开发者选项中)。 - 在电脑上确保ADB已安装并可用(通常Android SDK自带)。 - 在Unity中构建并运行应用到Android设备(通过USB安装)。 - 在VSCode的`launch.json`中,添加一个配置,类型为`unity`,并设置`request`为`attach`。同时,需要指定设备地址。由于设备通过USB连接,我们可以通过ADB转发调试端口。 示例配置: ```json { "name": "Attach to Android", "type": "unity", "request": "attach", "address": "localhost", "port": 56000, // 选择一个端口,通常使用Unity默认的56000 "localRoot": "${workspaceFolder}/Assets/Scripts", // 指向你的脚本目录 "remoteRoot": "/", // 在设备上,Unity应用的脚本路径(通常不需要设置,因为调试符号在本地) } ``` - 在调试之前,我们需要使用ADB端口转发:在终端运行`adb forward tcp:56000 tcp:56000`(将设备上的56000端口转发到本地的56000端口)。 - 然后启动应用,再在VSCode中启动该调试配置。 5. iOS设备调试配置: - 对于iOS,由于限制,通常需要通过网络进行调试,且需要安装额外的工具。 - 首先,在iOS设备上,打开设置->Safari->高级->打开Web检查器(用于启用调试)。 - 在Mac电脑上,安装`ios-webkit-debug-proxy`(可以通过Homebrew安装:`brew install ios-webkit-debug-proxy`)。 - 启动代理:`ios_webkit_debug_proxy -f chrome-devtools://devtools/bundled/inspector.html`(默认监听9221端口)。 - 在Unity中构建并运行应用到iOS设备(通过Xcode安装)。 - 在VSCode的`launch.json`中,添加一个配置: ```json { "name": "Attach to iOS", "type": "unity", "request": "attach", "address": "localhost", "port": 9221, // ios-webkit-debug-proxy监听的端口 } ``` - 注意:iOS的调试可能更复杂,因为Unity的调试通常使用Mono或IL2CPP,而上述方法主要用于WebView。对于Unity原生代码的调试,可能需要使用Xcode进行。但Unity Debugger扩展可能支持通过网络连接到运行在iOS上的Unity应用,具体需要查看扩展文档。 重要提示Unity Debugger扩展的官方文档可能提供了更具体的配置方法,请参考其文档。另外,对于真机调试,确保设备与开发电脑在同一局域网内(对于iOS的网络调试)或通过USB连接(Android)。 由于不同版本的UnityVSCode扩展可能有差异,以上步骤可能需要根据实际情况调整。 引用说明: 根据引用[3]:tsc调试模式是LayaAir开源项目配置的,与Unity调试无关,但我们可以参考其调试配置的思想。引用[4]提到VSCode的扩展性,我们正是利用扩展来实现调试。 相关问题: 1. 如何解决VSCode调试Unity真机时连接失败的问题? 2. 除了Unity Debugger扩展,还有哪些VSCode扩展可用于Unity开发? 3. 在Unity中如何配置IL2CPP脚本后端的调试?</think>### 配置 VSCode 调试 Unity 真机设备指南 #### 一、环境准备 1. **Unity 项目设置** - 在 Unity Editor 中启用开发模式: `File > Build Settings > 勾选 Development Build 和 Script Debugging` - 设置目标平台(Android/iOS)并确保安装对应 SDK: - Android:需安装 Android SDK 和 JDK(通过 Unity Hub 或手动配置) - iOS:需安装 Xcode(仅 macOS 系统) 2. **VSCode 必备插件** - 安装官方扩展:[Unity Debugger](https://marketplace.visualstudio.com/items?itemName=Unity.unity-debug)(由 Unity Technologies 开发) - 辅助扩展:[C#](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp)(微软官方 C# 支持) #### 二、Android 真机调试配置 1. **设备连接** - 开启手机的 USB 调试模式(开发者选项) - 通过 USB 连接电脑,终端执行 `adb devices` 确认设备识别 2. **创建调试配置** 在项目根目录创建 `.vscode/launch.json`: ```json { "version": "0.2.0", "configurations": [ { "name": "Attach to Android", "type": "unity", "request": "attach", "address": "localhost", "port": 56000, // Unity 默认调试端口 "localRoot": "${workspaceFolder}/Assets/Scripts", "remoteRoot": "/" } ] } ``` 3. **端口转发** 终端执行: ```bash adb forward tcp:56000 tcp:56000 ``` 4. **启动调试** - 在 Unity 中构建 APK 并安装到手机 - 在 VSCode 按 `F5` 选择 `Attach to Android` 配置 #### 三、iOS 真机调试配置(仅 macOS) 1. **Xcode 准备** - 在 Unity 中构建 Xcode 工程 - 用 Xcode 打开工程,配置开发者证书和 Bundle ID 2. **VSCode 配置** 修改 `launch.json`: ```json { "configurations": [ { "name": "Attach to iOS", "type": "unity", "request": "attach", "address": "设备IP", // 如 192.168.1.100 "port": 56000 } ] } ``` 3. **网络调试** - 确保手机和电脑在同一局域网 - 在 Unity 脚本开头添加(临时调试): ```csharp void Start() { UnityEngine.Debug.Log("等待调试器连接..."); UnityEngine.Application.RunInBackground = true; // 允许后台运行 System.Threading.Thread.Sleep(5000); // 等待连接 } ``` 4. **启动流程** - 通过 Xcode 安装应用到 iOS 设备 - 在 VSCode 启动调试器,5 秒内启动 App #### 四、常见问题解决 - **连接失败**: - 检查防火墙是否阻止 56000 端口 - Android 执行 `adb kill-server && adb start-server` - iOS 确保 `mDNSResponder` 服务运行 - **断点不生效**: - 确认 Unity 项目开启了 `Script Debugging` - 在 VSCode 中重新加载窗口(Ctrl+Shift+P > `Reload Window`) > **关键提示**:Unity 2021+ 版本需在 `Project Settings > Editor` 中将 `Script Editor` 设为 VSCode[^4]。iOS 调试需保持设备屏幕常亮防止断连。 --- ###
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值