CN113590226A - 引擎编辑器的启动方法、装置、电子设备及存储介质 - Google Patents

引擎编辑器的启动方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113590226A
CN113590226A CN202110880805.XA CN202110880805A CN113590226A CN 113590226 A CN113590226 A CN 113590226A CN 202110880805 A CN202110880805 A CN 202110880805A CN 113590226 A CN113590226 A CN 113590226A
Authority
CN
China
Prior art keywords
program set
detection
target
editor
engine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110880805.XA
Other languages
English (en)
Other versions
CN113590226B (zh
Inventor
王达
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Miha Youliyue Technology Co ltd
Original Assignee
Shanghai Miha Youliyue Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Miha Youliyue Technology Co ltd filed Critical Shanghai Miha Youliyue Technology Co ltd
Priority to CN202110880805.XA priority Critical patent/CN113590226B/zh
Priority claimed from CN202110880805.XA external-priority patent/CN113590226B/zh
Publication of CN113590226A publication Critical patent/CN113590226A/zh
Application granted granted Critical
Publication of CN113590226B publication Critical patent/CN113590226B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例公开了一种引擎编辑器的启动方法、装置、电子设备及存储介质,其中,该方法包括:在目标引擎的编辑器的启动过程中,加载所述目标引擎的当前项目工程程序集,并对所述当前项目工程程序集进行编译;加载预先构建的代码检测钩子文件,基于所述代码检测钩子文件对所述当前项目工程程序集的编译信息进行检测;如果检测结果为检测已通过,则继续执行开启目标引擎的编辑器的操作。本发明实施例的技术方案,能够在目标引擎的编辑器的启动过程中,对项目工程程序集的编译信息进行自动化检测,保证了项目工程程序集可运行性,而且,如果项目工程程序集出现问题,也能够及时感知,优化了编辑器启动流程,为高效率项目开发奠定了基础。

Description

引擎编辑器的启动方法、装置、电子设备及存储介质
技术领域
本发明实施例涉及计算机应用技术领域,尤其涉及一种引擎编辑器的启动方法、装置、电子设备及存储介质。
背景技术
在项目引擎编辑器启动的过程中,往往需要加载与项目引擎相关的各种各样的代码以及项目资源。项目工程代码作为项目开发最重要的程序集之一,其成功编译直接影响着项目的顺利运行。
目前,只有启动引擎编辑器之后,才能知道项目工程代码是否通过编译。如果项目工程代码有问题,发现问题的时机相对滞后,甚至可能会需要重新启动编辑器,从而影响项目开发效率。
发明内容
本发明实施例提供了一种引擎编辑器的启动方法、装置、电子设备及存储介质,以优化引擎编辑器的启动流程,实现对项目工程程序集的编译信息的自动检测。
第一方面,本发明实施例提供了一种引擎编辑器的启动方法,该方法包括:
在目标引擎的编辑器的启动过程中,加载所述目标引擎的当前项目工程程序集,并对所述当前项目工程程序集进行编译;
加载预先构建的代码检测钩子文件,基于所述代码检测钩子文件对所述当前项目工程程序集的编译信息进行检测;
如果检测结果为检测已通过,则继续执行开启目标引擎的编辑器的操作。
第二方面,本发明实施例还提供了一种引擎编辑器的启动装置,该装置包括:
钩子文件加载模块,用于在目标引擎的编辑器的启动过程中,加载预先构建的代码检测钩子文件;
项目资源检测模块,用于基于所述代码检测钩子文件和资源服务器中的目标加载项目资源对本地加载项目资源进行检测;
开启操作执行模块,用于基于检测结果确定是否继续执行开启目标引擎的编辑器的操作。
第三方面,本发明实施例还提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述程序被所述处理器执行,使得所述处理器实现如本发明任意实施例所提供的引擎编辑器的启动方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的引擎编辑器的启动方法。
本实施例的技术方案,在目标引擎的编辑器的启动过程中,通过加载目标引擎的当前项目工程程序集,并对当前项目工程程序集进行编译,进而可以得到当前项目程序集的编译信息。通过加载预先构建的代码检测钩子文件,基于代码检测钩子文件对当前项目工程程序集的编译信息进行检测,实现了在编辑器启动过程中,对当前项目工程程序集的编译信息的自动检测。通过对当前项目工程程序集的编译信息的自动检测,进而可以得到检测结果,以便于快速确定当前项目工程程序集中的程序是否存在语义或语法错误。如果检测结果为检测已通过,则继续执行开启目标引擎的编辑器的操作,解决了现有技术中只有启动引擎编辑器之后,才能知道项目工程代码是否通过编译的技术问题,达到了对编辑器启动流程的优化,提升了项目的开发效率的技术效果。
附图说明
为了更加清楚地说明本发明示例性实施例的技术方案,下面对描述实施例中所需要用到的附图做一简单介绍。显然,所介绍的附图只是本发明所要描述的一部分实施例的附图,而不是全部的附图,对于本领域普通技术人员,在不付出创造性劳动的前提下,还可以根据这些附图得到其他的附图。
图1是本发明实施例一提供的一种引擎编辑器的启动方法流程示意图;
图2是本发明实施例二提供的一种引擎编辑器的启动方法流程示意图;
图3是本发明实施例三提供的一种引擎编辑器的启动装置模块示意图;
图4是本发明实施例四提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一提供的一种引擎编辑器的启动方法流程示意图,本实施例可适用于通过代码检测钩子文件对当前项目工程程序集的编译信息进行检测,从而确定是否继续执行开启目标引擎的编辑器的操作,该方法可以由引擎编辑器的启动装置来执行,引擎编辑器的启动装置可通过软件和/或硬件方式实现,该引擎编辑器的启动装置可集成于诸如计算机或者服务器等的电子设备中。
如图1所示,本实施例的方法包括:
S110、在目标引擎的编辑器的启动过程中,加载目标引擎的当前项目工程程序集,并对当前项目工程程序集进行编译。
其中,目标引擎可以是当前时刻需要启动编辑器的引擎。可选的,目标引擎可以是游戏引擎,如,Unity3D引擎、Serious引擎、Athena引擎等等。目标引擎的编辑器可以是当前时刻需要启动的引擎编辑器,如,Unity引擎编辑器。当前项目工程程序集可以是当前时刻待加载的基于目标引擎开发项目工程得到的全部源程序代码文件。
具体的,在目标引擎的编辑器的启动过程中,将当前时刻待加载的基于目标引擎开发项目工程得到的全部源程序代码文件加载至内存中,在加载至内存后,可以对全部源程序代码文件进行编译。
在本发明实施例中,目标引擎的编辑器的启动过程可以包括如下步骤:1、初始化目标引擎的基础配置;2、编译目标引擎的全部代码;3、导入目标引擎的项目资源;4、导入目标引擎的数值文件。
其中,编译的目标引擎的全部代码包括:目标引擎的原生代码库、目标引擎的插件层代码、目标引擎的项目工程的全部代码以及目标引擎的第三方库软件开发工具包库或第三方插件库代码。目标引擎的项目资源可以包括角色模型、建筑模型、武器模型、贴图、动作、骨骼、prefab预制体等资源。目标引擎的数值文件可以是描述模型基本数值、动作相关数值或场景相关数值的文件;如,模型高度数值、武器外观数值、武器发射数值、人物动作速度数值、特效时间数值、场景透明度数值等。
可选的,在目标引擎的编辑器的启动过程中,通过下述方式加载目标引擎的当前项目工程程序集,并对当前项目工程程序集进行编译:
在目标引擎的编辑器的启动过程中,可以通过目标引擎的编辑器所在系统的加载器将目标引擎的当前项目工程程序集加载至内存中,在加载至内存后,可以通过所述系统的编译器对加载至内存的当前项目工程程序集进行编译。
需要说明的是,目标引擎的编辑器所在系统可以是Windows、macOS、Linux、iOS、Android或HarmonyOS,具体的系统在此不做限定。
可选的,在目标引擎的编辑器的启动过程中,可以包括执行下述操作中的至少一项:
加载目标引擎的原生代码库;
加载目标引擎的引擎插件层程序集。
其中,原生代码库可以理解为支持目标引擎运行的系统文件。编写原生代码库的语言可以是C++面向对象语言。可选的,原生代码库可以是UnityEngine.dll库。加载目标引擎的原生代码库可以理解为将目标引擎的原生代码库加载至内存中。
其中,引擎插件层程序集可以理解为支持目标引擎编辑器启动的所有插件文件。可选的,引擎插件层程序集中的插件文件可以包括package(包)和plugin(插件)。其中,引擎插件层程序集中包括package的数量可以是一个或多个,引擎插件层程序集中包括plugin的数量可以是一个或多个。加载目标引擎的引擎插件层程序集可以理解为将支持目标引擎编辑器启动的所有插件文件加载至内存中。
可选的,通过下述步骤对当前工程程序集进行编译:
步骤一、确定当前工程程序集中每个源程序文件的文件存储位置。
步骤二、将存储在不同文件存储位置中源程序聚合在一起,将源程序中的宏定义语句转换为对应的程序语句,可以得到处理过的源程序。
步骤三、在得到经过处理的源程序后,可以通过系统的编译器将经过处理的源程序转化为汇编语言程序或机器语言程序。
S120、加载预先构建的代码检测钩子文件,基于代码检测钩子文件对当前项目工程程序集的编译信息进行检测。
其中,代码检测钩子文件可以用于对当前项目工程程序集的编译信息进行检测。代码检测钩子文件可以是.dll文件或.lab文件。可选的,代码检测钩子文件可以是EnginePreEntryHook.dll文件。编译信息可以是对当前项目工程程序集进行编译处理后生成的信息。编译信息可以包括但不限于以下几种信息:语法信息、语义信息、编译时间。
具体的,在对当前项目工程程序集进行编译后,可以得到当前项目工程程序集的编译信息。将预先构建的代码检测钩子文件加载至内存中,在代码检测钩子文件加载至内存后,可以通过代码检测钩子文件对当前项目工程程序集的编译信息进行检测。
为了便于对代码检测钩子文件的维护与优化,可以预设创建的代码检测钩子文件的文件存储位置,进而,可以根据文件存储位置,将代码检测钩子文件存储至文件存储位置,以便于快速有效的加载代码检测钩子文件。需要说明的是,每次接收到对代码检测钩子文件的内部代码进行修改的操作时,将修改内容自动映射至当前工程内文件存储位置下面的待更新的代码检测钩子文件,以对待更新的代码检测钩子文件进行更新。
示例性的,代码检测钩子文件可以是EnginePreEntryHook.dll文件,预设创建代码检测钩子文件的文件存储位置为:游戏工程A/EngineDll/HookDll,那么,可以将EnginePreEntryHook.dll文件存储至当前游戏工程A/EngineDll/HookDll中。进一步,每次接收到对EnginePreEntryHook的内部代码进行修改的操作时,将修改内容自动映射至游戏工程内EngineDll下面的EnginePreEntryHook.dll,以更新EnginePreEntryHook.dll。
可选的,通过下述方式得到预先构建的代码检测钩子文件:
基于C#语法规则,可以得到对当前项目工程程序集的编译信息进行检测的代码检测钩子文件源程序。对得到的代码检测钩子文件源程序进行编译,可以得到与代码检测钩子文件源程序对应的可执行文件,将得到的可执行文件作为代码检测钩子文件。其中,代码检测钩子文件源程序可以是用于检测当前项目工程程序集的编译信息。
可选的,通过下述几种方式加载预先构建的代码检测钩子文件:
方式一、当目标引擎的原生代码库加载完成时,加载预先构建的代码检测钩子文件。
具体的,当目标引擎的原生代码库加载完成时,可以将预先构建的代码检测钩子文件加载至内存中。
方式二、当目标引擎的引擎插件层程序集加载完成时,加载预先构建的代码检测钩子文件。
具体的,当目标引擎的引擎插件层程序集加载完成时,可以将预先构建的代码检测钩子文件加载至内存中。
方式三、当预先构建的项目工程程序集加载完成时,加载预先构建的代码检测钩子文件。
其中,预先构建的项目工程程序集可以是当前时刻基于目标引擎开发项目工程程序集。
具体的,当目标引擎的当前项目工程程序集加载完成时,可以将预先构建的代码检测钩子文件加载至内存中。
可选的,通过下述方式基于代码检测钩子文件对当前项目工程程序集的编译信息进行检测:
通过调起代码检测钩子文件中的检测类对当前项目工程程序集的编译信息进行检测。其中,检测类可以是在代码检测钩子文件中预先定义的类,可以用于对当前项目工程程序集的编译信息进行检测。可选的,检测类可以是PECompileChecking。
可选的,通过下述方式调起代码检测钩子文件中的检测类对当前项目工程程序集的编译信息进行检测:
通过调用代码检测钩子文件中检测类中的编译信息检测方法,即,通过调用检测类中的编译信息检测方法,对当前项目工程程序集的编译信息进行检测。其中,编译信息检测方法可以是在检测类中预先定义的方法,可以用于对当前项目工程程序集的编译信息进行检测。
可选的,通过下述方式调用检测类中的编译信息检测方法,对当前项目工程程序集的编译信息进行检测:
将当前项目工程程序集的编译信息作为实际参数,传递于检测类中的编译信息检测方法的形式参数,在参数传递完成后,可以调用编译信息检测方法,对当前项目工程程序集的编译信息进行检测。
S130、如果检测结果为检测已通过,则继续执行开启目标引擎的编辑器的操作。
其中,检测结果可以是对当前项目工程程序集的编译信息进行检测得到的结果。检测结果可以是检测已通过也可以是检测未通过。
具体的,在对当前项目工程程序集的编译信息进行检测后,可以得到检测结果。如果检测结果为检测已通过,则继续执行开启目标引擎的编辑器的操作。
本实施例的技术方案,在目标引擎的编辑器的启动过程中,通过加载目标引擎的当前项目工程程序集,并对当前项目工程程序集进行编译,进而可以得到当前项目程序集的编译信息。通过加载预先构建的代码检测钩子文件,基于代码检测钩子文件对当前项目工程程序集的编译信息进行检测,实现了在编辑器启动过程中,对当前项目工程程序集的编译信息的自动检测。通过对当前项目工程程序集的编译信息的自动检测,进而可以得到检测结果,以便于快速确定当前项目工程程序集中的程序是否存在语义或语法错误。如果检测结果为检测已通过,则继续执行开启目标引擎的编辑器的操作,解决了现有技术中只有启动引擎编辑器之后,才能知道项目工程代码是否通过编译的技术问题,达到了对编辑器启动流程的优化,提升了项目的开发效率的技术效果。
实施例二
图2是本发明实施例二提供的一种引擎编辑器的启动方法流程示意图,在前述实施例的基础上,可选地,本实施例的引擎编辑器的启动方法还可以包括:如果对所述项目工程程序集的编译信息的检测结果为检测未通过,则基于所述代码检测钩子文件从项目程序仓库中拉取与所述当前项目工程程序集对应的目标工程程序集,并将所述当前项目工程程序集更新为所述目标工程程序集。
其中,与上述实施例相同或者相应的技术术语在此不再赘述。
如图2所示,本实施例的方法具体可包括:
S210、在目标引擎的编辑器的启动过程中,加载目标引擎的当前项目工程程序集,并对当前项目工程程序集进行编译。
S220、加载预先构建的代码检测钩子文件,基于代码检测钩子文件对当前项目工程程序集的编译信息进行检测,得到检测结果。
具体的,在对当前项目工程程序集进行编译后,可以得到当前项目工程程序集的编译信息。将预先构建测代码检测钩子文件加载至内存中,在代码检测钩子文件加载至内存后,可以通过代码检测钩子文件对当前项目工程程序集的编译信息进行检测,进而,可以得到检测结果。
S230、判断检测结果是否检测通过,如果是,则执行S240;如果否,则执行S250。
具体的,在得到检测结果后,可以判断检测结果是否检测通过。进而,可以得到判断结果。在得到判断结果后,可以根据判断结果执行相应的操作。其中,判断结果可以为是也可以为否。若判断结果为是,则表征检测结果为检测已通过;若判断结果为否,则表征检测结果为检测未通过。
S240、继续执行开启目标引擎的编辑器的操作。
具体的,如果判断结果为是,也就是说,如果检测结果为检测已通过,则可以继续执行开启目标引擎的编辑器的操作。
S250、基于代码检测钩子文件从项目程序仓库中拉取与当前项目工程程序集对应的目标工程程序集,并将当前项目工程程序集更新为目标工程程序集。
其中,目标工程程序集可以是当前时刻需要拉取的项目工程程序集。项目程序仓库可以理解为存储与当前项目工程程序集对应的目标工程程序集的仓库。
具体的,如果判断结果为否,也就是说,如果检测结果为检测未通过,则可以通过代码检测钩子文件从项目程序仓库中拉取与当前项目工程程序集对应的目标工程程序集。在拉取完成后,可以将当前项目工程程序集更新为目标工程程序集。
需要说明的是,在S230后,即在检测结果是否检测通过后,执行S240和S250的顺序不做具体限定。
可选的,通过下述方式基于代码检测钩子文件从项目程序仓库中拉取与当前项目工程程序集对应的目标工程程序集,并将当前项目工程程序集更新为目标工程程序集:
通过调起代码检测钩子文件中的更新类,从项目程序仓库中拉取与当前项目工程程序集对应的目标工程程序集,并将当前项目工程程序集更新为目标工程程序集。其中,更新类可以是在代码检测钩子文件中预先定义的类,可以用于从项目程序仓库中拉取与当前项目工程程序集对应的目标工程程序集,并将当前项目工程程序集更新为目标工程程序集。可选的,更新类可以是PECompileUpdater。
可选的,通过下述步骤调起代码检测钩子文件中的更新类,从项目程序仓库中拉取与当前项目工程程序集对应的目标工程程序集,并将当前项目工程程序集更新为目标工程程序集:
步骤一、通过调用更新类中的通信方法,建立启动目标引擎的终端和项目程序仓库之间的通信。
其中,通信方法可以是预先在代码检测钩子文件中更新类中定义的方法,可以用于建立启动目标引擎的终端和项目程序仓库之间的通信。
具体的,通过调用更新类中的通信方法,可以建立启动目标引擎的终端和项目程序仓库之间的通信连接,以使启动目标引擎的终端和项目程序仓库能够数据传输和信息传输。
可选的,通过下述方式调用更新类中的通信方法,建立启动目标引擎的终端和项目程序仓库之间的通信:
将启动目标引擎的终端和项目程序仓库作为分别作为实际参数,传递于更新类中的通信方法与实际参数对应的形式参数,在参数传递完成后,可以调用更新类中的通信方法,建立启动目标引擎的终端和项目程序仓库之间的通信。
步骤二、在通信建立成功后,从项目程序仓库中拉取与当前项目工程程序集对应的目标工程程序集。
具体的,在通信建立成功后,可以从项目程序仓库中拉取与当前项目工程程序集对应的目标工程程序集。
步骤三、在目标工程程序集拉取成功后,通过调用更新类中的工程程序集更新方法,将当前项目工程程序集更新为目标工程程序集。
其中,工程程序集更新方法可以是预先在代码检测钩子文件中更新类中定义的方法,可以用于将当前项目工程程序集更新为目标工程程序集。具体的,在目标工程程序集拉取成功后,可以调用更新类中的工程程序集更新方法,进而可以将当前项目工程程序集更新为目标工程程序集。
可选的,在将当前项目工程程序集更新为目标工程程序集之后,还包括:
对目标工程程序集进行编译,并基于代码检测钩子文件对目标项目工程程序集的编译信息进行检测。
具体的,在将当前项目工程程序集更新为目标工程程序集之后,可以将目标工程程序集加载至内存中,在目标工程程序集加载至内存后,可以对目标工程程序集进行编译。进而,可以得到目标工程程序集的编译信息。在得到目标工程程序集的编译信息后,可以通过代码检测钩子文件对目标项目工程程序集的编译信息进行检测。
可选的,如果目标项目工程程序集的编译信息未通过检测,则生成编译检测提示信息,并展示编译检测提示信息。
其中,编译检测提示信息可以是在目标项目工程程序集的编译信息未通过检测后生成的信息。展示编译检测提示信息好处在于能够快速有效且直观的确定目标项目工程程序集的编译信息是否通过检测。
具体的,如果目标项目工程程序集的编译信息未通过检测,则可以生成编译检测提示信息。在生成提示信息后,可以将生成的提示信息进行展示。需要说明的是,展示编译检测提示信息的形式可以有多种,在此具体展示形式不做具体限定,如,以弹出窗口的形式将生成的提示信息进行展示。
可选的,如果目标项目工程程序集的编译信息未通过检测,则获取目标项目工程程序集的编译信息的日志信息,基于日志信息生成检测提示信息。
其中,日志信息可以是通过对目标项目工程程序集的编译信息进行检测进而生成的信息。日志信息可以包括但不限于以下几种信息:时间信息、错误代码位置信息、错误代码原因信息。检测提示信息可以是基于日志信息生成的提示信息。
具体的,如果目标项目工程程序集的编译信息未通过检测,则可以基于目标项目工程程序集的编译信息生成日志信息,在日志信息生成后,可以获取目标项目工程程序集的编译信息的日志信息,进而可以基于日志信息生成检测提示信息。
可选的,以下述两种方式为例展示检测提示信息:
方式一、在启动目标引擎的当前终端展示检测提示信息。
其中,当前终端可以是当前时刻启动目标引擎的终端。
具体的,在生成检测提示信息之后,可以在启动目标引擎的终端上将检测提示信息进行展示。
方式二、将检测提示信息发送给至少一个目标终端,以使目标终端展示检测提示信息。
其中,目标终端可以是当前时刻需要接收检测提示信息的终端。目标终端的数量可以是一个、两个或两个以上。
具体的,在生成检测提示信息之后,可以将生成的检测提示信息发送至目标终端,以使目标终端展示检测提示信息。
本实施例的技术方案,通过加载预先构建的代码检测钩子文件,基于代码检测钩子文件对当前项目工程程序集的编译信息进行检测,得到检测结果。判断检测结果是否检测通过。如果是,则继续执行开启目标引擎的编辑器的操作。如果否,则基于代码检测钩子文件从项目程序仓库中拉取与当前项目工程程序集对应的目标工程程序集,并将当前项目工程程序集更新为目标工程程序集,达到了对编辑器启动流程的优化,提升了项目的开发效率的技术效果。
实施例三
图3是本发明实施例三提供的一种引擎编辑器的启动装置模块示意图,本发明提供了一种引擎编辑器的启动装置,该装置包括:程序集编译模块310、编译信息检测模块320和开启操作执行模块330。
其中,程序集编译模块310,用于在目标引擎的编辑器的启动过程中,加载所述目标引擎的当前项目工程程序集,并对所述当前项目工程程序集进行编译;
编译信息检测模块320,用于加载预先构建的代码检测钩子文件,基于所述代码检测钩子文件对所述当前项目工程程序集的编译信息进行检测;
开启操作执行模块330,用于如果检测结果为检测已通过,则继续执行开启目标引擎的编辑器的操作。
本实施例的技术方案,通过程序集编译模块,在目标引擎的编辑器的启动过程中,加载目标引擎的当前项目工程程序集,并对当前项目工程程序集进行编译,进而可以得到当前项目程序集的编译信息。通过编译信息检测模块,加载预先构建的代码检测钩子文件,基于代码检测钩子文件对当前项目工程程序集的编译信息进行检测,实现了在编辑器启动过程中,对当前项目工程程序集的编译信息的自动检测。通过对当前项目工程程序集的编译信息的自动检测,进而可以得到检测结果,以便于快速确定当前项目工程程序集中的程序是否存在语义或语法错误。通过开启操作执行模块,如果检测结果为检测已通过,则继续执行开启目标引擎的编辑器的操作,解决了现有技术中只有启动引擎编辑器之后,才能知道项目工程代码是否通过编译的技术问题,达到了对编辑器启动流程的优化,提升了项目的开发效率的技术效果。
可选的,该装置还包括:项目工程程序集更新模块,用于如果对所述项目工程程序集的编译信息的检测结果为检测未通过,则基于所述代码检测钩子文件从项目程序仓库中拉取与所述当前项目工程程序集对应的目标工程程序集,并将所述当前项目工程程序集更新为所述目标工程程序集。
可选的,在所述将所述当前项目工程程序集更新为所述目标工程程序集之后,该装置还包括:目标工程程序集编译模块,用于对所述目标工程程序集进行编译,并基于所述代码检测钩子文件对所述目标项目工程程序集的编译信息进行检测。
可选的,该装置还包括:提示信息展示模块,用于如果所述目标项目工程程序集的编译信息未通过检测,则生成编译检测提示信息,并展示所述编译检测提示信息。
可选的,提示信息展示模块,还用于获取所述目标项目工程程序集的编译信息的日志信息,基于所述日志信息生成检测提示信息。
可选的,提示信息展示模块,用于在启动所述目标引擎的当前终端展示所述检测提示信息;或者,将所述检测提示信息发送给至少一个目标终端,以使所述目标终端展示所述检测提示信息。
可选的,在目标引擎的编辑器的启动过程中,还包括执行下述操作中的至少一项:加载所述目标引擎的原生代码库;加载所述目标引擎的引擎插件层程序集;编译信息检测模块320,包括下述操作中的至少一项:用于当所述目标引擎的原生代码库加载完成时,加载预先构建的代码检测钩子文件;或者,用于当所述目标引擎的引擎插件层程序集加载完成时,加载预先构建的代码检测钩子文件;又或者,用于当预先构建的项目工程程序集加载完成时,加载预先构建的代码检测钩子文件。
上述装置可执行本发明任意实施例所提供的引擎编辑器的启动方法,具备执行引擎编辑器的启动方法相应的功能模块和有益效果。
值得注意的是,上述引擎编辑器的启动装置所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明实施例的保护范围。
实施例四
图4是本发明实施例四提供的一种电子设备的结构示意图。图4示出了适于用来实现本发明任一实施方式的示例性电子设备12的框图。图4显示的电子设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。设备12典型的是承担配置信息的处理的电子设备。
如图4所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,存储器28,连接不同组件(包括存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
电子设备12典型地包括多种计算机可读介质。这些介质可以是任何能够被电子设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机装置可读介质,例如随机存取存储器(Random Access Memory,RAM)30和/或高速缓存存储器32。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如只读光盘(Compact Disc-Read Only Memory,CD-ROM)、数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品40,该程序产品40具有一组程序模块42,这些程序模块被配置以执行本发明各实施例的功能。程序产品40,可以存储在例如存储器28中,这样的程序模块42包括但不限于一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
电子设备12也可以与一个或多个外部设备14(例如键盘、鼠标、摄像头等和显示器)通信,还可与一个或者多个使得用户能与该电子设备12交互的设备通信,和/或与使得该电子设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,电子设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local Area Network,LAN),广域网WideArea Network,WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与电子设备12的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Independent Disks,RAID)装置、磁带驱动器以及数据备份存储装置等。
处理器16通过运行存储在存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明上述实施例所提供的引擎编辑器的启动方法,该方法包括:
在目标引擎的编辑器的启动过程中,加载所述目标引擎的当前项目工程程序集,并对所述当前项目工程程序集进行编译;加载预先构建的代码检测钩子文件,基于所述代码检测钩子文件对所述当前项目工程程序集的编译信息进行检测;如果检测结果为检测已通过,则继续执行开启目标引擎的编辑器的操作。
当然,本领域技术人员可以理解,处理器还可以实现本发明任一实施例所提供的引擎编辑器的启动方法。
实施例五
本发明实施例五还提供一种计算机可读存储介质,其上存储有计算机程序,特征在于,该程序被处理器执行时,例如本发明上述实施例所提供的引擎编辑器的启动方法,该方法包括:
在目标引擎的编辑器的启动过程中,加载所述目标引擎的当前项目工程程序集,并对所述当前项目工程程序集进行编译;加载预先构建的代码检测钩子文件,基于所述代码检测钩子文件对所述当前项目工程程序集的编译信息进行检测;如果检测结果为检测已通过,则继续执行开启目标引擎的编辑器的操作。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种引擎编辑器的启动方法,其特征在于,包括:
在目标引擎的编辑器的启动过程中,加载所述目标引擎的当前项目工程程序集,并对所述当前项目工程程序集进行编译;
加载预先构建的代码检测钩子文件,基于所述代码检测钩子文件对所述当前项目工程程序集的编译信息进行检测;
如果检测结果为检测已通过,则继续执行开启目标引擎的编辑器的操作。
2.根据权利要求1所述的方法,其特征在于,还包括:
如果对所述项目工程程序集的编译信息的检测结果为检测未通过,则基于所述代码检测钩子文件从项目程序仓库中拉取与所述当前项目工程程序集对应的目标工程程序集,并将所述当前项目工程程序集更新为所述目标工程程序集。
3.根据权利要求2所述的方法,其特征在于,在所述将所述当前项目工程程序集更新为所述目标工程程序集之后,还包括:
对所述目标工程程序集进行编译,并基于所述代码检测钩子文件对所述目标项目工程程序集的编译信息进行检测。
4.根据权利要求3所述的方法,其特征在于,还包括:
如果所述目标项目工程程序集的编译信息未通过检测,则生成编译检测提示信息,并展示所述编译检测提示信息。
5.根据权利要求3所述的方法,其特征在于,还包括:
获取所述目标项目工程程序集的编译信息的日志信息,基于所述日志信息生成检测提示信息。
6.根据权利要求4所述的方法,其特征在于,所述展示所述检测提示信息,包括:
在启动所述目标引擎的当前终端展示所述检测提示信息;或者,
将所述检测提示信息发送给至少一个目标终端,以使所述目标终端展示所述检测提示信息。
7.根据权利要求1所述的方法,其特征在于,在目标引擎的编辑器的启动过程中,还包括执行下述操作中的至少一项:
加载所述目标引擎的原生代码库;
加载所述目标引擎的引擎插件层程序集;
所述加载预先构建的代码检测钩子文件,包括下述操作中的至少一项:
当所述目标引擎的原生代码库加载完成时,加载预先构建的代码检测钩子文件;或者,
当所述目标引擎的引擎插件层程序集加载完成时,加载预先构建的代码检测钩子文件;又或者,
当预先构建的项目工程程序集加载完成时,加载预先构建的代码检测钩子文件。
8.一种引擎编辑器的启动装置,其特征在于,包括:
程序集编译模块,用于在目标引擎的编辑器的启动过程中,加载所述目标引擎的当前项目工程程序集,并对所述当前项目工程程序集进行编译;
编译信息检测模块,用于加载预先构建的代码检测钩子文件,基于所述代码检测钩子文件对所述当前项目工程程序集的编译信息进行检测;
开启操作执行模块,用于如果检测结果为检测已通过,则继续执行开启目标引擎的编辑器的操作。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的引擎编辑器的启动方法。
10.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-7中任一所述的引擎编辑器的启动方法。
CN202110880805.XA 2021-08-02 引擎编辑器的启动方法、装置、电子设备及存储介质 Active CN113590226B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110880805.XA CN113590226B (zh) 2021-08-02 引擎编辑器的启动方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110880805.XA CN113590226B (zh) 2021-08-02 引擎编辑器的启动方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113590226A true CN113590226A (zh) 2021-11-02
CN113590226B CN113590226B (zh) 2024-05-31

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101594627A (zh) * 2008-05-26 2009-12-02 北京摩软科技有限公司 一种模拟移动终端故障的装置和方法
US20120159460A1 (en) * 2010-12-21 2012-06-21 Sap Ag Preferred compilation
CN106815131A (zh) * 2016-12-27 2017-06-09 珠海金山网络游戏科技有限公司 一种基于Unity引擎的游戏资源检查方法和系统
CN112148388A (zh) * 2020-10-22 2020-12-29 北京嘀嘀无限科技发展有限公司 一种计算机程序的挂钩方法和系统
CN112199093A (zh) * 2020-10-15 2021-01-08 腾讯科技(深圳)有限公司 资源检查方法、装置、设备及计算机可读存储介质
CN112667315A (zh) * 2020-12-23 2021-04-16 上海米哈游天命科技有限公司 游戏引擎编辑器启动方法、装置、电子设备和存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101594627A (zh) * 2008-05-26 2009-12-02 北京摩软科技有限公司 一种模拟移动终端故障的装置和方法
US20120159460A1 (en) * 2010-12-21 2012-06-21 Sap Ag Preferred compilation
CN106815131A (zh) * 2016-12-27 2017-06-09 珠海金山网络游戏科技有限公司 一种基于Unity引擎的游戏资源检查方法和系统
CN112199093A (zh) * 2020-10-15 2021-01-08 腾讯科技(深圳)有限公司 资源检查方法、装置、设备及计算机可读存储介质
CN112148388A (zh) * 2020-10-22 2020-12-29 北京嘀嘀无限科技发展有限公司 一种计算机程序的挂钩方法和系统
CN112667315A (zh) * 2020-12-23 2021-04-16 上海米哈游天命科技有限公司 游戏引擎编辑器启动方法、装置、电子设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
韩雪: "支持安全编译算法的高可靠嵌入式C语言编辑器的设计", 杭州师范大学学报(自然科学版), vol. 10, no. 04, 30 July 2011 (2011-07-30), pages 85 - 89 *

