快速入门:Visual Studio Tools for Unreal Engine
在本文中,下载 Unreal Engine (UE) 游戏示例并使用 Visual Studio Tools for Unreal Engine:
先决条件
必须安装以下组件:
- Visual Studio 17.7 或更高版本
- Unreal Engine 版本 5 或更高版本,因为本快速入门中使用的示例需要 UE5 或更高版本。
- Visual Studio Tools for Unreal Engine。 请参阅安装 Visual Studio Tools for Unreal Engine 的工具,了解安装说明。
在 Visual Studio 中下载和编译 Lyra 游戏示例
Lyra 是一个示例 3D 游戏项目,用于了解 Unreal Engine 中的框架。 请参阅 Lyra 示例游戏的下载 Lyra 初学者游戏部分,了解下载说明。
配置 Lyra 游戏示例以使用 Visual Studio Tools for Unreal Enigine
下载游戏示例后,更新 LyraStarterGame.uproject
以使用 Visual Studio Tools 插件。 也可以从主菜单中“编辑”>“插件”下的 Unreal 编辑器中执行此操作,然后找到 Visual Studio 集成插件并选中其旁边的框。 按照以下步骤运行示例:
在文本编辑器中打开
LyraStarterGame.uproject
文件。 它位于安装游戏示例的目录。将以下代码添加到
Plugins
部分的末尾:,{ "Name": "VisualStudioTools", "Enabled": true }
在 Unreal Engine 中打开 Lyra 项目。
在 Unreal Engine 编辑器主菜单中,依次选择“工具”>“刷新 Visual Studio 项目”。 这会为 Visual Studio 创建/刷新解决方案文件。
在 Unreal Engine 编辑器主菜单中,依次选择“工具”>“打开 Visual Studio”。 这会在 Visual Studio 中打开游戏。 如果计算机上有多个版本的 Visual Studio,请确保打开正确的版本:在 Visual Studio 主菜单中,依次选择“帮助”>“关于 Microsoft Visual Studio”。 需要使用 Visual Studio 2022 版本 17.7 或更高版本。 如果正确的版本未打开,请在正确版本的 Visual Studio 中手动打开
LyraStarterGame.sln
。在 Visual Studio 主菜单中,依次选择“生成”>“生成解决方案”以生成项目。
将解决方案配置下拉列表更改为开发编辑器。 这样会启用蓝图 Visual Studio Tools for Unreal Engine:
在 Visual Studio 中查看 UE 蓝图
可以从 Visual Studio 中查看 UE 蓝图,但不能编辑。 这非常有用,因为可以看到 UE 蓝图,而无需在 Unreal 编辑器和 Visual Studio 之间切换。 若要尝试一下,请执行以下步骤:
- 在 Visual Studio 中打开
LyraCharacter.h
。 在解决方案资源管理器的“搜索”窗格中搜索该文件,或进入以下路径查找:Games>LyraStarterGame>Source>LyraGame>AbilitySystem>Abilities>LyraGameplayAbility.h - 在
LyraCharacter.h
中,转到 96 行。 应该会看到以下类:class LYRAGAME_API ALyraCharacter : public AModularCharacter ...
- 有四个蓝图类可以扩展此类。 应该会在紧邻
ALyraCharacter
类定义的上方看到一个链接,上面写着:4 derived Blueprint classes
。 单击该链接以查看可以扩展此类的四个蓝图类: - 若要查看
Character_Default_C
蓝图的属性,请双击它以打开蓝图资产查看器。 可以查看蓝图的各种属性,但无法更改它们:
在 Visual Studio 内查看 UE 日志
可以使用 Visual Studio Tools for Unreal Engine 在 Visual Studio 内查看 UE 日志记录。 这非常有用,因为可以看到 UE 日志,而无需在 Unreal 编辑器和 Visual Studio 之间切换。 若要尝试一下,请执行以下步骤:
在 Visual Studio 中打开
LyraGameplayAbility_RangedWeapon.cpp
。 在解决方案资源管理器的“搜索”窗格中搜索该文件,或进入以下路径查找:Games>LyraStarterGame>Source>LyraGame>Weapons>LyraGameplayAbility_RangedWeapon.cpp在
LyraGameplayAbility_RangedWeapon.cpp
中,转到 477 行。 应能看到函数:void ULyraGameplayAbility_RangedWeapon::OnTargetDataReadyCallback
在函数开头插入以下代码:
UE_LOG(LogLyra, Log, TEXT("shot fired"));
这将创建一个与类别LogLyra
关联的日志条目,该条目在调用此函数时记录shot fired
。依次选择“调试”>“启动调试”,从 Visual Studio 中运行示例游戏。 Unreal 编辑器将随 Lyra 游戏打开。 请等待加载。
在 Visual Studio 中,通过从 Visual Studio 主菜单中依次选择“视图”>“其他窗口”>“Unreal Engine 日志”以打开 UE 日志记录窗口。
在 Unreal 编辑器中,选择工具栏上的“播放”按钮(或
Alt+p
)以启动游戏。在 Lyra 游戏中,使用
w
、a
、s
、d
键让玩家向左进入 消除 门户。 将玩家置于入口门户上以加载游戏。游戏运行后,单击鼠标按钮以开火。 这会在
LogLyra
类别中创建一些日志条目。 现在,LogLyra
将显示在“类别”筛选器中,告诉玩家下一步操作。通过筛选 UE 日志记录窗口中除
LogLyra
类别事件之外的所有类别事件,从而减少日志干扰:选择类别下拉列表。 选择列表顶部(全选)以清除所有日志源。 然后选择 LogLyra。 在 UE 日志记录窗口中,应会看到日志消息:shot fired
:事件将位于日志底部,因此可能需要向下滚动才能查看它们。 还可以选择清除按钮清除日志,然后再次开火以查看日志消息。
如果发现字体颜色难以阅读,可以在“工具”>“选项”>“环境”>“字体和颜色”下调整字体颜色。 更改下拉列表“显示以下对象的设置”:Unreal Engine 日志。 在显示项中:选择日志,并将项前景颜色更改为更易于查看的颜色。
调试时打开 UE 日志记录窗口非常方便,因为不必切换到 Unreal 编辑器就能看到它们。
在 Visual Studio 中查看 UE 宏
长的 UE 宏可能难以读取。 Visual Studio Tools for Unreal Engine 会扩展 UE 宏,以便你可以更轻松地阅读它们。 如果需要,可以复制扩展的宏。 还可以在线搜索或将其与其他宏进行比较。 若要试验这些功能,请按以下步骤操作:
在 Visual Studio 中打开
LyraGameplayAbility_RangedWeapon.cpp
。 在解决方案资源管理器的“搜索”窗格中搜索该文件,或进入以下路径查找:Games>LyraStarterGame>Source>LyraGame>Weapons>LyraGameplayAbility_RangedWeapon.cpp在
LyraGameplayAbility_RangedWeapon.cpp
中,转到 41 行。 应该会看到以下宏:UE_DEFINE_GAMEPLAY_TAG_STATIC(TAG_WeaponFireBlocked, "Ability.Weapon.NoFiring");
将鼠标指针移动到
UE_DEFINE_GAMEPLAY_TAG_STATIC
上以查看宏定义窗口:底部的选项分别用于将宏复制到剪贴板、展开宏内联、可视化宏的扩展,然后联机搜索宏。
选择联机搜索以打开浏览器。 它将打开并填充搜索以查找宏。 在上一示例中,这将打开浏览器以搜索
C++ #define UE_DEFINE_GAMEPLAY_TAG_STATIC(TagName, Tag) static FNativeGameplayTag TagName(UE_PLUGIN_NAME, UE_MODULE_NAME, …
选择可视化扩展以打开宏扩展窗口。 可以扩展作为较大宏部分内容的嵌套宏,一次进行一步操作。 滚动到扩展的末尾,以查看窗口右上角的宏扩展箭头。 选择右箭头可展开下一个嵌套宏。 选择左箭头可折叠已展开的上一个嵌套宏:
本快速入门介绍了 Visual Studio Tools for Unreal Engine 如何让你更轻松地理解 UE 宏、查看 UE 日志记录和查看 UE 蓝图。 愿你的 UE 开发工作更加高效和愉快!
后续步骤
请参阅 Visual Studio Tools for Unreal Engine,了解有关 Visual Studio Tools for Unreal Engine 功能的概述。