一种虚幻引擎布局开发的方法、装置、设备及存储介质制造方法及图纸

技术编号:38128899 阅读:7 留言:0更新日期:2023-07-08 09:35
本发明专利技术公开了一种虚幻引擎布局开发的方法、装置、设备及存储介质,属于计算机技术领域。所述方法包括:对预设的功能类和参数类进行UObject类型封装;创建全局UScriptTabManager单例类;UScriptTabManager内的每个函数返回相应的对象,形成链式编程;根据虚幻引擎的反射机制生成对应的申明文件,以便在lua或者ts脚本里面编写界面布局,得到由脚本编写的界面布局结果;将界面布局结果转换成TSharedPtr<SWidget>;在虚幻引擎C++侧将TSharedPtr<SWidget>嵌入到SWindow的Content中。本发明专利技术极大的提高了开发效率和便捷性。本发明专利技术极大的提高了开发效率和便捷性。本发明专利技术极大的提高了开发效率和便捷性。

【技术实现步骤摘要】
一种虚幻引擎布局开发的方法、装置、设备及存储介质


[0001]本专利技术属于计算机
,特别是涉及一种虚幻引擎布局开发的方法、装置、设备及存储介质。

技术介绍

[0002]传统编写界面布局方式,只能编写C++的Slate代码,C++本身语法复杂,且经过虚幻再次封装之后,需要有多年开发经验的人才能驾驭,且Slate代码格式需要手动调整,不方便阅读,一旦项目发布就不能再次修改布局,除非重新修改C++代码,然后重新编译发布;且不同项目需要不同布局,因此,C++代码需要重新编写,不能很好的做到代码复用。

技术实现思路