Similar Documents

Publication Publication Date Title
CN111740948B (zh) 数据包发布方法、动态更新方法、装置、设备及介质
US11030074B2 (en) Code update based on detection of change in runtime code during debugging
CN113590327A (zh) 项目资源检测方法、装置、电子设备及存储介质
CN111124371A (zh) 一种基于游戏的数据处理方法、装置、设备及存储介质
CN110659210A (zh) 一种信息获取方法、装置、电子设备及存储介质
CN113986402A (zh) 函数调用方法、装置、电子设备及存储介质
CN113760306A (zh) 安装软件的方法、装置、电子设备及存储介质
CN114217789A (zh) 功能组件拓展方法、装置、设备、存储介质及程序产品
CN109522174B (zh) 控制adb使能的方法、装置、终端及存储介质
CN113590446A (zh) 数值文件的检测方法、装置、电子设备及存储介质
CN113590179B (zh) 插件检测方法、装置、电子设备及存储介质
CN113590226B (zh) 引擎编辑器的启动方法、装置、电子设备及存储介质
US20170083298A1 (en) Resilient format for distribution of ahead-of-time compiled code components
CN113590226A (zh) 引擎编辑器的启动方法、装置、电子设备及存储介质
CN113590225B (zh) 贴图检测方法、装置、电子设备及存储介质
CN111124423B (zh) 一种基于多平台的编译检测方法、装置、服务器及介质
CN113590221A (zh) 着色器变体数量的检测方法、装置、电子设备及存储介质
CN113590224B (zh) 服务器的检测方法、装置、电子设备及存储介质
CN112667310A (zh) 游戏引擎编辑器启动方法、装置、电子设备和存储介质
CN113590224A (zh) 服务器的检测方法、装置、电子设备及存储介质
CN111782196A (zh) 基于mvp架构的开发方法及装置
CN113986388B (zh) 程序集加载方法、系统、电子设备及存储介质
CN113590223A (zh) 引擎编辑器的启动方法、装置、电子设备及存储介质
CN113590228A (zh) 引擎编辑器的启动方法、装置、电子设备及存储介质
CN115454827B (zh) 兼容性检测方法、系统、设备和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant