您想找什么?
Engine & platform

使用 Visual Studio 2019 加速 Unity 中编程工作流程的 10 种方法

THOMAS KROGH-JACOBSEN / UNITY TECHNOLOGIESProduct Marketing Core Tech
Jul 14, 2020|11 Min
使用 Visual Studio 2019 加速 Unity 中编程工作流程的 10 种方法
为方便起见,此网页已进行机器翻译。我们无法保证翻译内容的准确性或可靠性。如果您对翻译内容的准确性有疑问,请参阅此网页的官方英文版本。

Visual Studio 2019 提供了世界一流的调试功能以及大量新工具和自定义选项,让你可以按照自己的意愿设置编码环境。它还为在 Unity 中使用 C# 提供了一系列强大的功能,可以帮助你比以前更快地编写和重构代码。在这篇博文中,我们将介绍其中一些功能的 10 个小窍门,它们也可能会加快你的工作流程。

我们的 Unity 布道者Arturo Nereu和微软 Visual Studio Tools forUnity项目经理Abdullah Hamed 最近举办了一场 Unite Now 会议,分享了在使用Unity 进行开发时如何充分利用 Visual Studio 2019技巧和窍门。

本帖简要介绍了其中的一些技巧。如果您想深入了解,我们还添加了直接指向讲座中这些部分以及其他相关内容的链接。

提示 1:将调试器连接到 Unity 并播放

使用 Console.Log 是一种简单快捷的方法,可帮助您利用 Unity 的控制台视图调试项目。不过,Visual Studio 提供了一种更有效的方法,当项目变得越来越复杂时,这种方法就变得越来越有价值。在 Visual Studio 中,只需单击Visual Studio 菜单中的Attach to Unity按钮即可。这将在两个应用程序之间建立连接,这样您就可以在 Unity 的 "播放 "模式下插入断点并逐步浏览代码。您还可以单击 "Attach to Unity and play(连接到 Unity 并播放)"在不离开集成开发环境的情况下开始执行。这样做的好处是可以在运行时检查代码流的状态和属性值等。虽然这看起来微不足道,但在游戏过程中随时暂停执行,并逐步检查游戏的具体状态和该帧中的属性值,这在调试时是一个非常强大的工具。

在使用断点时,另一个方便的选项是可以插入自己的条件和相关操作,例如在调试流程中应用之前必须评估为 true 的条件表达式。

提示 2:获取性能见解和最佳实践建议

Visual Studio 2019 引入了 Unity 分析器。分析器的工作原理是检测代码模式,并用更推荐的模式来替换它。Unity Analyzers 集合了特定于 Unity 的代码诊断和代码修复功能,这些功能都是开源的,可在GitHub 上获取。分析器可以让您更好地了解特定于 Unity 的诊断,或者只是通过移除不适用于 Unity 项目的一般 C# 诊断来帮助您的项目。例如,您需要检查 GameObject 是否具有特定标记,以便对其应用某种行为,这可以是一个简单的条件语句。

if(collision.gameObject.tag == "enemy")
{
// 逻辑应用于敌方 GO
}

分析器可以分析你的代码,检测出模式,并提供使用更优化的方法。在这种情况下,分析器会建议使用效率更高的CompareTag方法。

if(collision.gameObject.CompareTag("enemy"))
{
// 逻辑应用于敌方 GO
}

上面的例子只是一个微小的优化调整,对附加到单个 GameObject 的单个脚本没有重大影响,但对于附加了脚本的 1000 个 GameObject 的大型项目来说,情况可能会有所不同。分析器可以通过优化代码语法来减少不必要的开销,从而帮助您轻松识别并提高性能。

如果您有兴趣了解更多信息,请访问这篇 博文或直接跳转到 "Unite Now "讲座的这一部分。

提示 3:将任务清单用作后续核对表

在创建脚本时,一个常见的难题是需要在稍后的时间点重新查看代码。这可能是执行代码片段的结果,这些代码片段最终需要重构,以获得更好的性能,但却能满足当前的需求,因为您正在测试游戏机制。Visual Studio 有一个名为任务列表(Task List)的便捷功能,可以跟踪使用 TODO 和 HACK 等标记甚至自定义标记的代码注释。您还可以管理快捷方式,将您直接带入代码中的预定义位置。要为以后创建任务,只需在代码中添加标记:

// TODO:新碰撞器准备就绪后,更改碰撞检测

您可以从菜单中的 "视图"下进入 "任务列表 "窗口,概览您标记的所有任务,并一键链接到代码的特定部分。

利用 Visual Studio 的任务列表
利用 Visual Studio 的任务列表

随着项目中行动项目列表的增加,你甚至可以在任务列表中配置自己的自定义标记,并为重构流程有效分配优先级和组织工作。要自定义任务列表标记:转到工具>选项

点击此处查看 "立即团结 "会议中的完整示例。

提示 4:使用片段加快工作流程

代码片段是可重复使用的小代码块,可通过右键菜单(上下文菜单)命令或热键组合插入代码文件。它们通常包含常用的代码块,如 try-finally 或 if-else 块,但也可以用来插入整个类或方法。简而言之,它们为您提供了一种便捷的方法,通过为您创建模板代码来节省大量时间。

要在代码中加入命名空间或区域等片段,请按 CTRL + K + S:

你可以在微软的文档(Visual StudioVisual Studio for Mac)中找到创建自己的代码片段的步骤说明。

提示 5:只需点击几下即可重命名所有变量

