vscode调试Unity

文章目录

  • vscode调试Unity
    • C#
      • 环境需求
      • 开始调试
    • Lua
      • 添加Debugger
      • 环境配置
        • 联系.txt文件
        • 配置Java环境
      • 添加调试代码
      • 断点不生效的问题

vscode调试Unity

C#

现在使用vscode调试Unity的C#代码很简单,直接在vscode的EXTENSIONS里面搜索“Unity”,第一个就是,然后安装它,它会自动帮你安装上C#C# Dev Kit扩展,这两个扩展的作用是代码导航和编译。

在这里插入图片描述

环境需求

  • Unity 2019 LTS或更高的版本
  • 需要在vscode中激活C# Dev Kit扩展,安装后就是激活的
  • .NET 7 SDK或更高的版本,C# Dev Kit会自动帮你安装
  • Unity的Visual Studio Editor包需要2.0.20或更高版本

Visual Studio Code Editor是舍弃的包,不用管。如果Visual Studio Editor的版本小于2.0.20,可以先解锁再升级到最新的版本,下图是解锁过。

在这里插入图片描述

.Net Core SDK的版本检测,打开cmd,输入dotnet --list-sdks就可以查看本机上安装的sdk的版本。

在这里插入图片描述

开始调试

Unity扩展添加了两个命令到vscode的命令面板(Ctrl+Shift+P打开)

  • Attach Unity Debugger:这个命令会显示可以附加到Unity debugger的Unity Editor和Player在这里插入图片描述

  • Unity API Reference: 这个命令会打开你选中的代码的Unity文档。

注意:如果你第一次运行,没有使用Attach Unity Debugger命令选择Unity Editor和Player,直接在Run And Debug那里点击开始,会弹出出dotnot is not yet acquired,无法成功附加,原因应该是你没有选择附加的Unity对象。执行Attach Unity Debugger选择Unity Editor和Player之后就正常了。

在这里插入图片描述

Lua

Lua的调试是使用的EmmyLua扩展。为了方便Lua的编写,以及添加断点,需要安装Lua扩展。

添加Debugger

打开.vscode/launch.json文件,右下角有一个Add Configuration...按钮,点击,在弹出的列表中查找,可以看到EmmyLua New DebugEmmyLua: Attach by process idEmmyLua: Attach by launch program三个选项,这里我选的是EmmyLua New Debug

在这里插入图片描述

可以看到emmylua支持的文件扩展名也有.lua.txtideConnectDebugger默认是true,这里我将它改成了false。如果是true的话,需要先运行Unity,再在vscode开始调试;false则相反。ideConnectDebugger从字面意思理解就是ide连接到debugger,ide是vscode,debugger是Unity。再结合上面的hostport字段,可以猜出emmylua和unity的连接是使用网络协议连接的,所以ide和debugger必定一个为服务单,一个为客户端。

添加debugger之后,我们可以在调试那里变成了两个选项:

在这里插入图片描述

Attach to Unity是用来调试C#的;EmmyLua New Debug是用来调试Lua的;你想调试哪个就使用哪个Debugger,不能同时调试C#和Lua。

环境配置

联系.txt文件

由于Unity不支持.lua文件,所以lua脚本一般使用.txt文件。但是vscode的lua又无法识别.txt文件,所以必须将lua和.txt文件联系起来。又为了和其他.txt文件区分,文件后缀可以改成.lua.txt。上面的launch.json里面EmmyLua也支持.lua.txt的文件后缀。打开.vscode/settings.json文件,在其中添加:

"files.associations": {"*lua.txt": "lua",},
配置Java环境

EmmyLua需要Java环境的支持,可以直接去java的官网下载安装。安装完后需要配置JAVA_HOME环境变量JAVA_HOME=XXX/Java/jre-1.8,再在Path里面添加一个路径$JAVA_HOME$/bin。但是我这样添加环境变量后,发现EmmyLua还是无法找到Java。后来发现EmmyLua的Settings里面有一个java.home的变量:

在这里插入图片描述

这里可以看到,emmylua.java.home的值为null,需要将它设置为我们上面的JAVA_HOME的值。再EmmyLua扩展的界面点击设置里面的Extension Settings

在这里插入图片描述

或者,打开命令面板(Ctrl+Shift+P),输出settings.json,选择Open User Settings

在这里插入图片描述

打开用户的设置文件(.vscode/settings.jsonWorkspace Settings),在里面设置emmylua.java.home的值

在这里插入图片描述

添加调试代码

