ToB企服应用市场:ToB评测及商务社交产业平台

标题: UE5.3 虚幻引擎 Windows插件开发打包(带源码插件打包、无源码插件打包) [打印本页]

作者: 祗疼妳一个    时间: 2025-1-4 10:25
标题: UE5.3 虚幻引擎 Windows插件开发打包(带源码插件打包、无源码插件打包)
0 引言

   随着项目体量的增大,全部代码功能都放一起很难管理。以是有什么办法可以将大模块划分成一个个小模块吗。固然有,由于虚幻引擎本身就遇到过这个问题,他的办理办法就是使用插件的形式开发。
    例如,一个团队开发了文件I/O模块插件,另一个团队开发了网络模块,那么大家各个模块可以同一的组合,那样虚幻引擎的功能就可以快速状态。
  1 快速入门

1.1 新建插件的前提

   创建插件之前,必须已经有一个UE C++的工程
  1.2 创建插件步调

         


            此时插件的功能就制作完成,只必要打包插件即可。
1.3 打包插件

                 2 无源代码的插件制作

   为什么可以不用源码:插件编译后天生了动态库文件,若是删除插件源码的话,就不能再举行编译。以是就不必要让插件编译,bUsePrecompiled = true; 就可以不让插件编译。(就和使用动态库一样,只必要保存头文件,另有动态库文件就可以让别人使用)
    注意:无源码插件是在已经打包好插件的基础上,举行一些修改。然后再将步伐给别人使用。
              3 插件详细介绍

3.1 插件的使用方法

   插件有两种使用方法:
        3.1 UE 预置插件模版

   在UE中新建插件时,有很多 UE 预置的插件模版,如下图所示:

  3.1.1 空白

   
    该模板创建出来,只包罗下面这些最基本的文件。

  3.1.2 纯内容

   
  3.1.3 编辑器独立窗口

   
  3.1.4 编辑器工具栏按钮

   
   
  3.1.5 编辑器模式

   
   
  3.1.6 第三方库

   
   
  3.1.7 蓝图库

   
   
  3.2 插件中文件的寄义

   
  
  1. {
  2.         "FileVersion": 3,
  3.         "Version": 1,
  4.         "VersionName": "1.0",
  5.         "FriendlyName": "HHW_PluginTest",
  6.         "Description": "TestPlugin",
  7.         "Category": "Other",                                // 类目名即在插件浏览器中所属的类目
  8.         "CreatedBy": "hhw",
  9.         "CreatedByURL": "",
  10.         "DocsURL": "",
  11.         "MarketplaceURL": "",
  12.         "SupportURL": "",
  13.         "CanContainContent": true,
  14.         "IsBetaVersion": false,
  15.         "IsExperimentalVersion": false,
  16.         "Installed": false,                                        // 默认启用或禁用状态,在插件浏览器中可以控制加载卸载插件模块
  17.         "Modules": [                                                // 描述模块名、运行类型、加载时机、支持平台等信息
  18.                 {
  19.                         "Name": "HHW_PluginTest",
  20.                         "Type": "Runtime",                        // 有多种:Runtime,RuntimeNoCommandlet,Developer,Editor,EditorNoCommandlet,Program
  21.                         "LoadingPhase": "Default",
  22.                         "WhitelistPlatforms": [                // 支持的平台
  23.                                 "Win32",
  24.                                 "Win64"
  25.                         ]
  26.                 }
  27.         ]
  28. }
复制代码
  1. // Copyright Epic Games, Inc. All Rights Reserved.
  2. using UnrealBuildTool;
  3. public class HHW_PluginTest : ModuleRules
  4. {
  5.         public HHW_PluginTest(ReadOnlyTargetRules Target) : base(Target)
  6.         {
  7.                 PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
  8.                 // 将bUsePrecompiled设置为true后,就不会让插件编译
  9.                 //bUsePrecompiled = true;
  10.                 //PrecompileForTargets = PrecompileTargetsType.None;
  11.                 PublicIncludePaths.AddRange(
  12.                         new string[] {
  13.                                 // ... add public include paths required here ...
  14.                         }
  15.                         );
  16.                                
  17.                 PrivateIncludePaths.AddRange(
  18.                         new string[] {
  19.                                 // ... add other private include paths required here ...
  20.                         }
  21.                         );
  22.                        
  23.                 PublicDependencyModuleNames.AddRange(
  24.                         new string[]
  25.                         {
  26.                                 "Core",
  27.                                 // ... add other public dependencies that you statically link with here ...
  28.                         }
  29.                         );
  30.                        
  31.                 PrivateDependencyModuleNames.AddRange(
  32.                         new string[]
  33.                         {
  34.                                 "CoreUObject",
  35.                                 "Engine",
  36.                                 "Slate",
  37.                                 "SlateCore",
  38.                                 // ... add private dependencies that you statically link with here ...       
  39.                         }
  40.                         );
  41.                
  42.                 DynamicallyLoadedModuleNames.AddRange(
  43.                         new string[]
  44.                         {
  45.                                 // ... add any modules that your module loads dynamically here ...
  46.                         }
  47.                         );
  48.         }
  49. }
复制代码
4 插件开发常见问题

   
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4