《UE5_C++多人TPS完整教程》学习笔记13 ——《P14 创建插件(Creating A Plugin)》


本文为B站系列教学视频 《UE5_C++多人TPS完整教程》 —— 《P14 创建插件(Creating A Plugin)》 的学习笔记,该系列教学视频为 Udemy 课程 《Unreal Engine 5 C++ Multiplayer Shooter》 的中文字幕翻译版,UP主(也是译者)为 游戏引擎能吃么。


文章目录

  • P14 创建插件
  • 14.1 虚幻引擎中的插件
  • 14.2 创建一个新插件
  • 14.3 添加插件和模块依赖项
  • 14.4 Summary


P14 创建插件

本节课将介绍虚幻引擎中 “插件” 的基本概念;然后尝试创建一个新插件,用以处理多人在线会话相关的功能;最后我们将对插件进行配置,这样新创建的插件就可以正常使用在线子系统,并且还可以对在线会话进行管理。
《UE5_C++多人TPS完整教程》学习笔记13 ——《P14 创建插件(Creating A Plugin)》_第1张图片


14.1 虚幻引擎中的插件

  1. 虚幻引擎的插件为特定用途(Specific purpose)设计的代码和数据集合(Collections),开发人员可以在每个项目的基础上(Per-project basis)轻松地启用或禁用(Enable or disable)它们。这些插件的功能可以在游戏中使用,也可以在编辑器中使用。插件的启用方法是在插件编辑器窗口中对 “Enabled” 复选框进行勾选。
    《UE5_C++多人TPS完整教程》学习笔记13 ——《P14 创建插件(Creating A Plugin)》_第2张图片

  2. 一个插件通常有一个或多个模块(Modules)组成。引擎本身是依靠多个模块实现的,每个模块拥有独特的 C++ 代码单元,包含了一个封装(Encapsulated)多个功能集合的 “构建文件”(Build file),它们的文件名通常以 “.Build.cs” 为后缀。

  3. 模块本身只是代码,不包含网格体(Meshes)和纹理(Textures)等资产(Assets)。这有助于对单个任务进行封装,模块只对它本身要实现的功能负责,并使得整个引擎得以很好地组织起来。而我们的项目本身也是一个模块。
    《UE5_C++多人TPS完整教程》学习笔记13 ——《P14 创建插件(Creating A Plugin)》_第3张图片

  4. 打开 VS,在项目目录下点击 “MenuSystem.uproject”,可以在代码的 “Plugins” 部分中看到我们前几节课启用的插件 “OnlineSubsystemSteam”。
    《UE5_C++多人TPS完整教程》学习笔记13 ——《P14 创建插件(Creating A Plugin)》_第4张图片

  5. 一个插件可以依赖(Dependencies)其他插件,(这些信息)被添加到了 “.uplugin“ 文件中。
    《UE5_C++多人TPS完整教程》学习笔记13 ——《P14 创建插件(Creating A Plugin)》_第5张图片

  6. 虚幻引擎支持相互依赖的插件和模块,但要注意的限制(Restriction)是插件和模块也是分层级的(Hierarchical),即低层级的插件和模块只能依赖相同层级或更高层级的插件和模块,这意味着游戏项目模块(低层级)可以依赖引擎模块(高层级),反之不然,因为引擎模块必须在没有任何游戏项目的基础上就能进行构建。因此,我们可以看到下图中引擎模块可以依赖同层级的其他引擎模块,引擎插件可以依赖同层级的其他引擎插件。
    《UE5_C++多人TPS完整教程》学习笔记13 ——《P14 创建插件(Creating A Plugin)》_第6张图片

14.2 创建一个新插件

  1. 打开虚幻引擎插件编辑器,在编辑器窗口左上方点击绿色按钮 “+添加”,弹出 “新插件” 窗口。可以看到 “新插件” 窗口中有很多模板(Template),包括空白(Blank)、纯内容(Content Only)、编辑器独立窗口(Editor standalone window)、蓝图库(Blueprint library)、第三方库(Third party library)等。这里插件模板选择 “空白”,插件命名为 “MultiplayerSessions”,可以填写相关描述信息,点击窗口右下角按钮 “创建插件”。
    《UE5_C++多人TPS完整教程》学习笔记13 ——《P14 创建插件(Creating A Plugin)》_第7张图片

  2. 在内容浏览器中设置“显示插件内容”,可以看到目录 “Plugins/MutiplayerSession” 生成。 VS 中出现弹窗,选择 “全部重新加载”。

    《UE5_C++多人TPS完整教程》学习笔记13 ——《P14 创建插件(Creating A Plugin)》_第8张图片

  3. 在 VS 解决方案资源管理器中可以展开目录 “MenuSystem\Plugin\MutiplayerSessions” ,可以发现 MutiplayerSessions 插件拥有自己的 Resouce 和 Source 文件夹,以及资产文件 “MutiplayerSessions.uplugin” 和构建文件 “MutiplayerSessions.Build.cs”,这意味着该插件作为独立模块存在,它也可以经由编译生成相关的二进制文件目录 “Binaries” 和与之关联的临时文件目录 “Intermdiate” 。
    《UE5_C++多人TPS完整教程》学习笔记13 ——《P14 创建插件(Creating A Plugin)》_第9张图片

14.3 添加插件和模块依赖项

  1. 在 VS 中解决方案资源管理器中打开 “MutiplayerSessions.uplugin”,添加依赖插件在线子系统和 Steam 在线子系统。
    《UE5_C++多人TPS完整教程》学习笔记13 ——《P14 创建插件(Creating A Plugin)》_第10张图片

  2. 在构建文件 “MutiplayerSessions.Build.cs”可以选择将模块添加到公共依赖模块或私有依赖模块中。区别是添加到私有依赖模块意味着添加的模块仅在私有源文件中可用,添加到公共依赖模块就可以方便我们从公共源文件中访问。这里我们添加在线子系统和 Steam 在线子系统 模块到公共依赖模块中,然后进行编译生成解决方案。
    《UE5_C++多人TPS完整教程》学习笔记13 ——《P14 创建插件(Creating A Plugin)》_第11张图片

  3. 可以看到经过编译后,插件目录下生成了“Binaries” 和 “Intermdiate” 两个文件夹。
    《UE5_C++多人TPS完整教程》学习笔记13 ——《P14 创建插件(Creating A Plugin)》_第12张图片


14.4 Summary

本节课介绍了虚幻引擎中 “插件” 的基本概念,并创建了一个处理多人在线会话相关功能的新插件 “MutiplayerSessions”,然后为插件添加了在线子系统和 Steam 在线子系统的插件和模块依赖项。
《UE5_C++多人TPS完整教程》学习笔记13 ——《P14 创建插件(Creating A Plugin)》_第13张图片


你可能感兴趣的:(#,ue5,c++,游戏)