上面已经说了,vscode和Unity一个客户端,一个服务端。如果ideConnectDebugger=true,那么是vscode连接到Unity,Unity是服务端,vscode是客户端;false则相反。所以,我们开始运行lua的时候,需要和vscode建立连接,建立连接的API在emmy_core.dll里面,路径是C:/Users/xxx/.vscode/extensions/tangzx.emmylua-0.5.19/debugger/emmy/windows/x64/emmy_core.dll。所以在lua的开始我们需要加入下面的代码

local path = "C:/Users/xxx/.vscode/extensions/tangzx.emmylua-0.5.19/debugger/emmy/windows/x64/emmy_core.dll"
package.cpath = package.cpath .. ";" .. path  #将emmy_core.dll的路径加入后,就可以使用require了
local dbg =require("emmy_core")
dbg.tcpConnect("localhost", 9966)             #因为是ideConnectDebugger=false,vscode是服务端,使用connect;反之使用tcpListen

然后就可以开始调试了。

断点不生效的问题

按照上面完成所有操作后,你会发现连接成功了,但是断点没有生效。然后你的代码很可能是这样的(我使用的是xlua)

var luaEnv = new LuaEnv();
luaEnv.DoString(textAsset.text);

这是因为你没有指定chunkName,emmylua不知道是哪个文件,所以断点没有生效。如果textAsset.textmain.lua.txt文件的内容,按照下面的修改断点就会生效了

var luaEnv = new LuaEnv();
luaEnv.DoString(textAsset.text, "main.lua.txt");

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/294296.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv8改进 | 细节涨点篇 | 利用YOLOv8自带的RayTune进行超参数调优

一、本文介绍 本文给大家带来的改进机制是利用Ray Tune进行超参数调优,在YOLOv8的项目中目前已经自带了该超参数调优的代码,我们无需进行任何的改动,只需要调用该方法输入我们的一些指令即可,当然了,这些超参数的设置还是比较又学问的,本文的内容也是应群友的需求进行发…

研发设计人员能力级别定义

研发设计人员能力&级别定义 1. 源由2. 级别定义3. 级别能力3.1 助理工程师3.1.1 工作内容3.1.2 级别晋升3.1.3 详细描述 3.2 初级工程师3.2.1 工作内容3.2.2 级别晋升3.2.3 详细描述 3.3 高级工程师3.3.1 工作内容3.3.2 级别晋升3.3.3 详细描述 3.4 资深工程师3.4.1 工作内…

【Entity Framework】EF中的增删改查

【Entity Framework】EF中的增删改查 文章目录 【Entity Framework】EF中的增删改查一、概述二、DbContext数据上下文三、EntityState五个状态值四、EF添加数据4.1 EF Add方式4.2 EF 通过改变对象的状态为 Added4.3 调用方sql4.4 调用存储过程 五、EF修改数据5.1 不查询数据库&…

仿真黑科技EasyGo DeskSim 2022

DeskSim2022的FPGA支持多种solver的混合应用,对于每一种solver可以采用不同的仿真步长,以下图模型为例,模型运行在FPGA上,FPGA解算方式采用的是Power Electronic & FPGA Coder解算,其中电力电子电路部分采用了两种…

ssm013小型企业办公自动化系统的设计和开发+vue

小型企业办公自动化系统的设计与实现 摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对小型企业办公信息管理混乱&am…

wps 开发插件

官方文档参考wps官方文档参考 1.环境安装 安装wps https://www.wps.cn/ 安装Node.js https://nodejs.org/en 安装代码编辑器 Visual Studio Code https://code.visualstudio.com/ 环境检查-进入cmd查看 node -v2.demo 2.1 demo下载 打开vscode,新建终端 安装…

C#学习笔记 面试提要