在重构代码时,一个常见的工作流程是将变量重命名为更具描述性和更准确的名称。更改一个地方显然意味着你还必须修正对该变量的所有引用。不过,Visual Studio 提供了一种简便的快捷方式,只需一次操作即可完成。只需选中要重命名的变量名称并单击右键(或使用键盘快捷键 CTRL + R),然后重命名该变量。选择预览更改,以便在应用之前查看更改的影响。

您可以使用相同的提示来更改脚本的类,但请记住,您必须相应地重命名 C# 文件,以避免编译错误。了解更多有关 "现在就团结 "班级更名流程的信息

提示 6:使用快捷键注释代码

在重构或调试代码时,注释或取消注释代码块是另一个常见的工作流程。如果一行一行地写,可能会很费时间。不过,Visual Studio 允许您使用一个简单的快捷命令注释整个代码块:Ctrl+K+C 和 Ctrl+K+U 可再次取消注释。如果您使用的是 Mac,只需使用 CMD+K+C 删除注释,然后再使用 CMD+K+U 删除注释即可。

在测试工作流程中,快速注释整个区块是抑制特定游戏逻辑的有效方法。

提示 7:点击几下即可设置与 GitHub 的集成

虽然Unity Collaborate可以通过用户友好的可视化界面直接从 Unity 轻松保存、共享和同步项目,但有些团队和开发人员更喜欢使用 GitHub 等源代码控制解决方案。有了Github for Unity插件,使用GitHub进行源代码控制变得更容易了。该扩展完全开源,让你无需离开 Unity 就能查看项目历史、在分支中进行实验、根据修改内容创建提交,以及将代码推送到 GitHub。GitHub 身份验证已嵌入 Unity,包括 2FA,只需点击一下按钮,就能快速初始化游戏仓库,而无需使用命令行指令。它允许你创建一个 Unity 专用的 .gitignore 文件,这样你就不必手动设置了。Visual Studio 2019 还提供了一个新界面,可以更方便地在集成开发环境中直接使用 GitHub。

在 Visual Studio 中激活新界面:转到工具 > 选项 > 环境 > 预览功能 > 新 Git 用户体验。

您还可以观看 "立即团结 "课程中的视频说明,了解更深入的入门指导。

小窍门 8:通过实时共享进行远程实时协作

实时共享功能使您只需通过一个链接就能直接与队友共享 Visual Studio 实例,让他们可以实时编辑您的代码并协作完成项目。你不必先克隆一个 repo 或设置环境,就可以进行共享。你们都只需安装 Visual Studio,然后点击按钮即可轻松创建实时共享会话。

通过 LIiveShare,您可以对代码进行实时协作
通过 LIiveShare,您可以对代码进行实时协作

要开始使用,只需选择 "实时共享",即可生成一个链接,指向您想与任何已安装 Visual Studio 或 Visual Studio Code 的人共享的代码部分。将在您与协作者之间创建一个共享会话,让他们可以看到您的代码,而无需安装除该编辑器以外的任何内容。它几乎可以立即发挥作用。

您可以从我们的Unite Session 了解有关 Live Share 的更多信息,也可以访问Visual Studio 产品页面或直接跳转到快速入门指南

提示 9:为 Unity 消息轻松创建模板代码

记住所有 MonoBehaviour 方法的签名非常麻烦,虽然 Unity 文档会帮你解决这个问题,但 Visual Studio 提供了一个很好的功能,让你可以直接在集成开发环境中查找。只需点击 CTRL + Shift + M,搜索想要实现的功能,然后过滤搜索结果,找到方法。选择复选框并单击 "确定",即可在代码中直接插入该方法的模板代码,供您使用。

小窍门 10:键盘快捷键

上述几个技巧都有便捷的快捷方式,说到底,掌握这些快捷方式可能是最省时省力的方法。最后,让我们总结一下这些技巧的键盘快捷键,以及其他一些额外的技巧。

Windows Mac搜索整个项目中的任何内容。使用 CTRL+T CMD + 。执行 Unity 消息 CTRL + Shift + M CMD + Shift + M 注释代码块 CTRL + K / CTRL + C CMD + / 取消注释代码块 CTRL + K / CTRL + U CMD + / 从剪贴板历史中复制 CTRL + Shift + V 查看任务列表 CTRL + T 没有默认的按键绑定,但可以绑定。插入周边片段,如命名空间 CTRL + K + S:没有默认的按键绑定,但可以进行绑定。重新命名变量,同时更新所有引用 CTRL + R CMD +R 编译代码 CTRL+SHIFT+B CMD + Shift + B

分享您的建议?

Visual Studio 2019 功能齐全,而且有许多自定义选项,可以根据您的具体工作流程提高您使用 Unity 的工作效率。这里就不一一介绍了。我们希望我们在这里分享的一些技巧能激发您的兴趣,并希望您发现这种形式很有用。如果您有我们没有介绍到的技巧,请告诉我们,并随时在评论中与社区分享。如果您想了解更多有关如何改进 Unity 工作流程的技巧和窍门,或者您希望在今后的博文中涉及哪些特别的主题,我们也很乐意倾听您的意见。

您对如何改进 Visual Studio 有反馈意见吗?

我们一直在努力改进工作流程,我们的团队也在与微软密切合作,为您提供最佳的 IDE 体验。因此,如果您有任何想法或反馈,我们非常希望听到您的意见。欢迎通过@jmillerdev 与微软 Visual Studio Tools for Unity 高级项目经理 John Miller 联系,或在我们的脚本论坛与我们分享您的反馈意见。