本发明涉及计算机,特别是一种游戏引擎页面和原生页面的交互方法和装置。
背景技术:
1、现有的应用程序app整体通常以cocos游戏引擎或者unity游戏引擎为主,cocos游戏引擎具备开源、免费、轻量、高性能等特点,服务了2d和3d游戏开发等等领域开发者。unity游戏引擎是实时3d互动内容创作和运营平台,包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者。cocos游戏引擎或者unity游戏引擎比较适用于游戏的开发,对动画和展现效果要求比较高,对于其他应用app而言,比如对于有大量的列表页面、需要自适应的复杂展示页面等页面的表现不是很流畅。
2、另外,现有的应用程序app的操作系统整体以ios系统和android系统的原生界面为主,cocos游戏引擎或者unity游戏引擎仅仅负责其中动画和游戏较为丰富的一两个模块,游戏引擎和原生界面交互较少。cocos游戏引擎或者unity游戏引擎作为应用的末梢页面,大部分情况仅仅为用户提供一个消遣的小游戏,如果承载多个游戏页面的时候,打开其中一个小游戏返回到原生页面,再打开另外一个小游戏的时候会有穿帮的现象发生。
技术实现思路
1、鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的游戏引擎页面和原生页面的交互方法和装置,能够在页面栈中将引擎页面视作普通的原生页面进行处理,原生页面和引擎页面的交互部分通过页面栈的桥接来完成,方便了原生页面和引擎页面之间的调用和交互操作。
2、根据本发明实施例的一方面,提供了一种游戏引擎页面和原生页面的交互方法,包括:
3、响应于原生页面对引擎页面的调用请求,查找待调用的引擎页面;
4、将查找到的引擎页面添加至页面栈中,在所述页面栈中依据用户操作指令对所述原生页面和引擎页面进行交互操作;
5、在当前界面中展示调用的引擎页面。
6、可选地,响应于原生页面对引擎页面的调用请求,查找待调用的引擎页面,包括:
7、响应于原生页面对引擎页面的调用请求,通过游戏引擎的本地接口查找待调用引擎页面的方法签名;
8、利用所述方法签名查找待调用的引擎页面。
9、可选地,将查找到的引擎页面添加至页面栈中,包括:
10、将查找到的引擎页面添加至页面栈,且在所述页面栈中将查找到的引擎页面置于所述原生页面上一层;其中,所述原生页面依据用户的触发操作已添加至页面栈。
11、可选地,将查找到的引擎页面添加至页面栈,包括:
12、在所述引擎页面的活动组件的生命周期进入创建周期或重新开始周期后,将查找到的引擎页面的视图添加至页面栈中;或
13、在所述引擎页面的控制层的生命周期进入创建周期或重新开始周期后,将查找到的引擎页面的视图添加至页面栈中。
14、可选地,将查找到的引擎页面添加至页面栈中,在所述页面栈中依据用户操作指令对所述原生页面和引擎页面进行交互操作之前,还包括:
15、依据所述引擎页面的活动组件当前所处生命周期确定所述引擎页面的当前状态;
16、若所述引擎页面的活动组件当前所处生命周期为停止周期,确定所述引擎页面的当前状态为不可见状态;
17、唤醒所述引擎页面的线程,其中,唤醒后的线程用于在所述原生页面和所述引擎页面之间传递交互信息。
18、可选地,将查找到的引擎页面添加至页面栈中,在所述页面栈中依据用户操作指令对所述原生页面和引擎页面进行交互操作之前,还包括:
19、分析所述页面栈中是否存在其他引擎页面的视图;
20、若是,在所述其他引擎页面的活动组件的生命周期进入停止周期或者销毁周期后,将所述其他引擎页面的视图从所述页面栈中移除;或
21、若是,在所述其他引擎页面的控制层的生命周期进入停止周期或者销毁周期后,将所述其他引擎页面的视图从所述页面栈中移除。
22、可选地,在所述页面栈中依据用户操作指令对所述原生页面和引擎页面进行交互操作之后,还包括:
23、接收到用户对调用的引擎页面的退出指令后,在调用的引擎页面的活动组件的生命周期进入停止周期或者销毁周期后,将调用的引擎页面的视图从所述页面栈中移除;或
24、接收到用户对调用的引擎页面的退出指令后,在调用的引擎页面的控制层的生命周期进入停止周期或者销毁周期后,将调用的引擎页面的视图从所述页面栈中移除;
25、在当前界面中展示与调用的引擎页面完成交互操作的所述原生页面。
26、可选地,若所述原生页面包括注册登录页面,所述引擎页面包括用于登录验证的游戏验证页面,
27、所述响应于原生页面对引擎页面的调用请求,查找待调用的引擎页面,包括:响应于所述注册登录页面对所述游戏验证页面的调用请求,查找待调用的游戏验证页面;
28、所述将查找到的引擎页面添加至页面栈中,在所述页面栈中依据用户操作指令对所述原生页面和引擎页面进行交互操作,包括:将查找到的游戏验证页面添加至页面栈中,在所述页面栈中依据用户登录操作向所述游戏验证页面发送登录验证请求,所述游戏验证页面向所述注册登录页面反馈允许验证的消息;
29、在当前界面中展示调用的引擎页面之后,还包括:依据用户游戏操作指令在所述游戏验证页面执行游戏操作进行登录验证,登录验证成功后调回所述注册登录页面,所述注册登录页面依据所述游戏验证页面反馈的验证成功的消息执行登录操作。
30、可选地,响应于原生页面对引擎页面的调用请求之前,还包括:预先创建原生转场页面;
31、响应于原生页面对引擎页面的调用请求,查找待调用的引擎页面,包括:响应于原生页面对引擎页面的调用请求,调用所述原生转场页面;通过调用的所述原生转场页面遮盖所述原生页面;查找待调用的引擎页面;
32、查找待调用的引擎页面之后,还包括:在当前界面中展示调用的引擎页面时,将所述原生转场页面进行隐藏。
33、根据本发明实施例的另一方面,还提供了一种游戏引擎页面和原生页面的交互装置,包括:
34、查找模块,适于响应于原生页面对引擎页面的调用请求,查找待调用的引擎页面;
35、交互模块,适于将查找到的引擎页面添加至页面栈中,在所述页面栈中依据用户操作指令对所述原生页面和引擎页面进行交互操作;
36、展示模块,适于在当前界面中展示调用的引擎页面。
37、本发明实施例响应于原生页面对引擎页面的调用请求,查找待调用的引擎页面,然后,将查找到的引擎页面添加至页面栈中,并依据用户的操作指令对页面栈中的原生页面和引擎页面进行交互操作,在原生页面和引擎页面完成交互之后,可以在当前界面中展示所调用的引擎页面。由此,本发明实施例通过将引擎页面添加至页面栈,可以在页面栈中将引擎页面视作普通的原生页面进行处理,原生页面和引擎页面的交互通过页面栈的桥接来完成,方便了原生页面和引擎页面之间的调用和交互操作。特别是对于一些原生页面和游戏引擎页面占用比例相差不多,且不同页面彼此交互较多的应用程序,可以方便不同团队的人员明确职责,保证人员的合理配置,即游戏引擎的团队人员负责相关游戏引擎部分,应用程序的原生部分的团队人员负责原生界面,从而有助于加快应用程序的开发进度。进一步的,对于不同的移动终端操作系统,还可以根据不同操作系统各自的特点进行中间层的封装,应用程序的开发阶段用一套代码在不同操作系统中能够达到一样的视觉效果。
38、上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
39、根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。