一种引擎控件的控制方法、装置、计算机设备及存储介质与流程

未命名 09-29 阅读:69 评论:0


1.本公开涉及计算机技术领域,具体涉及一种引擎控件的控制方法、装置、计算机设备及存储介质。


背景技术:

2.目前很多游戏采用unity引擎进行开发,unity引擎对于android平台的支持也比较成熟完善。有些游戏会采用native+unity混合开发的模式,启动后先是进入原生界面(native界面),用户可以通过点击某些入口进入游戏,也可以退出来回到原生界面。而且在原生界面有时也需要通过纹理共享的方式,拿到unit引擎的纹理id通过原生界面的视图渲染出来,比如在原生界面中展示游戏内的某个动态画面等。
3.unity引擎在设备的载体是unityplayer,在设计或者使用的过程中,一旦unityplayer处于不可见(即在页面中不显示unityplayer)的情况下,会导致unity引擎处于暂停状态。同时由于无法保证unityplayer一直处于可见的状态,最终降低了开发时数据通信以及纹理共享等交互业务的效率。


技术实现要素:

4.有鉴于此,本公开实施例提供了一种引擎控件的控制方法、装置、计算机设备及存储介质,以解决无法保证unityplayer一直处于可见的状态,降低了开发时数据通信以及纹理共享等交互业务效率的问题。
5.第一方面,本公开实施例提供了一种引擎控件的控制方法,方法包括:
6.获取页面显示指令,其中,所述页面显示指令用于确定待显示于原生界面的第一画面;
7.响应所述页面显示指令,将所述第一画面作为引擎控件的第一宿主画面,并确定所述第一宿主画面对应的第一画面属性,其中,所述第一画面属性包括:游戏属性或非游戏属性;
8.获取引擎控件在所述第一画面属性下对应的第一显示参数;
9.按照所述第一显示参数将所述引擎控件添加至所述第一宿主画面,并在所述原生界面进行显示。
10.第二方面,本公开实施例提供了一种引擎控件的控制装置,装置包括:
11.获取模块,用于获取页面显示指令,其中,所述页面显示指令用于确定待显示于原生界面的第一画面;
12.响应模块,用于响应所述页面显示指令,将所述第一画面作为引擎控件的第一宿主画面,并确定所述第一宿主画面对应的第一画面属性,其中,所述第一画面属性包括:游戏属性或非游戏属性;
13.处理模块,用于获取引擎控件在所述第一画面属性下对应的第一显示参数;
14.执行模块,用于按照所述第一显示参数将所述引擎控件添加至所述第一宿主画
面,并在所述原生界面进行显示。
15.第三方面,本公开实施例提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的引擎控件的控制方法。
16.第四方面,本公开实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的引擎控件的控制方法。
17.本公开实施例提供的上述技术方案具有如下优点:本公开实施例提供的方法通过建立当前待显示的画面与引擎控件的宿主关系,同时根据不同宿主画面的画面属性,选择相应的显示参数将引擎控件显示于宿主画面,以此实现了在显示画面发送变化时,动态更新引擎控件对应的宿主画面,使引擎控件始终显示于原生界面中最上层的画面,从而保证引擎控件一直处于活跃状态,提高了游戏开发时数据通信以及纹理共享等交互业务的效率。
附图说明
18.为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1是根据本公开一些实施例的引擎控件的控制方法的流程示意图;
20.图2是根据本公开一些实施例的画面切换时引擎控件的变更示意图;
21.图3是根据本公开一些实施例的画面切换时引擎控件的变更示意图;
22.图4是根据本公开一些实施例的引擎控件的显示示意图;
23.图5是根据本公开一些实施例的引擎控件的控制方法的流程示意图;
24.图6是根据本公开一些实施例的引擎控件的控制方法的流程示意图;
25.图7是根据本公开实施例的引擎控件的控制装置的结构框图;
26.图8是本公开实施例的计算机设备的硬件结构示意图。
具体实施方式
27.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
28.根据本公开实施例,提供了一种引擎控件的控制方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
29.在本实施例中提供了一种引擎控件的控制方法,图1是根据本公开实施例的一种引擎控件的控制方法方法的流程图,如图1所示,该流程包括如下步骤:
30.步骤s11,获取页面显示指令,其中,页面显示指令用于确定待显示于原生界面的第一画面。
31.本公开实施例提供的方法应用于智能设备,智能设备可以是安装android系统的设备,例如:android系统的智能手机,平板电脑等等。具体的,智能设备可以检测当前是否在原生界面触发页面启动操作,例如:检测当前是否存在针对于智能设备中某一个页面(例如:游戏界面,游戏选择界面等等)的启动请求。如果当前存在启动请求则可以基于该启动请求获取页面显示指令,页面显示指令用于确定待显示于原生界面的第一画面,原生界面为native界面,native界面是一种基于智能设备本地操作系统并使用原生程式编写运行的页面。第一画面为当前请求启动应用软件的某一个软件画面。应用软件可以是游戏软件,也可以是办公软件等等。
32.步骤s12,响应页面显示指令,将第一画面作为引擎控件的第一宿主画面,并确定第一宿主画面对应的第一画面属性,其中,第一画面属性包括:游戏属性或非游戏属性。
33.在本公开实施例中,智能设备首先响应页面显示指令,利用页面显示指令确定当前待显示的第一画面,并将第一画面作为引擎控件的第一宿主画面。引擎控件为引擎控件(unityplayer),引擎控件(unityplayer)的作用是可以直接查看用unity创建的3d内容、发布的游戏。
34.需要说明的是,引擎控件(unityplayer)有活跃(resume)和暂停(pause)两个状态。在引擎控件(unityplayer)处于resume状态下,引擎控件正常渲染,引擎控件unity和原生界面也可以正常通信。在引擎控件(unityplayer)处于pause状态,引擎控件停止渲染,引擎控件unity和原生界面暂停通信。以下几种情况都会触发引擎控件(unityplayer)强制进入暂停状态:(1)引擎控件(unityplayer)在某个画面a,画面a变为不可见时(例如:被新启动的画面覆盖,或者应用切到后台等)。(2)引擎控件(unityplayer)在画面a,画面a可见,但是引擎控件(unityplayer)被设置为不可见。(3)引擎控件(unityplayer)在独立window(如悬浮窗)中,浮在所有画面之上,但是引擎控件(unityplayer)被设置为不可见。
35.基于此,当引擎控件(unityplayer)处于不可见时,引擎控件就会停止渲染。为了保证引擎控件(unityplayer)处于活跃状态,本公开将第一画面作为引擎控件的第一宿主画面,后续通过建立待显示画面与引擎控件之间的宿主关系,后续在显示该画面时,引擎控件可在该画面一直处于resume状态,从而保证引擎控件可以正常渲染。
36.具体的,将第一画面作为引擎控件的第一宿主画面,包括以下步骤a1-a3:
37.步骤a1,检测原生界面中是否存在引擎控件。
38.步骤a2,在原生界面存在引擎控件的情况下,获取引擎控件所挂载的原始宿主画面。
39.步骤a3,将引擎控件从原始宿主画面删除,并将第一画面作为引擎控件对应的第一宿主画面。
40.在本公开实施例中,智能设备首先检测原生界面中是否存在引擎控件,如果存在引擎控件,则说明引擎控件已经创建。此时智能设备可以调用管理程序(unityplayer holder)获取引擎控件所挂载的原始宿主画面,然后通过插件管理程序将引擎控件从原始宿主画面删除,并将第一画面作为引擎控件对应的第一宿主画面。以此通过建立第一画面与引擎控件之间的宿主关系,能够保证引擎控件可以显示于第一宿主画面。
41.作为一个示例,如图2所示,在原生界面存在引擎控件的情况下,获取引擎控件所挂载的原始宿主画面activity_a,然后通过插件管理程序(unityplayer holder)将引擎控件从原始宿主画面activity_a移除,然后将引擎控件添加到第一画面activity_b,将第一画面activity_b作为引擎控件的第一宿主画面。如图3所示,当从第一画面activity_b返回原始宿主画面activity_a时,通过插件管理程序(unityplayer holder)将引擎控件从第一画面activity_b移除,然后将引擎控件添加到原始宿主画面activity_a。
42.需要说明的是,只要在原生界面发生页面启动或者页面变更时,引擎控件的宿主页面也会同步变化,实现了引擎控件一直处于活跃状态,即使在宿主画面不属于游戏画面的情况下,仍然可以保证引擎控件可以正常渲染。
43.在本公开实施例中,方法还包括:在原生界面不存在引擎控件的情况下,创建引擎控件,并将第一画面作为引擎控件对应的第一宿主画面。
44.在本技术实施例中,创建引擎控件的过程可以是:调用自定义软件开发工具获取配置文件。通过自定义软件开发工具将配置文件中的数据解析并重组成适配数据,利用适配数据创建引擎控件。
45.需要说明的是,在原生界面内每启动一个新画面时,无需每次都新建一个引擎控件(unityplayer),如果原生界面已经创建过引擎控件(unityplayer),则只需找到引擎控件(unityplayer)的原始宿主画面,将其从原始宿主画面移除,然后添加到当前的宿主画面上。例如:第一次启动的画面为activity_a,构造一个引擎控件(unityplayer)将其添加到画面activity_a。第二次启动的画面为画面activity_b时,可以确定引擎控件(unityplayer)的原始宿主画面为activity_a,此时将引擎控件从原始宿主画面activit_a删除,并将画面activity_b作为引擎控件对应的新的宿主画面,以此使了引擎控件一直处于活跃状态。
46.步骤s13,获取引擎控件在第一画面属性下对应的第一显示参数。
47.在本公开实施例中,获取引擎控件在第一画面属性下对应的第一显示参数,包括:获取预设画面属性与显示参数之间的对应关系;基于对应关系确定第一画面属性对应的第一显示参数。
48.在本公开实施例中,如果第一画面属性为非游戏属性,引擎控件的第一显示参数包括第一预设数量的像素点,第一预设数量小于形成页面可视化的像素点的数量。其中,第一预设数量的像素点可以是1个像素点。
49.需要说明的是,如果第一画面属性为非游戏属性(即第一画面为非游戏画面),为了保证不影响操作者对第一画面的使用,在视觉效果上需要对引擎控件(unityplayer)进行特殊处理,即利用小于形成页面可视化的像素点的数量作为显示参数。从而达到引擎控件(unityplayer)在显示的过程中,对操作者不可见,同时保证了引擎控件(unityplayer)处于活跃状态。
50.例如:将引擎控件(unityplayer)大小设置为1个像素点或者2个像素点,这样既能保证对操作者不可见(即肉眼看不到),又能保证引擎控件(unityplayer)处于活跃状态,且也能被原生界面感知。
51.在本公开实施例中,如果第一画面属性为游戏属性,引擎控件的第一显示参数包括:第二预设数量的像素点,其中,第二预设数量为第一宿主画面中内容视图的像素点数
量。
52.需要说明的是,如果第一画面属性为游戏属性(即第一画面为非游戏画面),则可以直接将引擎控件(unityplayer)填充到第一宿主画面的内容视图,从而实现全屏显示。
53.步骤s14,按照第一显示参数将引擎控件添加至第一宿主画面,并在原生界面进行显示。
54.在本公开实施例中,按照第一显示参数将引擎控件添加至第一宿主画面,包括:在第一画面属性为非游戏属性的情况下,获取第一宿主画面的内容视图;将引擎控件按照第一预设数量的像素点显示于内容视图的指定位置。
55.在本公开实施例中,如图4所示,在第一画面属性为非游戏属性的情况下,首先获取第一宿主画面的内容视图,具体的,利用id_android_content从第一宿主画面中提取内容视图contentview,然后将引擎控件(unityplayer)按照第一预设数量的像素点显示于内容视图的指定位置,即通过contentview.addview(unityplayer,1,1);将引擎控件(unityplayer)添加到内容视图contentview中,其中(1,1)为像素点的宽度和高度。
56.在本公开实施例中,按照第一显示参数,将引擎控件添加至第一宿主画面,包括:在第一画面属性为游戏属性的情况下,将引擎控件按照第二预设数量的像素点显示于第一宿主画面的内容视图。
57.在本公开实施例中,进入游戏时,需要展示全屏的游戏画面,因此在将引擎控件(unityplayer)往宿主页面activity添加时需要将尺寸充满全屏。由于进入游戏时对引擎控件(unityplayer)的处理方式特殊,因此使用单独的gameactivity来处理。对于gameactivity来说,直接将引擎控件(unityplayer)填充到内容视图contentview中,即实现充满全屏的效果。
58.本公开实施例提供的方法通过建立当前待显示的画面与引擎控件的宿主关系,同时根据不同宿主画面的画面属性,选择相应的显示参数将引擎控件显示于宿主画面,以此实现了在显示画面发送变化时,动态更新引擎控件对应的宿主画面,使引擎控件始终显示于原生界面中最上层的画面,从而保证引擎控件一直处于活跃状态,提高了游戏开发时数据通信以及纹理共享等交互业务的效率。尤其是在宿主画面的画面属性为非游戏属性时,通过将引擎控件(unityplayer)设置为尺寸为(1,1)的像素点,实现了引擎控件在宿主画面显示的同时对操作者不可见,既不会影响操作者的使用,又保证引擎控件一直处于活跃状态。
59.作为一个示例,引擎控件的宿主画面变更过程,如图5所示:
60.步骤1,确定当前在原生界面启动的画面a。
61.步骤2,检测原生界面是否存在引擎控件,如果不存在,执行步骤3;如果存在,则执行步骤4。
62.步骤3,创建引擎控件,将创建的引擎控件添加至画面a。
63.步骤4,判断引擎控件是否存在原始宿主画面,如果不存在,则执行步骤5,如果存在,则执行步骤6。
64.步骤5,将引擎控件添加至画面a。
65.步骤6,将引擎控件从原始宿主画面移除,并将画面a作为引擎控件对应的宿主画面。
66.在本公开实施例中,在按照第一显示参数,将引擎控件添加至第一宿主画面之后,如图6所示,方法还包括以下步骤:
67.步骤s21,获取页面切换指令。
68.在本公开实施例中,智能设备可以检测是否存在作用于原生界面的页面切换操作,例如:页面切换操作可以是请求退出当前游戏画面或者跳转至当前游戏的另一个画面等等。在检测到页面切换操作的情况下,基于页面切换操作生成页面切换指令。
69.步骤s22,响应页面切换指令,获取第一画面切换后的第二画面。
70.在本公开实施例中,智能设备通过页面切换指令,获取第一画面切换后的第二画面,第二画面可以是新应用的画面,也可以是当前应用的画面(即第二画面与第一画面属于同一游戏,且第二画面可直接由第一画面跳转)。
71.步骤s23,将第二画面作为引擎控件的第二宿主画面,并确定第二宿主画面对应的第二画面属性。
72.在本公开实施例中,由于页面发生了切换,此时需要将引擎控件从原始宿主画面(第一画面)中删除,将第二画面作为引擎控件的第二宿主画面。同时还确定第二宿主画面对应的第二画面属性。需要说明的是,通过确定第二宿主画面对应的画面属性,便于后续确定引擎控件的显示参数是否需要变化。
73.步骤s24,在第一画面属性与第二画面属性不一致的情况下,获取第二画面属性对应的第二显示参数,并按照第二显示参数将引擎控件添加至第二宿主画面。
74.在本公开实施例中,第一画面属性与第二画面属性不一致的情况包括:第一画面属性为游戏属性,第二画面属性为非游戏属性。或,第一画面属性为非游戏属性,第二画面属性为游戏属性。
75.(1)如果第一画面属性为游戏属性,第二画面属性为非游戏属性,则说明操作这当前退出游戏画面,进入非游戏画面。此时需要将引擎控件由全屏显示变更为1个像素点进行显示。
76.作为一个示例,画面a为游戏画面,画面b为非游戏画面。在原生界面显示的画面为画面a,当前需要启动画面b时,执行顺序依次如下:
77.画面a onpause(暂停)—画面b oncreate(创建)—画面b onstart(启动)—画面bonresume(活跃)—画面a onwindowfocuschanged false(窗口锁定失败)—画面b onwindowfocuschanged true(窗口锁定正确)—画面a onstop(停止显示)。
78.在上述过程中,在处于画面b oncreate阶段时,确定引擎控件(unityplayer)的原始宿主画面,此时原始宿主画面为画面a,则将其从原始宿主画面中移除。之后将画面b的画面设置为新的宿主画面,并将引擎控件添加到新的宿主画面的内容视图contentview,设置为1个像素点。以此方式,当从游戏画面进入非游戏画面时,引擎控件通过1个像素点的方式进行显示,能够实现在退出游戏画面后,引擎控件仍然可以对系统保持可见,使引擎控件一直处于活跃状态。
79.(2)如果第一画面属性为非游戏属性,第二画面属性为游戏属性,此时需要将引擎控件由1个像素点进行显示变更为全屏显示。
80.作为一个示例,画面a为游戏画面,画面b为非游戏画面。在原生界面显示的画面为画面b,当前需要返回画面a时,执行顺序依次如下:
81.画面b onpause—画面a onrestart—画面a onstart—画面a onresume—画面bonwindowfocuschanged false—画面a onwindowfocuschanged true—画面b onstop—画面b ondestroy。
82.在上述过程中,在处于画面a onrestart阶段时,确定引擎控件(unityplayer)的原始宿主画面,此时原始宿主画面为画面b,则将其从原始宿主画面中移除。之后将画面a的画面设置为新的宿主画面,并将引擎控件添加到新的宿主画面的内容视图contentview,设置为全屏显示。
83.在本公开实施例中,通过画面来回切换时动态调整引擎控件(unityplayer)对应宿主画面,保证了引擎控件(unityplayer)始终在当前顶层页面中处于一个可见的状态。
84.在本公开实施例中,如果第一画面属性与第二画面属性一致,且第一画面属性和第二画面属性均为非游戏属性时,仅需要将引擎控件从第一画面移除,并解除引擎控件与第一画面之间的宿主关系,然后将第二画面作为引擎控件的宿主画面,同时将引擎控件按照1个像素点的方式显示于第二画面。如果第一画面属性与第二画面属性一致,且第一画面属性和第二画面属性均为游戏属性时,仅执行页面跳转即可。
85.本公开实施例提供的方法,动态将引擎控件(unityplayer)从原始宿主页面移除,添加到新宿主页面,从而实现引擎控件(unityplayer)始终处于活跃状态。同时针对不同的画面属性,将引擎控件按照不同的方式显示,例如:当进入游戏时,将引擎控件(unityplayer)设置为全屏,退出游戏时恢复1个像素点。实现了在原生界面中对于引擎控件的保活,使引擎控件始终处于活跃状态,从而可以保证native+unity混合开发时数据通信以及纹理共享等交互的效率。
86.在本实施例中还提供了一种引擎控件的控制装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
87.本实施例提供一种引擎控件的控制装置,如图7所示,包括:
88.获取模块41,用于获取页面显示指令,其中,页面显示指令用于确定待显示于原生界面的第一画面;
89.响应模块42,用于响应页面显示指令,将第一画面作为引擎控件的第一宿主画面,并确定第一宿主画面对应的第一画面属性,其中,第一画面属性包括:游戏属性或非游戏属性;
90.处理模块43,用于获取引擎控件在第一画面属性下对应的第一显示参数;
91.执行模块44,用于按照第一显示参数将引擎控件添加至第一宿主画面,并在原生界面进行显示。
92.在本公开实施例中,响应模块42,用于检测原生界面中是否存在引擎控件;在原生界面存在引擎控件的情况下,获取引擎控件所挂载的原始宿主画面;将引擎控件从原始宿主画面删除,并将第一画面作为引擎控件对应的第一宿主画面。
93.在本公开实施例中,装置还包括:创建模块,用于在原生界面不存在引擎控件的情况下,创建引擎控件,并将第一画面作为引擎控件对应的第一宿主画面。
94.在本公开实施例中,处理模块43,用于包括:获取预设画面属性与显示参数之间的
对应关系;基于对应关系确定第一画面属性对应的第一显示参数;其中,在第一画面属性为非游戏属性的情况下,引擎控件的第一显示参数包括第一预设数量的像素点,第一预设数量小于形成页面可视化的像素点的数量;或,在第一画面属性为游戏属性的情况下,引擎控件的第一显示参数包括:第二预设数量的像素点,其中,第二预设数量为第一宿主画面中内容视图的像素点数量。
95.在本公开实施例中,执行模块44,用于在第一画面属性为非游戏属性的情况下,获取第一宿主画面的内容视图;将引擎控件按照第一预设数量的像素点显示于内容视图的指定位置。
96.在本公开实施例中,执行模块44,用于在第一画面属性为游戏属性的情况下,将引擎控件按照第二预设数量的像素点显示于第一宿主画面的内容视图。
97.在本公开实施例中,装置还包括:切换模块,用于获取页面切换指令;响应页面切换指令,获取第一画面切换后的第二画面;将第二画面作为引擎控件的第二宿主画面,并确定第二宿主画面对应的第二画面属性;在第一画面属性与第二画面属性不一致的情况下,获取第二画面属性对应的第二显示参数,并按照第二显示参数将引擎控件添加至第二宿主画面。
98.本实施例中的引擎控件的控制装置是以功能单元的形式来呈现,这里的单元是指asic电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
99.上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
100.本公开实施例还提供一种计算机设备,具有上述图7所示的引擎控件的控制装置。
101.请参阅图8,图8是本公开可选实施例提供的一种计算机设备的结构示意图,如图8所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图8中以一个处理器10为例。
102.处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
103.其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
104.存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据一种小程序落地页的展现的计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括
非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
105.存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
106.该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
107.本公开实施例还提供了一种计算机可读存储介质,上述根据本公开实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
108.虽然结合附图描述了本公开的实施例,但是本领域技术人员可以在不脱离本公开的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

