我觉得我应该好好钻研一下这个“宇宙第一”的各种用法了,好多意想不到的插件甚至是快捷键我都不知道。
VS中的DEBUG
如何使用VS进行Debug是非常重要的,致命的是我至今未能完全掌握,不要总是依靠Log的输出自己猜了。
在UE4中使用VS进行调试
首先要把UE4的源码下载,然后按照官方的指示操作生成VS的工程文件。
~打开文件之后开始build,这里我遇见的一个问题是当我编译成功之后,不知道该怎么运行了。~
Build SolutionConfigutarions
关于UE4开发过程中对项目的编译构成的选择就有些讲究了。默认的就是Development Editor
,这种默认的编译构成方式优化了许多的内容导致对项目进行Debug的时候会有些断点(BreakPoint)不管用或者无法看到数值,超级不方便。
参考资料:
UnrealVS - UBT编译&UE4热更新
- 2021/06/07 前来更新
看到上面自己写的,跟放屁没什么区别。UE4的源码编译参照官方提供的手顺一步一步来就行了。
这里介绍一下一个UE4的插件
对应的版本是4.26
严格来说这一部分应该是放在其它UE4相关的文章中再介绍的,但是使用的话主要还是为VS服务的,想了想还是放到VS的部分了。
使用场景主要是针对每次编译好源码想要反映到项目中的时候就得重启UE4的编辑器,实在太费时间,使用这个UnrealVS的插件,可以提供UBT的编译和UE4的热更新(hot reload),这样就不用一次次的重启UE4的Editor就能看到C++代码的更新内容了。
下面介绍如何开启和使用这个插件。
UE4这边
首先需要先安装这个插件,去引擎的源文件这个路径下找到Engine\Extras\UnrealVS\VS2019\UnrealVS.vsix
这个文件,点击安装,类似于给VS安装插件。
安装完毕,UE4这边就OK了。
版本根据自己的VS版本选择,我用的是2019专业版,就选择2019文件夹下的。
VS这边
成功安装好了之后打开VS,去Extension->Manage Extension->Installed下就可以看到我们安装好的VS插件:UnrealVS。
然后去View->ToolBars->UnrealVS将菜单栏显示,然后在UnrealVS菜单栏的最右边点击UnrealVS ToolBar Options,点开应该只有一个选项:Add or Remove Buttons,找到Customize。
这个时候我们就打开了UnrealVS的工具栏自定义界面,在Commands页面为UnrealVS的Toolbar添加新的Command。点击Add Command->Extensions->Build Startup Project。点击OK完成设置。
就这样在我们对源码进行编辑的时候想要查看工程的修改就直接点击上面的Build Startup Project等编译和HotReload完成就会反应到UE4的Editor中。
坏消息就是这个插件也不是什么万能的,函数内的修改倒是没什么,要是有序列化的属性(一般是指需要被显示到蓝图)被修改添加删除之类的操作,一般就算用它编译了,也不会反映到UE4Editor上,只有重启才会反映。轻则不反映,重则直接崩溃。
据我自己的体感就是安全的范围是在.cpp文件中对函数内的内容修改。
一些小Tips
平常在SolutionExplorer右键工程可以找到Set as Startup Project,一般情况下第一次打开项目的时候就应该设置。去Tools->Options->UnrealVS->General->Hide Non-Game Startup Projects设置为True的话,那么菜单栏里只会显示Startup Projects。
为上面我们添加的Build Startup Project添加快捷键:Tools->Options->Environment->Keyboard,Keyboard Mapping Scheme就随自己喜欢了,搜索“UnrealVS”就会找到
UnrealVS.BuildStartupProject
这个点击选择添加新的快捷键。在Global
一行添加Ctrl + Shift + Alt + B,然后Assign
,这样添加就完成了。
再就是UnrealVS提供的其他命令的使用方式我不是太明白,就是上面那个链接的其他内容。
Plugins
这里稍微对自己使用VS插件的功能进行一些记录。
VsVim
使用很方便,具体的文本之类的操作属于Vim的操作范畴,会在另外的文章记录
VisualAssist
我觉得是UE4开发必不可少的插件,其它的都可以忍,但是UE4开发的时候VS默认的IntelliSence不能忍,这家伙实在是太慢了。
Visual Assist Option->Enhanced Listboxes -> Source of C/C++ content ->Visual Assist
开启了VisualAssist之后不要忘了把原来的IntelliSense功能关掉。具体操作是
Visual Studio 2010 and newer
Disable IntelliSense for all solutions by adjusting the following two settings in the specified order, i.e. set the interval to zero before disabling the database:IDE Tools menu -> Options -> Text Editor -> C/C++ -> Advanced -> Rescan Solution Interval = 0
IDE Tools menu -> Options -> Text Editor -> C/C++ -> Advanced -> Disable Database = True
More information is available in this post on the Visual C++ Team Blog.
参考文章:
- Disable or pause default IntelliSense for C/C++
快捷键篇
快捷键是使用的关键了,首先是去Extensions -> VAssistX -> Help -> Keyboard Shortcuts
,确认一下已有的快捷键设置。
具体的描述可以参照官网,暂时不过多赘述,我只能说个个都是我用的上的,必须要记住的:
Productivity Power Tools
具体的功能之后有时间整理一下。
一些其它的VS功能记录
关于注释
主要是我想知道使用///
来插入一段完整的段落注释的方法。
VS的Snippets
这个东西是我找类似的功能时候偶然发现的,真的别人不说我都不知道,这么重要的功能:Visual Studio Snippets
UE4也为其提供了许多Snippets方便我们使用,需要做的是
去VS的Tools -> Code Snippets Manager -> Language(Visual C++) -> My Code Snippets -> Add
,这会允许你导入已经准备好的Snippets,由于UE4\Engine\extras\VisualStudioSnippets
路径下已经有很多,可以直接导入。
至于如何制作自己的Snippet,参照那些例子就好了,有兴趣我再作记录。
关于命令行
VS是有命令行窗口的,虽然我基本上没怎么用过(甚至可以在VS里打开PowerShell执行系统命令)。那么要怎么打开命令行窗口呢?
去View->Other Windows->Command Window第一个就能找到,
快捷键是Ctrl + Alt + A
至于上面说的打开Window系统命令行,打开View->Terminal就是,快捷键是 Ctrl+`
关于Diff工具
为什么要用到VS的命令行呢?因为我突然要用到Diff工具,但是手头有没有想起来好用的工具。
VS打开命令行输入Tools.DiffFiles
后面跟上两个文件的绝对路径就可以了。
突然想起来我现在用的文本编辑器Atom也是有Diff工具的,同理SublimeText也肯定是有的。
参考链接
简单的设置VS
Solution Configurations
使用VS的时候,尤其是我在使用UE4的时候可能会切换编译的模式,什么Development Editor, Debug Editor等等,又长又短,长了就看不清自己设置的什么模式。
就想让他变长,我说那个drop-down list。
Tools -> Customize -> Commands -> Toobar -> 下拉找到Standard -> 找到Solution Configuration -> 右边的Modify Selection -> 把Width改成165
就OK了。