冒泡 for (int m 0; m < arr.Length; m) { for (int n 0; n < arr.Length - 1 - m; n) { if (arr[n] > arr[n1]) { int temp arr[n]; arr[n] arr[n 1]; arr[n1] temp; } } } 选择 for (int m 0; m < arr.Length; m) { int index 0; for (int n 1; n < …

HackTheBox-Mist

整体思路 端口扫描->Pluck CMS组件文件读取漏洞->文件上传获取shell->创建指向exe的快捷方式来提权-> 信息收集&端口利用 namp -sSVC 10.10.11.17目标只开放了80端口&#xff0c;将mist.htb加入到hosts文件后&#xff0c;访问mist.htb Pluck CMS文件读取 在…

中科驭数超低时延网络解决方案入选2023年度金融信创优秀解决方案

近日&#xff0c;由中国人民银行领导、中国金融电子化集团有限公司牵头组建的金融信创生态实验室发布「2023年度第三期金融信创优秀解决方案」&#xff0c;中科驭数超低时延网络解决方案从众多方案中脱颖而出&#xff0c;成功入选&#xff0c;代表了该方案的技术创新和金融实践…

HUAWEI 华为交换机 配置 Eth-Trunk 接口流量本地优先转发示例(堆叠)

组网需求 说明 S5720I-10X-PWH-SI-AC 和 S5720I-6X-PWH-SI-AC 不支持此配置。 如 图 3-23 所示&#xff0c;为了增加设备的容量采用设备堆叠技术&#xff0c;将 Switch3 和 Switch4通过专用的堆叠电缆链接起来&#xff0c;对外呈现为一台逻辑交换机。为了实现设备间的备份、…

算法题->盛最多水的容器C语言和JAVA双指针解法

盛最多水的容器C语言和JAVA双指针解法 题目描述: 力扣链接:https://leetcode.cn/problems/container-with-most-water/description/ 题意: 根据数组中的值(高)和下标差值(宽),求能容纳最多的体积V. 例子: 输出49的求解过程,根据木桶效应,存储水的高度由短木板决定,故 V 短…

瑞_23种设计模式_迭代器模式

文章目录 1 迭代器模式&#xff08;Iterator Pattern&#xff09;★★★1.1 介绍1.2 概述1.3 迭代器模式的结构1.4 中介者模式的优缺点1.5 中介者模式的使用场景 2 案例一2.1 需求2.2 代码实现 3 案例二3.1 需求3.2 代码实现 4 JDK源码解析 &#x1f64a; 前言&#xff1a;本文…

NBU备份oracle详细配置文档(含常见报错处理方法)

​前提 NBU master和media服务器已经配置OK&#xff0c;现在需要oracle主机安装agent并配置备份任务。 NBU master版本8.3.0.2 Oracle OS版本redhat 6.8 Oracle版本 11.2.0.4 1.Oracle 安装agent 下载安装档 https://www.veritas.com/content/support/zh_CN 选择…

产品经理的进阶之路

点击下载《产品经理的进阶之路》 1. 前言 本文深入剖析了产品经理这一职业从产品专员起步,逐步晋升为产品经理、高级产品经理,直至产品总监的整个职业发展路径。在每个阶段,产品经理都需承担不同的工作职责,展现出独特的职业特点。 2. 产品专员 关键词【产品需求/原型/文…

【操作系统】FCFS、SJF、HRRN、RR、EDF、LLF调度算法及python实现代码

文章目录 一、先来先服务调度算法&#xff08;FCFS&#xff09; 二、短作业优先调度算法&#xff08;SJF&#xff09; 三、高响应比优先调度算法&#xff08;HRRN&#xff09; 四、轮转调度算法&#xff08;RR&#xff09; 五、最早截至时间优先算法&#xff08;EDF&#…

windows下部署llama.cpp

下载cmake 下载地址 解压&#xff0c;设置Path环境变量D:\CMake\bin 打开cmd输入cmake -version 安装mingw powershell下执行 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser iex "& {$(irm get.scoop.sh)} -RunAsAdmin" scoop bucket add extras s…

产品经理的自我修养

点击下载《产品经理的自我修养》 1. 前言 在产品领域取得成功的关键在于持续的激情。只有保持热情不减,我们才能克服各种困难,打造出卓越的产品。 如果你真心渴望追求产品之路,我强烈建议你立即行动起来,亲自参与实际的产品创作。无论是建立一个网站、创建一个社群,还是…

单V及多V感知在自动驾驶在恶劣环境条件下的感知提升方案

单V及多V感知在自动驾驶在恶劣环境条件下的感知提升方案 附赠自动驾驶学习资料和量产经验&#xff1a;链接 自动驾驶中的视觉感知是车辆在不同交通条件下安全、可持续地行驶的关键部分。然而&#xff0c;在大雨和雾霾等恶劣天气下&#xff0c;视觉感知性能受到多种降级效应的极…

哈希表(Hash Table) -- 用数组模拟--字符串前缀哈希

本文用于个人算法竞赛学习&#xff0c;仅供参考 目录 一.什么是哈希表 二.哈希函数中的取模映射 三.拉链法&#xff08;数组实现&#xff09; 四.拉链法模板 五.开放寻址法 六.开放寻址法模板 七.字符串前缀哈希 九.字符串前缀哈希 模板 十.题目 一.什么是哈希表 哈希表&…

flink: 将接收到的tcp文本流写入HBase

一、依赖&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.o…