技术特征:
1.一种引擎控件的控制方法,其特征在于,所述方法包括:获取页面显示指令,其中,所述页面显示指令用于确定待显示于原生界面的第一画面;响应所述页面显示指令,将所述第一画面作为引擎控件的第一宿主画面,并确定所述第一宿主画面对应的第一画面属性,其中,所述第一画面属性包括:游戏属性或非游戏属性;获取引擎控件在所述第一画面属性下对应的第一显示参数;按照所述第一显示参数将所述引擎控件添加至所述第一宿主画面,并在所述原生界面进行显示。2.根据权利要求1所述的方法,其特征在于,所述将所述第一画面作为引擎控件的第一宿主画面,包括:检测所述原生界面中是否存在所述引擎控件;在所述原生界面存在所述引擎控件的情况下,获取所述引擎控件所挂载的原始宿主画面;将所述引擎控件从所述原始宿主画面删除,并将所述第一画面作为所述引擎控件对应的第一宿主画面。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:在所述原生界面不存在所述引擎控件的情况下,创建所述引擎控件,并将所述第一画面作为所述引擎控件对应的第一宿主画面。4.根据权利要求1所述的方法,其特征在于,所述获取引擎控件在所述第一画面属性下对应的第一显示参数,包括:获取预设画面属性与显示参数之间的对应关系;基于所述对应关系确定所述第一画面属性对应的第一显示参数,其中,在所述第一画面属性为非游戏属性的情况下,所述引擎控件的第一显示参数包括第一预设数量的像素点,第一预设数量小于形成页面可视化的像素点的数量;或,在所述第一画面属性为游戏属性的情况下,所述引擎控件的第一显示参数包括:第二预设数量的像素点,其中,所述第二预设数量为所述第一宿主画面中内容视图的像素点数量。5.根据权利要求4所述的方法,其特征在于,所述按照所述第一显示参数,将所述引擎控件添加至所述第一宿主画面,包括:在所述第一画面属性为非游戏属性的情况下,获取所述第一宿主画面的内容视图;将所述引擎控件按照所述第一预设数量的像素点显示于所述内容视图的指定位置。6.根据权利要求4或5所述的方法,其特征在于,所述第一预设数量为1。7.根据权利要求4所述的方法,其特征在于,所述按照所述第一显示参数,将所述引擎控件添加至所述第一宿主画面,包括:在所述第一画面属性为游戏属性的情况下,将所述引擎控件按照所述第二预设数量的像素点显示于所述第一宿主画面的内容视图。8.根据权利要求1所述的方法,其特征在于,在按照所述第一显示参数,将所述引擎控件添加至所述第一宿主画面之后,所述方法还包括:获取页面切换指令;
响应所述页面切换指令,获取第一画面切换后的第二画面;将所述第二画面作为引擎控件的第二宿主画面,并确定所述第二宿主画面对应的第二画面属性;在所述第一画面属性与所述第二画面属性不一致的情况下,获取所述第二画面属性对应的第二显示参数,并按照所述第二显示参数将所述引擎控件添加至所述第二宿主画面。9.一种引擎控件的控制装置,其特征在于,所述装置包括:获取模块,用于获取页面显示指令,其中,所述页面显示指令用于确定待显示于原生界面的第一画面;响应模块,用于响应所述页面显示指令,将所述第一画面作为引擎控件的第一宿主画面,并确定所述第一宿主画面对应的第一画面属性,其中,所述第一画面属性包括:游戏属性或非游戏属性;处理模块,用于获取引擎控件在所述第一画面属性下对应的第一显示参数;执行模块,用于按照所述第一显示参数将所述引擎控件添加至所述第一宿主画面,并在所述原生界面进行显示。10.一种计算机设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至8中任一项所述的方法。11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至8中任一项所述的方法。

技术总结
本公开公开了一种引擎控件的控制方法、装置、计算机设备及存储介质。包括:获取页面显示指令,页面显示指令用于确定待显示于原生界面的第一画面;响应页面显示指令,将第一画面作为引擎控件的第一宿主画面,并确定第一宿主画面对应的第一画面属性,第一画面属性包括:游戏属性或非游戏属性;获取引擎控件在第一画面属性下对应的第一显示参数;按照第一显示参数将引擎控件添加至第一宿主画面,并在原生界面进行显示。本公开的方法实现了在显示画面发送变化时,动态更新引擎控件对应的宿主画面,使引擎控件始终显示于原生界面中最上层的画面,从而保证引擎控件一直处于活跃状态,提高了游戏开发时数据通信以及纹理共享等交互业务的效率。效率。效率。


技术研发人员:魏振果
受保护的技术使用者:北京字跳网络技术有限公司
技术研发日:2023.06.25
技术公布日:2023/9/23
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