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

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
	};
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WhiteTian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值