《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 虚幻引擎中的插件

  1. 虚幻引擎的插件为特定用途(Specific purpose)设计的代码和数据集合(Collections),开发人员可以在每个项目的基础上(Per-project basis)轻松地启用或禁用(Enable or disable)它们。这些插件的功能可以在游戏中使用,也可以在编辑器中使用。插件的启用方法是在插件编辑器窗口中对 “Enabled” 复选框进行勾选。
    在这里插入图片描述

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

  3. 模块本身只是代码,不包含网格体(Meshes)和纹理(Textures)等资产(Assets)。这有助于对单个任务进行封装,模块只对它本身要实现的功能负责,并使得整个引擎得以很好地组织起来。而我们的项目本身也是一个模块。
    在这里插入图片描述

  4. 打开 VS,在项目目录下点击 “MenuSystem.uproject”,可以在代码的 “Plugins” 部分中看到我们前几节课启用的插件 “OnlineSubsystemSteam”。
    在这里插入图片描述

  5. 一个插件可以依赖(Dependencies)其他插件,(这些信息)被添加到了 “.uplugin“ 文件中。
    在这里插入图片描述

  6. 虚幻引擎支持相互依赖的插件和模块,但要注意的限制(Restriction)是插件和模块也是分层级的(Hierarchical),即低层级的插件和模块只能依赖相同层级或更高层级的插件和模块,这意味着游戏项目模块(低层级)可以依赖引擎模块(高层级),反之不然,因为引擎模块必须在没有任何游戏项目的基础上就能进行构建。因此,我们可以看到下图中引擎模块可以依赖同层级的其他引擎模块,引擎插件可以依赖同层级的其他引擎插件。
    在这里插入图片描述

14.2 创建一个新插件

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

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

  3. 在 VS 解决方案资源管理器中可以展开目录 “MenuSystem\Plugin\MutiplayerSessions” ,可以发现 MutiplayerSessions 插件拥有自己的 Resouce 和 Source 文件夹,以及资产文件 “MutiplayerSessions.uplugin” 和构建文件 “MutiplayerSessions.Build.cs”,这意味着该插件作为独立模块存在,它也可以经由编译生成相关的二进制文件目录 “Binaries” 和与之关联的临时文件目录 “Intermdiate” 。
    在这里插入图片描述

14.3 添加插件和模块依赖项

  1. 在 VS 中解决方案资源管理器中打开 “MutiplayerSessions.uplugin”,添加依赖插件在线子系统和 Steam 在线子系统。
    在这里插入图片描述

  2. 在构建文件 “MutiplayerSessions.Build.cs”可以选择将模块添加到公共依赖模块或私有依赖模块中。区别是添加到私有依赖模块意味着添加的模块仅在私有源文件中可用,添加到公共依赖模块就可以方便我们从公共源文件中访问。这里我们添加在线子系统和 Steam 在线子系统 模块到公共依赖模块中,然后进行编译生成解决方案。
    在这里插入图片描述

  3. 可以看到经过编译后,插件目录下生成了“Binaries” 和 “Intermdiate” 两个文件夹。
    在这里插入图片描述


14.4 Summary

本节课介绍了虚幻引擎中 “插件” 的基本概念,并创建了一个处理多人在线会话相关功能的新插件 “MutiplayerSessions”,然后为插件添加了在线子系统和 Steam 在线子系统的插件和模块依赖项。
在这里插入图片描述


  • 51
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值