【学习笔记】Rider调试unity【 联调、断点调试等】(决定弃用vscode了)

news2024/12/30 1:37:18

目录

    • 一 弃用vscode原委
    • 二 Rider调试Unity
      • 2.1 启动调试
      • 2.2 pausepoint 暂停点
        • 2.2.1 使用pausepoint
        • 2.2.2 pausepoint与breakpoint的区别
      • 2.3 不同run configuration区别
    • 三 Rider编辑
      • 3.1 补充
    • 四 总结

转载请注明出处:🔗https://blog.csdn.net/weixin_44013533/article/details/130518705

一 弃用vscode原委

小伙伴应该都尝试过vscode的unity调试插件了吧
在这里插入图片描述
插件不再维护不说,压根用不了,网上一堆抱怨,各种方法层出不穷,尝试了很多方法,正如这位网友所说的那样
在这里插入图片描述

插件官方也在github做出了回应
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
简单来说开发者没钱没闲,建议大家用Visual Studio或者Rider

参考链接:
Can you please make an official statement on the state of this extension? #207
Official Update on the Visual Studio Code package
VS Code里使用Debugger for Unity插件调试的方法(2023最新版)

既然官方都这个态度,为啥不尝试去用Rider呢,更何况之前还是深度IDEA用户,也用过pycharm,对JetBrains 的产品还是很信任的。那为啥之前死磕vscode呢?还不是被网上vscode吹,说最好用的ide没有之一,说什么多语言编辑,小巧,快速打开,超丰富插件啥啥,天花乱坠,加上以前就想试试vscode一直没机会,所以就这样钻牛角尖了。

从一开始的F12问题卡我好几天,源码到现在我都不会查看。以及现在脚本调试、断点调试问题,一直无从下手,以至于心生胆怯,一碰到这个问题我就退缩不想碰,然后就忙其他事情了。五一到现在,学习进度一直卡在这。

今天心想不能再这么耽搁下去了,查了一圈然后想到rider,要不试试,果然,很多大佬都开始用rider了。

作为一名入行多年的游戏开发者,尤其是虚幻引擎的重度用户,我在IDE工具的选择上真的很难有VisualStudio以外的其他选项。不过自从 2016年JetBrains Rider问世以后,这种被VS垄断的局面正在逐渐被改变,身边也有越来越多的朋友推荐我去使用它。


功能推荐:

  1. 搜索:对于一个复杂项目,搜索当然是重中之重。首先最方便快捷的就是【"Shift Shift"】进行快速的全局搜索,与VS中的【“Ctrl + T”】类似,可以查找类型、文件、文本字符串等等,支持首字母查找、速度非常快。如果你忘记了某个快捷键,还可以通过Actions标签进行关键字搜索,非常方便实用。
    另一个非常重要的快捷键就是【“Alt + Enter”】,可以呼出一个浮窗处理一系列相关的逻辑,包括自动插入代码、导航定位、变量重命名、定义构造分离、一键注释等各种相关功能。
    【“Alt + G”】或者【“Ctrl + 鼠标左键”】可以迅速的在类的函数和定义之间切换,完全不卡且非常准确。【“Alt + O”】可以方便的在类的头文件和CPP文件快速切换。(这些在VA助手里面也有,但是Rider确实要快多)
    【“Ctrl + Shift + F”】可以全局搜索字符串,秒开一个窗口来显示结果。点击结果还可以快速的在不同的窗口之间进行切换,非常方便预览。
    【"Ctrl + F2"】或者【“Alt + Home”】可以直接显示当前文件所在的目录,并且可以快速的在当前目录前后进行跳转和查阅。
  2. 编码:我们在头文件在声明类之后可以通过【“Alt + Insert”】自动的帮你插入常见的构造函数、getter、Setter等,声明完函数后,还可以转到CPP里面直接使用【“Alt + Insert”】插入所有没有被实现过的的函数代码段。
  3. Git相关:Git相关的插件是直接默认安装的(如果没有可以到Plugin配置下面搜索),【Alt 9】打开Git的窗口我们就可以很方便的进行Push、Fetch Commit 、Blame、 View Diff、View Histoty等操作。习惯后就可以完全在Rider里面进行Git相关的操作了,大大地提高效率。(VS也支持Git相关的操作)
  4. Debug:控制Unity编辑器
    由于集成的双向通信,无需离开Rider,您即可切换进出Play模式,暂停,和逐帧执行! 工具条包含游戏视图按钮Play、Pause和Step,分别对应Unity Editor中的相同按钮,并且与Unity Editor中的按钮控制相同的行为操作。 状态栏上的Unity小图标将显示Unity Editor是否已经连接,正在刷新或在Play模式。 在Rider处于Edit模式下的任何变更都将立刻提交Unity Editor。在这里插入图片描述
  5. 数据库:Rider自带了数据库可视化工具,可以在软件中直接操作数据库。而且通常我们使用的SQL Server、MySQL、Apache、Oracle全部都是支持的,用起来非常方便。
  6. 全栈开发:Rider本身对WEB全栈其实是比较友好的,常见的JavaScript、TypeScript、HTML、CSS、JSON、SQL 等全部支持。而在游戏开发中,我们除了C++、C#还可能需要写Lua、Python等脚本代码,所以常常是分别使用VS和VSCode来编写不同语言的代码。有了Rider,再配合一些插件,我们就可以全部都在一个IDE里面进行操作了。此外,Rider还支持SSH,对于兼职客户端服务器两个岗位的同学,平时使用Rider搞前端,然后直接SSH链接到远端写服务器代码也是非常舒服的。
  7. 其他功能:还有一些比较人性化的功能,使用起来也很方便
    – 内置控制台,解决运行批处理来回切窗口的问题。
    – ToDolist预览,写复杂功能的时候就不怕临时忘掉了
    – 数字BookMark,更方便的进行跳转和记录
    – LocalHistory,相当于一个本地自动的版本管理记录,可以右键查看和对比,即使电脑突然死机也可以找到你最近修改过的记录。
    – 颜色选取,对Color定义使用【Alt Enter】可以直接呼出颜色面板进行选色替换(Unity可用)
    ·
    ·
    谈谈Rider在游戏开发中的使用体验

