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

UE4->Plugin 认识UE4插件 1「建议收藏」本文带大家认识UE4的插件,PluginUE4Engine中插件代码占很大一部分,可参考下图,里面的Editor,Developer,Runtime,Slate举例都是大家比较熟悉的几个1>看下图的中Json,其实就是我们的.plugin文件{ “FileVersion”:3, //文件版本 “Version”:1, //Plugin版本 “VersionName”:”1.0″, //版本名称 “FriendlyName”:”Taskp”, //插件名称 “Des

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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

本文带大家认识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
	};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 新东方俞敏洪

    新东方俞敏洪新东方俞敏洪作者:郑志颖http://www.caigou.com.cn/news/20170405133.shtml俞敏洪互联网时代的教育技术一个人在具体环境中接受教育,受什么影响?我看受四个因素的影响:时间因素、空间因素、师资因素和工具因素。传…

    2025年11月9日
    5
  • nfc怎么复制门禁卡,相关教程在这里

    nfc怎么复制门禁卡,相关教程在这里  在生活中小区、学校都有门禁的,为了保证安全,每一次都要刷门禁卡才能进去,但有时忘记了或者丢了怎么办呢,拉下来看看相关教程。  当然,不是所有的门禁卡都能模拟,所以我们就需要了解你的门禁卡是否是能模拟的类型。  门禁卡一般分为:ID卡和IC卡。而EM卡、M1卡、CPU卡等等,都是这两种卡的细分。  我们看上面这张图。在这张图中,卡是按工作频率来分的:ID卡的工作频率为125KHz频率,而IC卡的工作频率为13.56MHz以上。显然看出,因为IC卡的频率高,所以,它的安全性比较高。小区基本上选择

    2022年5月11日
    157
  • 发电机机房设计规范_柴油发电机房设计规范.docx[通俗易懂]

    发电机机房设计规范_柴油发电机房设计规范.docx[通俗易懂]柴油发电机房设计规范柴油发电机房设计规范篇一:柴油发电机组设置原则与机房设计  柴油发电机组设置原则与机房设计1引言  新型建筑人流密集,出于防火、消防安全的需要,对供电可靠性提出了严格的要求。目前我们一般采用柴油发电机组作为应急电源,因为柴油发电机的容量较大,持续供电时间长,可独立运行,不受电网故障的影响,可靠性较高。尤其是某些地区常用市电不是很可靠的情况下,把柴油发电机作为备用电源…

    2022年10月2日
    3
  • Java Calendar 类的时间操作+获取昨天日期

    Java Calendar 类的时间操作+获取昨天日期JavaCalendar类时间操作,这也许是创建和管理日历最简单的一个方案,示范代码很简单。演示了获取时间,日期时间的累加和累减,以及比较。原文地址:blog.csdn.net/joyous/article/details/9630893注意事项:Calendar的month从0开始,也就是全年12个月由0~11进行表示。而Calen

    2022年5月31日
    51
  • java集合系列——Map之HashMap介绍(八)

    HashMap是基于哈希表的Map实现的的,一个Key对应一个Value,允许使用null键和null值,不保证映射的顺序,特别是它不保证该顺序恒久不变!也不是同步的。

    2022年2月26日
    63
  • rocketmq启动报错VM warning: INFO: OS::commit_memory(0x00000006c0000000, 2147483648, 0) faild

    rocketmq启动报错VM warning: INFO: OS::commit_memory(0x00000006c0000000, 2147483648, 0) faild解决方案:修改/RocketMQ/devnev/bin/下的服务启动脚本runserver.sh、runbroker.sh中对于内存的限制,​改一下内存大小就行了:JAVA_OPT=”${JAVA_OPT}-server-Xms128m-Xmx128m-Xmn128m-XX:PermSize=128m-XX:MaxPermSize=128m”…

    2022年5月14日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号