本技术实施例涉及计算机,尤其涉及一种使unreal engine用pyt hon语言编辑slate界面的方法、装置、计算机设备、计算机可读存储介质、系统。
背景技术:
1、随着游戏市场的发展,虚幻引擎(unreal engine)被更多地应用在游戏项目开发中。slate界面框架是虚幻引擎使用的一种界面框架,具有控件丰富、执行效率高、功能强大、界面美观等优点。
2、虚幻引擎的原生开发语言为c++语言,开发者使用c++语言创建和管理sl ate界面。然而,受c++语言的限制,开发过程中对slate界面做任何一点修改或调整,都需要花费大量时间等待c++工程重新编译完成才能看到改动后的界面效果,无法进行界面的实时更新和预览,导致开发过程繁琐、开发效率低下。
3、需要说明的是,上述内容并不必然是现有技术,也不用于限制本技术的专利保护范围。
技术实现思路
1、本技术实施例提供一种使unreal engine用python语言编辑slate界面的方法、装置、计算机设备、计算机可读存储介质,以解决或缓解上面提出的一项或更多项技术问题。
2、本技术实施例的一个方面提供了一种使unreal engine用python语言编辑slate界面的方法,所述方法包括:
3、获取json格式的界面描述文件,所述界面描述文件关联python工具实例,所述python工具实例关联一个界面中间层实例;
4、根据所述界面描述文件,创建slate界面,所述slate界面包括控件实例,其中,所述控件实例的事件绑定有所述python工具实例中对应的python代码;
5、响应于在所述slate界面上针对所述控件实例的事件触发,获取所述pytho n代码的执行结果;
6、通过所述界面中间层实例传输所述执行结果,并根据传输的执行结果查找所述控件实例并更新,以更新所述slate界面。
7、可选地,所述界面描述文件还用于指定所述python工具实例的初始化代码以及清理代码。
8、可选地,所述界面描述文件还设有变量占位符,所述变量占位符用于标记需要填充的文本位置。
9、可选地,获取json格式的界面描述文件,包括:
10、获取配置文件,所述配置文件包括第一路径和目标位置,所述第一路径为菜单配置描述文件的所在路径,所述目标位置为菜单项的挂接位置;
11、根据所述第一路径,获取所述菜单配置描述文件,所述菜单配置描述文件用于指定和所述菜单项对应的界面描述文件的路径信息;
12、根据所述配置文件和所述菜单配置描述文件,在所述目标位置创建所述菜单项;
13、响应于针对所述菜单项的点击操作,根据所述路径信息获取相应界面描述文件。
14、可选地,所述菜单配置描述文件还用于指定无界面的python代码片段;和/或所述菜单配置描述文件还用于指定界面图标和/或工具提示。
15、可选地,所述目标位置包括预定义位置和/或工具菜单锚点位置。
16、可选地,所述使unreal engine用python语言编辑slate界面的方法还包括:
17、响应于所述python工具实例的获取请求,根据所述界面描述文件获取所述界面中间层实例;其中,所述获取请求中包括第二路径,所述第二路径为所述界面描述文件的所在路径;
18、在所述界面描述文件包括第三路径的情形下,根据所述第三路径获取所述界面中间层实例,所述第三路径为所述界面中间层实例的所在路径;
19、在所述界面描述文件不包括所述第三路径的情形下,创建所述界面中间层实例,并将所述界面中间层实例分配给所述python工具实例。
20、可选地,所述配置文件还包括所述界面中间层实例的所在目录;
21、对应地,所述响应于所述python工具实例的获取请求,根据所述界面描述文件获取所述界面中间层实例,包括:
22、在所述界面描述文件包括所述界面中间层实例的名称的情形下,根据所述界面中间层实例的名称和所在目录,获取所述界面中间层实例。
23、可选地,通过所述界面中间层实例传输所述执行结果,并根据传输的执行结果查找所述控件实例并更新,包括:
24、通过所述界面中间层实例查找所述控件实例的控件路径,并通过所述界面中间层实例传输所述执行结果和所述控件路径;
25、根据传输的执行结果和控件路径,查找所述控件实例并更新。
26、可选地,通过所述界面中间层实例传输所述执行结果,并根据传输的执行结果查找所述控件实例并更新,包括:
27、通过所述界面中间层实例查找所述控件实例的控件引用,并通过所述界面中间层实例传输所述执行结果和所述控件引用;
28、根据传输的执行结果和控件引用,查找所述控件实例并更新。
29、可选地,所述使unreal engine用python语言编辑slate界面的方法还包括:
30、提供多个蓝图调用接口给基于python语言封装的python层,以供所述pyt hon层调用unreal engine中c++封装的底层功能。
31、本技术实施例的另一个方面提供了一种使unreal engine用python语言编辑slate界面的装置,所述装置包括:
32、第一获取模块,用于获取json格式的界面描述文件,所述界面描述文件关联python工具实例,所述python工具实例关联一个界面中间层实例;
33、创建模块,用于根据所述界面描述文件,创建slate界面,所述slate界面包括控件实例,其中,所述控件实例的事件绑定有所述python工具实例中对应的python代码;
34、第二获取模块,用于响应于在所述slate界面上针对所述控件实例的事件触发,获取所述python代码的执行结果;
35、更新模块,用于通过所述界面中间层实例传输所述执行结果,并根据传输的执行结果查找所述控件实例并更新,以更新所述slate界面。
36、本技术实施例的另一个方面提供了一种计算机设备,包括:
37、至少一个处理器;及
38、与所述至少一个处理器通信连接的存储器;
39、其中:所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
40、本技术实施例的另一个方面提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机指令,所述计算机指令被处理器执行时实现如上所述的方法。
41、本技术实施例的另一个方面提供了一种使unreal engine用python语言编辑slate界面的系统,所述系统包括:
42、c++模块,用于提供蓝图方法接口,并通过c++语言创建slate界面;
43、python模块,用于调用所述蓝图方法接口,传递json格式的界面描述文件的路径信息至所述c++模块;
44、其中,所述c++模块还用于为所述slate界面中的控件实例绑定对应的pyt hon代码;
45、界面中间层实例模块,用于将所述python代码的执行结果反馈至所述c++模块;
46、其中,所述c++模块还用于根据所述执行结果更新所述控件实例,以更新所述slate界面。
47、本技术实施例采用上述技术方案可以包括如下优势:
48、先获取json格式的界面描述文件。其中,界面描述文件关联有python工具实例,python工具实例关联一个界面中间层实例。然后,根据该界面描述文件创建包括控件实例的slate界面,控件实例的事件绑定有python工具实例中对应的python代码。在控件实例的事件被触发时,获取python代码的执行结果并通过界面中间层实例传输该执行结果,根据传输的执行结果查找到控件实例并更新,从而更新slate界面。可知,在本技术方案中可以将slate界面的定义和c++代码分离,通过slate控件可以调用python代码,通过界面中间层实例和python语言可以修改和实时预览slate界面,实现了slate界面和python的双向通信。在编辑slate界面时,可以通过python快速调整和创建界面内容,无需重新编译c++工程,有效节省编译时间、提高开发效率。