尽管如此,依然有其他人抱怨内存占用的问题,我突然想到这不就是小时候学的“小马过河”的道理吗?我现在是32G内存,根本无需考虑这种吃内存烦恼,再不行再加两条。

刚装完Rider,那种熟悉的感觉扑面而来,最惊喜的是Rider和Unity能够联动调试,这不就是我一直捣鼓想要达成的目的吗

二 Rider调试Unity

目标

  • 四种run/debug configuration区别
  • 断点调试方法
  • 常用调试/编辑快捷键

2.1 启动调试

在本地计算机上调试Unity应用程序

  1. Unity Editor打开项目
  2. Rider打开对应脚本
  3. 添加断点
  4. 选择Attach to Unity Editor & Play配置
  5. 点击debug标签或者使用Shift+F9快捷键

参考:Rider官网手册 Debug Unity Applications

2.2 pausepoint 暂停点

A pausepoint is a new type of debugger breakpoint that does not suspend the execution of your code but instead pauses the Unity Editor at the end of the current frame.暂停点是一种新型的调试器断点,它不会暂停代码的执行,而是在当前帧结束时暂停Unity编辑器。

2.2.1 使用pausepoint

右键断点,点击「Convert to Unity pausepoint」。
在这里插入图片描述

2.2.2 pausepoint与breakpoint的区别

Developing in Unity, you need to live in two worlds – the Unity Editor and your C# editor. If you want to debug your game, you need to set breakpoints in your C# script files. When hit, the entire Unity Editor environment is stopped – the native game engine as well as the managed C# scripts running both your game and the editor itself.

You can then use the debugger to inspect your call stack, look at and change values of fields and variables and even evaluate expressions. But your game is still suspended, as is the Editor – you can’t use the Editor to select or move game objects, or look at and change values in the Inspector.

What if you could get the best of both worlds? Say hello to pausepoints.

Set a pausepoint in code, and when hit, it puts the Unity Editor into pause mode at the end of the current frame. The Editor is still fully responsive. You can’t look at values in Rider’s debugger, but you can now use the Unity Editor to select game objects, view the Inspector, change values and move objects around. When you’re done, just click the pause button in the Editor to continue playing.

参见:Introducing Pausepoints for Unity in Rider 2020.2

我理解的,简单讲就是breakpoint使Rider编辑器暂停(这时Unity编辑器无法操作),pausepoint使Unity编辑器暂停(Unity Editor可以编辑拖动物体等,这在breakpoint中是无法做到的)

2.3 不同run configuration区别

在这里插入图片描述
Attach to Unity Editor、 Attach to Unity Editor & Play、 Start Unity、 Unit Tests ( batch mode),简单看了下,Rider分Temporary 和Permanent ,使用Start Unity会重新创建新的Unity Editor实例(如果已存在会弹窗报错),当停止debug时,这个Unity Editor会自动关闭。

