本文主要是介绍UE4->Plugin 认识UE4插件 1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原创文章,转载请注明出处。
本文带大家认识UE4的插件, Plugin
UE4 Engine中插件代码占很大一部分,可参考下图,里面的Editor, Developer, Runtime, Slate举例都是大家比较熟悉的几个
1>看下图的中Json,其实就是我们的.plugin文件
{"FileVersion": 3, //文件版本"Version": 1, //Plugin版本"VersionName": "1.0", //版本名称"FriendlyName": "Taskp", //插件名称"Description": "tianhuajian created", //插件描述"Category": "Other", //插件所属组"CreatedBy": "tianhuajian", //插件创建者"CreatedByURL": "", //创建者网站"DocsURL": "", //插件的文档URL"MarketplaceURL": "", //虚幻商城URL"SupportURL": "", //技术支持URL"CanContainContent": true, //是否可包含Content"IsBetaVersion": false, //是否是测试版"IsExperimentalVersion": false, //是否是实验性的版本, UE4插件中会有显示"Installed": false, //是否安装的"Modules": [ //可包含多个模块{"Name": "TestPlg", //重要:模块名称"Type": "Runtime", //重要:模块的类型->下面再介绍"LoadingPhase": "Default" //重要:加载阶段->下面再介绍}]
}
2>Modules->Type(类型)介绍
代码中搜索 EHostType, 转到定义, ModuleDescriptor.h,对应上面Type 的枚举其实就在这个文件中。
/*** Environment that can load a module.*/
namespace EHostType
{enum Type{// Loads on all targets, except programs.Runtime, //Runtime模式下会去加载// Loads on all targets, except programs and the editor running commandlets.RuntimeNoCommandlet, //Runtime模式, 不包含命令// Loads on all targets, including supported programs.RuntimeAndProgram, //Runtime模式, 小程序// Loads only in cooked games.CookedOnly, //和Cook资源相关// Only loads in uncooked games.UncookedOnly, //只在没有cook过的程序中加载// Deprecated due to ambiguities. Only loads in editor and program targets, but loads in any editor mode (eg. -game, -server).// Use UncookedOnly for the same behavior (eg. for editor blueprint nodes needed in uncooked games), or DeveloperTool for modules// that can also be loaded in cooked games but should not be shipped (eg. debugging utilities).Developer, //开发模式下加载,兼容老版本留下来的枚举// Loads on any targets where bBuildDeveloperTools is enabled.DeveloperTool, //开发模式下加载 新的枚举// Loads only when the editor is starting up.Editor, //Editor模块// Loads only when the editor is starting up, but not in commandlet mode.EditorNoCommandlet, //Editor非命令行加载// Loads only on editor and program targetsEditorAndProgram, //Editor小程序// Only loads on program targets.Program, //独立程序// Loads on all targets except dedicated clients.ServerOnly, //服务端模块// Loads on all targets except dedicated servers.ClientOnly, //客户端模块// Loads in editor and client but not in commandlets.ClientOnlyNoCommandlet, //客户端没有命令行的模块//~ NOTE: If you add a new value, make sure to update the ToString() method below!Max //如果新加枚举的话 别忘了把这个Namespace中的tostring方法完善一下};
3>Modules->LoadingPhase(加载阶段)介绍
代码中搜索 ELoadingPhase, 转到定义, ModuleDescriptor.h,对应上面LoadingPhase 的枚举其实就在这个文件中。
namespace ELoadingPhase
{enum Type{/** As soon as possible - in other words, uplugin files are loadable from a pak file (as well as right after PlatformFile is set up in case pak files aren't used) Used for plugins needed to read files (compression formats, etc) */EarliestPossible,/** Loaded before the engine is fully initialized, immediately after the config system has been initialized. Necessary only for very low-level hooks */PostConfigInit,/** The first screen to be rendered after system splash screen */PostSplashScreen,/** Loaded before coreUObject for setting up manual loading screens, used for our chunk patching system */PreEarlyLoadingScreen,/** Loaded before the engine is fully initialized for modules that need to hook into the loading screen before it triggers */PreLoadingScreen,/** Right before the default phase */PreDefault,/** Loaded at the default loading point during startup (during engine init, after game modules are loaded.) */Default,/** Right after the default phase */PostDefault,/** After the engine has been initialized */PostEngineInit,/** Do not automatically load this module */None,// NOTE: If you add a new value, make sure to update the ToString() method below!Max};
这篇关于UE4->Plugin 认识UE4插件 1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!