[0003]本专利技术的目的在于克服现有技术的不足,提供一种虚幻引擎布局开发的方法、装置、设备及存储介质。
[0004]本专利技术的目的是通过以下技术方案来实现的:根据本专利技术的第一方面,一种虚幻引擎布局开发的方法,应用于基于虚幻引擎的开发系统,所述方法包括:S100.对预设的功能类和参数类进行UObject类型封装;S200.创建全局UScriptTabManager单例类;S300.根据S100封装的所有类,UScriptTabManager内的每个函数返回相应的对象,形成链式编程;S400.利用UnLua或者Puerts插件导出由S100封装的类和函数,根据虚幻引擎的反射机制生成对应的申明文件,以便在lua或者ts脚本里面编写界面布局,得到由脚本编写的界面布局结果;S500.从UGameEngine派生一个UMyGameEngine,在其初始化函数中实现窗口内容创建流程的覆写,并启动脚本虚拟机;S600.调用由脚本创建的布局函数,将S400得到的结果传入UScriptTabManager,通过内部的MyTabManagerPtr将S400得到的界面布局结果转换成TSharedPtr<SWidget>,得到整个界面布局的TSharedPtr<SWidget>;S700.通过标识ID,注册标签页内容到UScriptTabManager,在UScriptTabManager内部通过Map存储标识ID和标签页内容键值对;S800.布局呈现在窗口内时,从UScriptTabManager的Map根据标签页的标识ID获取对应S700注册的标签页内容;S900.在虚幻引擎C++侧将S600生成的TSharedPtr<SWidget>嵌入到SWindow的Content中。
[0005]进一步地,对预设的功能类和参数类进行UObject类型封装,包括:将FTabManager封装成UScriptTabManager;
将FLayout封装成UScriptLayout;将FLayoutNode封装成UScriptLayoutNode;将FStack封装成UScriptStack;将FSplitter封装成UScriptSplitter;将FArea封装成UScriptArea;将FSpawnTabArgs封装成UScriptDockTabArgs。
[0006]进一步地,所述全局UScriptTabManager单例类采用TStrongObjectPtr<UScriptTabManager>强引用的方式。
[0007]进一步地,所述全局UScriptTabManager单例类含有共享指针TSharedPtr<FGlobalTabmanager>MyTabManagerPtr,以转发各种事件和参数。
[0008]进一步地,S300中函数返回相应的对象都为自身的实例对象。
[0009]根据本专利技术的第二方面,一种虚幻引擎布局开发的装置,应用于基于虚幻引擎的开发系统,所述装置包括:封装模块,用于对预设的功能类和参数类进行UObject类型封装;单例类创建模块,用于创建全局UScriptTabManager单例类;链式编程构建模块,用于根据封装的所有类,UScriptTabManager内的每个函数返回相应的对象,形成链式编程;申明文件导出模块,用于利用UnLua或者Puerts插件导出由封装模块封装的类和函数,根据虚幻引擎的反射机制生成对应的申明文件,以便在lua或者ts脚本里面编写界面布局,得到由脚本编写的界面布局结果;流程覆写模块,用于从UGameEngine派生一个UMyGameEngine,在其初始化函数中实现窗口内容创建流程的覆写,并启动脚本虚拟机;界面布局模块,用于调用由脚本创建的布局函数,将申明文件导出模块得到的结果传入UScriptTabManager,通过内部的MyTabManagerPtr将申明文件导出模块得到的界面布局结果转换成TSharedPtr<SWidget>,得到整个界面布局的TSharedPtr<SWidget>;键值对存储模块,用于通过标识ID,注册标签页内容到UScriptTabManager,在UScriptTabManager内部通过Map存储标识ID和标签页内容键值对;标签页内容获取模块,用于当布局呈现在窗口内时,从UScriptTabManager的Map根据标签页的标识ID获取对应键值对存储模块注册的标签页内容;嵌入模块,用于在虚幻引擎C++侧将界面布局模块生成的TSharedPtr<SWidget>嵌入到SWindow的Content中。
[0010]进一步地,对预设的功能类和参数类进行UObject类型封装,包括:将FTabManager封装成UScriptTabManager;将FLayout封装成UScriptLayout;将FLayoutNode封装成UScriptLayoutNode;将FStack封装成UScriptStack;将FSplitter封装成UScriptSplitter;将FArea封装成UScriptArea;将FSpawnTabArgs封装成UScriptDockTabArgs。
[0011]进一步地,所述全局UScriptTabManager单例类采用TStrongObjectPtr<UScriptTabManager>强引用的方式,所述全局UScriptTabManager单例类含有共享指针TSharedPtr<FGlobalTabmanager>MyTabManagerPtr,以转发各种事件和参数。
[0012]根据本专利技术的第三方面,一种设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如本专利技术的第一方面所述的方法。
[0013]根据本专利技术的第四方面,一种存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种虚幻引擎布局开发的方法,应用于基于虚幻引擎的开发系统,其特征在于,所述方法包括:S100.对预设的功能类和参数类进行UObject类型封装;S200.创建全局UScriptTabManager单例类;S300.根据S100封装的所有类,UScriptTabManager内的每个函数返回相应的对象,形成链式编程;S400.利用UnLua或者Puerts插件导出由S100封装的类和函数,根据虚幻引擎的反射机制生成对应的申明文件,以便在lua或者ts脚本里面编写界面布局,得到由脚本编写的界面布局结果;S500.从UGameEngine派生一个UMyGameEngine,在其初始化函数中实现窗口内容创建流程的覆写,并启动脚本虚拟机;S600.调用由脚本创建的布局函数,将S400得到的结果传入UScriptTabManager,通过内部的MyTabManagerPtr将S400得到的界面布局结果转换成TSharedPtr<SWidget> ,得到整个界面布局的TSharedPtr<SWidget>;S700.通过标识ID,注册标签页内容到UScriptTabManager,在UScriptTabManager内部通过Map存储标识ID和标签页内容键值对;S800.布局呈现在窗口内时,从UScriptTabManager的Map根据标签页的标识ID获取对应S700注册的标签页内容;S900.在虚幻引擎C++侧将S600生成的TSharedPtr<SWidget>嵌入到SWindow的Content中。2.根据权利要求1所述的一种虚幻引擎布局开发的方法,其特征在于,对预设的功能类和参数类进行UObject类型封装,包括:将FTabManager封装成UScriptTabManager;将FLayout封装成UScriptLayout;将FLayoutNode封装成UScriptLayoutNode;将FStack封装成UScriptStack;将FSplitter封装成UScriptSplitter;将FArea封装成UScriptArea;将FSpawnTabArgs封装成UScriptDockTabArgs。3.根据权利要求1所述的一种虚幻引擎布局开发的方法,其特征在于,所述全局UScriptTabManager单例类采用TStrongObjectPtr<UScriptTabManager>强引用的方式。4.根据权利要求1所述的一种虚幻引擎布局开发的方法,其特征在于,所述全局UScriptTabManager单例类含有共享指针TSharedPtr<FGlobalTabmanager> MyTabManagerPtr,以转发各种事件和参数。5.根据权利要求1所述的一种虚幻引擎布局开发的方法,其特征在于,S300中函数返回相应的对象都为自身的实例对象。6.一种虚幻引擎布局开发的装置,应用于基于虚幻引擎的开发系统,其特征在于,所述装置包括:封装模块,用于对预设的功能类和参数类进行UObject类型封装;
单例类创建模块,用于创建全局...

【专利技术属性】
技术研发人员:李自军王文佳
申请(专利权)人:成都曾自科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1