前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UE4->Plugin 认识UE4插件 1「建议收藏」

UE4->Plugin 认识UE4插件 1「建议收藏」

作者头像
全栈程序员站长
发布2022-11-09 17:31:12
4910
发布2022-11-09 17:31:12
举报

原创文章,转载请注明出处。

本文带大家认识UE4的插件, Plugin

UE4 Engine中插件代码占很大一部分,可参考下图,里面的Editor, Developer, Runtime, Slate举例都是大家比较熟悉的几个

在这里插入图片描述
在这里插入图片描述

1>看下图的中Json,其实就是我们的.plugin文件

代码语言:javascript
复制
{ 

"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 的枚举其实就在这个文件中。

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
/** * 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 targets
EditorAndProgram,	//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 的枚举其实就在这个文件中。

代码语言:javascript
复制
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
};

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/186041.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月4日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本文带大家认识UE4的插件, Plugin
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档