所以想要调试项目时,使用Attach to Unity Editor & Play这个配置,自动识别已存在的Unity Editor。
目前接触的较少,官网也没找到确切的讨论这4个区别的内容,不过有Edit 配置相关,附在下面:

Run/debug configurations
List of run/debug configuration templates

三 Rider编辑

3.1 补充

  1. Rider可以反向查询挂载脚本的对象,点击如下按钮可跳转Unity Editor聚焦对应Object(简直太棒了,就我学习阶段我都老是搞不清一些脚本被谁挂载了,但试了下,多个物体怪哉还是只能识别到一个,不清楚啥原因)
    在这里插入图片描述
    好吧是我学艺不精,Unity Editor右键脚本 Find References In Scene也能看到,Hierarchy清除查找语法或者按Esc就能恢复
    在这里插入图片描述

还有列表展示资源引用,查了下似乎只有插件Asset Usage Detector for Unity 3D

Unity Editor allows you to find usages of an asset in scene only. You can implement resource search through some third-party scripts like this.

Rider还有个RiderFlow 先附在这以后研究下:

RiderFlow is a plugin for Unity that brings some of JetBrains’ powerful IDE features directly to the Unity Editor. Here they are at a glance:

  • Search Everywhere.
  • Managing the GameObjects Hierarchy view.
  • Finding usages of GameObjects, camera presets, and bookmarks.
  • Refactoring of GameObjects.
  • Smart built-in editor.


    RiderFlow is a user plugin, not an SDK, and does not contain a public API for any external usage.
    来源riderflow

四 总结

暂时就搜查这些内容了吧,后续再有什么需要再补充,基本目的已经达到。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

头歌计算机组成原理实验—运算器设计(4)第4关:16位快速加法器设计

第4关:16位快速加法器设计 实验目的 帮助学生理解成组进位产生函数,成组进位传递函数的概念,熟悉 Logisim 平台子电路的概念,能利用前述实验封装好的4位先行进位子电路以及4位快速加法器子电路构建16位、32位、64位快速加法器&a…

Android 12.0 原生SystemUI下拉通知栏UI背景设置为圆角背景的定制(一)

1.前言 在12.0的系统rom定制化开发中,在原生系统SystemUI下拉状态栏的通知栏的背景是白色四角的背景,由于在产品设计中,需要把四角背景默认改成圆角背景,所以就需要分析系统原生下拉通知栏的每条通知的默认背景,然后通过systemui的通知流程,设置默认下拉状态栏UI中的通知…

java+nodejs+vue+python+php家教信息管理系统

任何网友都可以自由地查看、搜索、发布该家教信息平台的信息。该平台是区别于传统的家教中介的服务平台。学生可以免费查看网站上的家教信息,挑选适合自己的家教;教师可以免费查看网站上的需求信息,挑选适合自己的学生;学生可以发…

chatgpt赋能Python-python3安装scrapy

Python3安装Scrapy:提高爬虫效率的关键 如果你正在从事数据科学、数据分析工作,或者需要收集并存储某些特定网站的数据,Scrapy是一个值得尝试的Python3框架。Scrapy是一个开源的Web爬虫框架,可以方便、高效、快速地对数据进行收集…

Rust每日一练(Leetday0005) 罗马数字、公共前缀、三数之和

目录 13. 罗马数字转整数 Roman to Integer 🌟 14. 最长公共前缀 Longest Common Prefix 🌟 15. 三数之和 3Sum 🌟🌟 🌟 每日一练刷题专栏 🌟 Rust每日一练 专栏 Golang每日一练 专栏 Python每日…

Qt/QML编程学习之心得:颜色编码方案RGB+YUV+HSI等(八)

说到Human-Machine Interaction 人机交互界面或者说GUI,那么第一反映可能是窗口、各种控件、各种图片,但是所有这些都还需要一个更底层的内容,那就颜色。不管是窗口还是控件,颜色是其最基本的一个属性。 牛顿三棱镜色散实验,发现光的色彩奥妙:当一束白光通过三棱镜时,它…

chatgpt赋能Python-python3控制摄像头拍照

Python3 控制摄像头拍照 介绍 Python3 是一种高级编程语言,被广泛应用于机器学习、人工智能、Web 开发等领域。控制摄像头拍照是 Python3 中非常常见的需求,例如监控、照片拍摄等等。 如何控制摄像头拍照 在 Python3 中,我们可以利用 Ope…

【高效科研工具(一):chatGPT(各种高效网站大集合)】

高效科研工具(一):chatGPT(各种高效网站大集合) 目录 0、前言 1、chatGPT介绍 2、chatGPT官网 3、各种衍生网站(🤩🤩🤩🤩重头戏!!&a…

插入排序、选择排序、冒泡排序小结(45)

小朋友们好,大朋友们好! 我是猫妹,一名爱上Python编程的小学生。 和猫妹学Python,一起趣味学编程。 今日主题 插入排序、选择排序、冒泡排序有什么区别? 原理不同 插入排序是将未排序的元素逐个插入到已排序序列中…

王道考研——计算机网络1.1计算机网络概述

文章目录 0.认识计算机网络1. 计算机网络体系结构1.1概念及功能计算机网络的概念计算机网络的功能计算机网络的发展总结 1.2组成与分类计算机网络的组成计算机网络的分类总结 1.3标准化工作及相关组织(408大纲已删)标准化工作标准化工作的相关组织总结 1…

总结856

学习目标: 月目标:5月(张宇强化前10讲,背诵15篇短文,熟词僻义300词基础词) 周目标:张宇强化前3讲并完成相应的习题并记录,英语背3篇文章并回诵 每日必复习(5分钟&#…

chatgpt赋能Python-python3怎么降到2

Python3如何降级到Python2 Python3是Python语言的最新版本,但是一些旧的项目或者库可能只支持Python2,这就需要将Python3降级到Python2。本文将介绍如何在MacOS和Windows系统上进行Python3到Python2的降级,并提供详细的步骤和注意事项。 Ma…

chatgpt赋能Python-python3自定义排序

Python3自定义排序 在Python3中,可以使用内置的sorted()函数或list.sort()方法对列表进行排序。这些方法通常基于默认排序规则,即按照元素的字符串表示进行排序。不过,有时候我们需要按照自己定义的规则对列表进行排序。这就需要使用自定义排…

Windows免安装MySQL8.0

Windows免安装MySQL8.0 Windows 上的 MySQL 分为安装版和免安装版。 本文介绍如何在 Windows 上配置免安装版的 MySQL 8.0。 1、下载并安装 VC_redist.x64.exe Windows 版的 MySQL 8.0 依赖 Microsoft Visual C 2019 Redistributable Package(VC_redist.x64.exe…

【c++ • STL】初步认识什么是 STL 标准库

🚀 个人简介:CSDN「博客新星」TOP 10 , C/C 领域新星创作者💟 作 者:锡兰_CC ❣️📝 专 栏:从零开始的 c 之旅🌈 若有帮助,还请关注➕点赞➕收藏,不行的…

html网页制作(一)基础

之前做web的时候发现,有些页面的源代码,我都不能,完全看懂,所以就像学习一下 一.html是什么? HTML的全称为超文本标记语言,是一种标记语言。它包括一系列标签.通过这些标签可以将网络上的文档格…

深入浅出JWT

什么是JWT? JWT的本质就是一个字符串,它是将用户信息保存到一个Json字符串中,然后进行编码后得到一个JWT token,并且这个JWT token带有签名信息,接收后可以校验是否被篡改,所以可以用于在各方之间安全地将信息作为Js…

chatgpt赋能Python-python3__2

Python3 中的位运算符 在 Python3 中&#xff0c;位运算符是用来执行二进制位操作的操作符。这些操作符允许我们对二进制位进行一些有用的操作&#xff0c;如位移、按位与、按位或、按位取反等。 在本文中&#xff0c;我们将介绍 Python3 中的位运算符 <<&#xff0c;也…

查看电脑的BIOS版本的五种方法

查看主板BIOS版本的五种方法 概述1. 在 BIOS 中查看2. 使用 DirectX 诊断工具3. 使用 CPU-Z 中查看4. 在 CMD 中查看&#xff08;一&#xff09;5. 在 CMD 中查看 &#xff08;二&#xff09;结束语 概述 BIOS是 Basic Input Output System 的缩略词&#xff0c;直译就是 **基…

Packet Tracer – VLAN 实施故障排除场景 2

Packet Tracer – VLAN 实施故障排除场景 2 拓扑图 地址分配表 设备 接口 IPv4 地址 子网掩码 默认网关 S1 VLAN 56 192.168.56.11 255.255.255.0 不适用 S2 VLAN 56 192.168.56.12 255.255.255.0 不适用 S3 VLAN 56 192.168.56.13 255.255.255.0 不适用 P…