CN114741068A - 对象访问方法、代码生成方法、装置、设备及存储介质 - Google Patents
对象访问方法、代码生成方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114741068A CN114741068A CN202210365488.2A CN202210365488A CN114741068A CN 114741068 A CN114741068 A CN 114741068A CN 202210365488 A CN202210365488 A CN 202210365488A CN 114741068 A CN114741068 A CN 114741068A
- Authority
- CN
- China
- Prior art keywords
- unit
- identifier
- target
- code
- lua
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
Abstract
本申请实施例提供一种对象访问方法、代码生成方法、装置、设备及存储介质,当用户想要在lua运行环境中访问需要被访问的特定unity对象时,可以执行解析触发操作使得计算机设备解析目标lua代码文件中的对象访问代码,在用户操作界面显示对象标识选择页面,用户可以直接在对象标识选择页面中选择此次想要访问的特定unity对象的对象标识,当计算机设备确定该对象标识对应的特定unity对象的数据查找标识后,可以根据用户选择的对象标识以及确定的数据查找标识对想要访问的特定unity对象进行访问,避免用户在lua运行环境中人为拼写想要访问的unity对象的查询路径,提升unity项目的开发效率。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种对象访问方法、代码生成方法、装置、设备及存储介质。
背景技术
在unity的游戏项目中,往往有大量的在lua运行环境中查找和缓存unity对象的情况,在lua运行环境中通过Xlua(用于实现lua语言与unity中C#语言的交互)查找unity对象时,需要将unity对象的查询路径以字符串的形式通过Xlua传递到lua运行环境,开发者需要在lua运行环境中人为拼写unity对象的查询路径实现查询和缓存unity对象的逻辑代码,然而如果unity对象的查询路径太长,人为拼写容易出错,并且难以查错,会导致unity项目开发效率低下。
发明内容
本申请实施例提供一种对象访问方法、代码生成方法、装置、设备及存储介质,可以提升unity项目的开发效率。
本申请实施例提供一种对象访问方法,包括:
响应于在lua运行环境下针对目标lua代码文件的解析触发操作,获取所述目标lua代码文件,其中,所述目标lua代码文件中包括lua语言的对象访问代码,所述对象访问代码基于unity预设体代码生成,且包括unity预设体中在所述lua运行环境下需要被访问的特定unity对象的对象标识和数据查找标识,所述数据查找标识用于获取所述特定unity对象的对象数据;
解析所述目标lua代码文件中的对象访问代码,基于解析结果在用户操作界面显示对象标识选择页面,所述对象标识选择页面包括所述特定unity对象的对象标识;
响应于针对所述对象标识选择页面中的对象标识的选择操作,基于所述数据查找标识访问被选中的对象标识对应的特定unity对象。
相应地,本申请实施例提供一种代码生成方法,包括:
确定目标unity预设体包括的unity对象中,在lua运行环境下需要被访问的特定unity对象;
基于所述目标unity预设体获取所述特定unity对象的数据查找标识,将所述数据查找标识记录在预设数据结构中得到对象记录信息,所述预设数据结构中记录的数据查找标识的位置信息为整型数据;
将所述目标unity预设体以及所述对象记录信息导入至所述lua运行环境下;
在所述lua运行环境下获取lua语言的对象访问代码模板,所述对象访问代码模板用于在所述lua运行环境下访问unity对象,且包括与所述特定unity对象关联的若干待替换代码段;
基于所述特定unity对象的对象标识、所述对象记录信息中的所述数据查找标识,以及所述目标unity预设体的对象数据,在所述对象访问代码模板的待替换代码段中进行代码替换,得到对象访问代码,其中,所述对象访问代码包括所述特定unity对象的对象标识和数据查找标识;
基于所述对象访问代码得到目标lua代码文件,所述目标lua代码文件用于在被解析后显示所述特定unity对象的对象标识以供用户选择,并在选择后基于所述数据查找标识访问被选择的对象标识对应的特定unity对象。
相应的,本申请实施例还提供一种对象访问装置,包括:
代码文件获取单元,用于响应于在Lua运行环境下针对目标lua代码文件的解析触发操作,获取所述目标lua代码文件,其中,所述目标lua代码文件中包括lua语言的对象访问代码,所述对象访问代码基于unity预设体代码生成,且包括unity预设体中在所述lua运行环境下需要被访问的特定unity对象的对象标识和数据查找标识,所述数据查找标识用于获取所述特定unity对象的对象数据;
标识显示单元,用于解析所述目标lua代码文件中的对象访问代码,基于解析结果在用户操作界面显示对象标识选择页面,所述对象标识选择页面包括所述特定unity对象的对象标识;
访问单元,用于响应于针对所述对象标识选择页面中的对象标识的选择操作,基于所述数据查找标识访问被选中的对象标识对应的特定unity对象。
可选的,所述对象访问代码中包括对象本体访问代码和每个特定unity对象的挂载组件的组件访问代码,所述组件访问代码中包括特定unity对象的对象标识以及挂载组件的组件标识,所述对象数据中包括挂载组件的组件标识和组件数据;
所述访问单元还用于:
响应于针对所述对象标识选择页面中的对象标识的选择操作,确定被选择的对象标识对应的特定unity对象,为进行访问的目标unity对象;
基于所述解析结果在所述用户操作界面显示组件标识选择页面,所述组件标识选择页面包括所述目标unity对象的目标挂载组件的目标组件标识;
响应于针对所述组件标识选择页面中的目标组件标识的选择操作,基于所述目标unity对象的数据查找标识,访问被选择的目标组件标识对应的目标挂载组件。
相应的,本申请实施例还提供一种代码生成装置,包括:
对象确定单元,用于确定目标unity预设体包括的unity对象中,在lua运行环境下需要被访问的特定unity对象;
记录单元,用于基于所述目标unity预设体获取所述特定unity对象的数据查找标识,将所述数据查找标识记录在预设数据结构中得到对象记录信息,所述预设数据结构中记录的数据查找标识的位置信息为整型数据;
导入单元,用于将所述目标unity预设体以及所述对象记录信息导入至所述lua运行环境下;
代码模板获取单元,用于在所述lua运行环境下获取lua语言的对象访问代码模板,所述对象访问代码模板用于在所述lua运行环境下访问unity对象,且包括与所述特定unity对象关联的若干待替换代码段;
替换单元,用于基于所述特定unity对象的对象标识、所述对象记录信息中的所述数据查找标识,以及所述目标unity预设体的对象数据,在所述对象访问代码模板的待替换代码段中进行代码替换,得到对象访问代码,其中,所述对象访问代码包括所述特定unity对象的对象标识和数据查找标识;
代码文件得到单元,用于基于所述对象访问代码得到目标lua代码文件,所述目标lua代码文件用于在被解析后显示所述特定unity对象的对象标识以供用户选择,并在选择后基于所述数据查找标识访问被选择的对象标识对应的特定unity对象。
可选的,所述对象确定单元还用于:
基于所述目标unity预设体的代码在Unity运行环境下显示所述目标unity预设体的设置子页面,所述设置子页面包括所述目标unity预设体包含的unity对象的对象标识,以及对象设置区域;
当所述目标unity预设体包含的unity对象的目标对象标识被选中后,响应于在所述目标对象标识对应的对象设置区域的访问标记操作,确定所述目标对象标识对应的unity对象为在所述lua运行环境下需要被访问的所述特定unity对象。
可选的,所述对象确定单元还用于:
当所述目标unity预设体包含的unity对象的目标对象标识被选中后,在所述Unity运行环境下显示所述目标对象标识对应的选中unity对象的目标对象设置区域,所述目标对象设置区域中包括所述选中unity对象的对象属性;
响应于在所述目标对象设置区域中针对所述选中unity对象的对象属性添加标签的操作,确定所述选中unity对象为在所述lua运行环境下需要被访问的所述特定unity对象。
可选的,所述预设数据结构为数组结构,所述记录单元还用于:
基于所述目标unity预设体获取所述特定unity对象的数据查找标识;
若所述特定unity对象为多个,将各所述特定unity对象的数据查找标识按照预设顺序依次记录至所述数组结构中,得到所述对象记录信息。
可选的,所述记录单元还用于:
为所述目标unity预设体挂载访问记录组件;
将所述对象记录信息存储至所述访问记录组件中;
所述导入单元还用于:
响应于针对所述目标unity预设体的对象数据和所述访问记录组件从unity运行环境至所述lua运行环境的导入操作,将所述目标unity预设体以及所述对象记录信息导入至所述lua运行环境下。
可选的,所述替换单元还用于:
基于所述特定unity对象的对象标识、所述对象记录信息中的所述数据查找标识,以及所述目标unity预设体的对象数据,生成各所述待替换代码段对应的目标替换代码段;
利用各所述目标替换代码段替换所述对象访问代码模板中对应的待替换代码段,得到所述对象访问代码。
可选的,所述待替换代码段包括待替换标识代码段、待替换对象本体访问代码段和待替换组件访问代码段,所述替换单元还用于:
从所述目标unity预设体的对象数据中获取所述目标unity预设体的预设体标识,作为所述待替换标识代码段对应的目标替换代码段;
基于所述对象记录信息中的所述数据查找标识,以及所述目标unity预设体的对象数据生成查询并缓存所述特定unity对象的代码段,作为所述待替换对象本体访问代码段对应的目标替换代码段;
基于所述待替换对象本体访问代码段对应的目标替换代码段、以及所述特定unity对象的对象标识,生成所述待替换组件访问代码段对应的目标替换代码段。
可选的,所述对象记录信息中的预设数据结构为数组结构,所述替换单元还用于:
确定各所述特定unity对象的数据查找标识记录在所述数组结构中的下标;
生成基于所述下标在所述数组结构中确定所述特定unity对象的数据查找标识的第一代码段;
根据确定的数据查找标识,生成在所述目标unity预设体的对象数据中查询并缓存所述特定unity对象的对象数据的第二代码段;
将所述第一代码段和所述第二代码段合并作为所述待替换对象本体访问代码段对应的目标替换代码段。
可选的,所述替换单元还用于:
根据所述第一代码段获取所述特定unity对象的数据查找标识;
根据所述第二代码段缓存的所述特定unity对象的对象数据中,获取所述特定unity对象的挂载组件的组件标识;
基于所述特定unity对象的对象标识、所述数据查找标识和所述组件标识生成所述待替换组件访问代码段对应的目标替换代码段。
可选的,所述替换单元还用于:
若所述特定unity对象的挂载组件有多个,基于所述特定unity对象的对象标识、所述数据查找标识和每个所述挂载组件的组件标识,生成访问每个所述挂载组件的代码段;
将访问每个所述挂载组件的代码段拼接起来,生成所述待替换组件访问代码段对应的目标替换代码段。
可选的,所述替换单元还用于:
利用各所述目标替换代码段替换所述对象访问代码模板中对应的待替换标识代码段、待替换对象本体访问代码段和待替换组件访问代码段,得到包括标识代码段、对象本体访问代码段和组件访问代码段的对象访问代码。
同样的,本申请实施例还提供一种计算机设备,包括:
存储器,用于存储计算机程序;
处理器,用于在执行所述对象访问方法和所述代码生成方法任一项的步骤。
此外,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述对象访问方法和所述代码生成方法任一项的步骤。
本申请实施例提供一种对象访问方法、代码生成方法、装置、设备及存储介质,当用户想要在lua运行环境中访问需要被访问的特定unity对象时,可以执行解析触发操作使得计算机设备解析目标lua代码文件中的对象访问代码,在用户操作界面显示包括特定unity对象的对象标识的对象标识选择页面,用户可以直接在对象标识选择页面中选择此次想要访问的特定unity对象的对象标识,当计算机设备确定该对象标识对应的特定unity对象的数据查找标识后,计算机设备可以根据用户选择的对象标识以及确定的数据查找标识对想要访问的特定unity对象进行访问,避免用户在lua运行环境中人为拼写想要访问的unity对象的查询路径,从而避免在lua运行环境中人为拼写unity对象的查询路径出错,提升unity项目的开发效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要兑现的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的对象访问装置的系统示意图;
图2是本申请实施例提供的对象访问方法的流程示意图;
图3是本申请实施例提供的对象标识选择页面示意图;
图4是本申请实施例提供的组件标识选择页面示意图;
图5是本申请实施例提供的代码生成方法的流程示意图;
图6是本申请实施例提供的设置子页面示意图;
图7是本申请实施例提供的数组加入示意图;
图8是本申请实施例提供的替换过程示意图;
图9是本申请实施例提供的待替换组件访问代码段的模板代码示意图;
图10是本申请实施例提供的对象访问装置的结构示意图;
图11是本申请实施例提供的代码生成装置的结构示意图;
图12是本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请实施例提供一种对象访问方法、代码生成方法、装置、设备及存储介质。具体地,本申请实施例的对象访问方和代码生成方法可以由计算机设备执行,其中,该计算机设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(Personal Computer,PC)、个人数字助理(Personal DigitalAssistant,PDA)等终端设备,终端还可以包括客户端,该客户端可以是游戏应用客户端、携带有游戏程序的前端浏览器客户端或即时通信客户端等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络服务、以及大数据和人工智能平台等基础云计算服务的云服务器。
例如,当对象访问方法运行于终端时,终端设备存储有产生lua运行环境的lua代码编写应用程序并用于呈现用户操作界面中的场景。终端设备用于通过用户操作界面与用户进行交互,使得用户可以在用户操作界面中进行代码编写,例如通过终端设备下载安装lua代码编写应用程序(例如,AndroLua、Qlua、Lua编辑器等)并运行。该终端设备将用户操作界面提供给用户的方式可以包括多种,例如,可以渲染显示在终端设备的显示屏上,或者,通过全息投影呈现用户操作界面。例如,终端设备可以包括触控显示屏和处理器,该触控显示屏用于呈现用户操作界面以及接收用户作用于用户操作界面产生的操作指令,该用户操作界面包括代码编写界面,该处理器用于运行lua代码编写应用程序、生成用户操作界面、响应操作指令以及控制用户操作界面在触控显示屏上的显示。
例如,当代码生成方法运行于终端时,终端设备存储有产生lua运行环境的lua代码编写应用程序(例如,AndroLua、Qlua、Lua编辑器等)和产生unity运行环境的代码编写应用程序(例如,unity、Microsoft Visual Studio等),并用于呈现用户操作界面中的场景。终端设备用于通过用户操作界面与用户进行交互,使得用户可以在用户操作界面中进行代码编写,例如通过终端设备下载安装lua代码编写应用程序并运行。该终端设备将用户操作界面提供给用户的方式可以包括多种,例如,可以渲染显示在终端设备的显示屏上,或者,通过全息投影呈现用户操作界面。例如,终端设备可以包括触控显示屏和处理器,该触控显示屏用于呈现用户操作界面以及接收用户作用于用户操作界面产生的操作指令,该用户操作界面包括代码编写界面,该处理器用于运行lua代码编写应用程序、生成用户操作界面、响应操作指令以及控制用户操作界面在触控显示屏上的显示。
请参阅图1,图1为本申请实施例提供的对象访问装置的系统示意图。该系统可以包括至少一个终端。终端用于响应于在lua运行环境下针对目标lua代码文件的解析触发操作,获取目标lua代码文件,其中,目标lua代码文件中包括lua语言的对象访问代码,对象访问代码基于unity预设体代码生成,且包括unity预设体中在lua运行环境下需要被访问的特定unity对象的对象标识和数据查找标识,数据查找标识用于获取特定unity对象的对象数据;解析目标lua代码文件中的对象访问代码,基于解析结果在用户操作界面显示对象标识选择页面,对象标识选择页面包括特定unity对象的对象标识;响应于针对对象标识选择页面中的对象标识的选择操作,基于数据查找标识访问被选中的对象标识对应的特定unity对象。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本实施例将从对象访问装置的角度进行描述,该对象访问装置具体可以集成在终端设备中,该终端设备可以包括智能手机、笔记本电脑、平板电脑以及个人计算机等设备。
本申请实施例提供的一种对象访问方法,该方法可以由终端的处理器执行,如图2所示,该对象访问方法的具体流程主要包括步骤201至步骤203,详细说明如下:
步骤201、响应于在lua运行环境下针对目标lua代码文件的解析触发操作,获取目标lua代码文件,其中,目标lua代码文件中包括lua语言的对象访问代码,对象访问代码基于unity预设体代码生成,且包括unity预设体中在lua运行环境下需要被访问的特定unity对象的对象标识和数据查找标识,数据查找标识用于获取特定unity对象的对象数据。
在本申请实施例中,特定unity对象是在unity运行环境下创建的对象中需要被用户在lua运行环境中访问的unity对象,其中,unity对象是unity运行环境中的基础对象,表示任何可以存在于游戏场景中的事物,例如游戏场景中的角色、道具和景物等。
在本申请实施例中,unity预设体是可以在游戏场景中被重复使用的unity对象,unity预设体可以是一个unity对象,例如一堵墙的模型、一棵树的模型等,unity预设体也可以是多个关联的unity对象组合形成,例如,由多面墙的模型、屋顶模型、窗户模型、门模型等组成的建筑模型等。当unity预设体是由多个关联的unity对象组成时,多个关联的unity对象可以是以树型结构组合形成unity预设体,即unity预设体为根节点,关联的unity对象为根节点对应的子节点,例如,建筑模型为根节点,墙的模型、屋顶模型、窗户模型、门模型等为根节点包括的子节点。此外,unity预设体和unity对象可以是在unity运行环境中进行代码编写得到。
在本申请实施例中,对象访问代码是用于在Lua运行环境下访问unity对象的代码,由于对象访问代码是在lua运行环境下使用,所以对象访问代码可以是属于lua语言。
在本申请实施例中,当用户想要在lua运行环境下访问需要被访问的特定unity对象时,可以对存储对象访问代码的目标lua代码文件执行解析触发操作,从而触发终端解析目标lua代码文件中的对象访问代码。此外,解析触发操作不受限定,可以根据实际情况灵活设置,例如,可以在lua运行环境的用户操作界面输入触发终端解析目标lua代码文件的字符,即若目标lua代码文件为ExampleWrap文件,则用户的解析触发操作可以是在lua运行环境中输入local uiwrap=require(‘UI.ExampleWrap’).nue(rootGo),其中,传入rootGo是特定unity对象所属的预设体实例化出来的游戏对象,uiwrap代表根据特定unity对象的属性访问函数构建的表。
步骤202、解析目标lua代码文件中的对象访问代码,基于解析结果在用户操作界面显示对象标识选择页面,对象标识选择页面包括特定unity对象的对象标识。
在本申请实施例中,由于对象访问代码是可以访问特定unity对象的代码,解析对象访问代码在用户操作界面显示对象标识选择页面,从而给用户提供访问unity对象时的代码补全和提示信息。例如,如图3所示的对象标识选择页面示意图,当用户输入localuiwrap=require(‘UI.ExampleWrap’).nue(rootGo)后,终端后通过解析ExampleWrap文件中的对象访问代码,以列表的形式产生对象标识选择页面301,对象标识选择页面301中显示不同特定unity对象的对象标识。
步骤203、响应于针对对象标识选择页面中的对象标识的选择操作,基于数据查找标识访问被选中的对象标识对应的特定unity对象。
在本申请实施例中,用户可以在对象选择页面中选择想要访问的unity对象的对象标识,具体地选择操作可以是点击想要选择的对象标识。当选择了对象标识后,可以确定选择的对象标识对应的数据查找标识,从而根据确定的数据查找标识获取想要访问特定unity对象的对象数据,实现对选中的特定unity对象的访问。
在本申请实施例中,特定unity对象包括挂载组件,挂载组件定义了对应的特定unity对象的行为,挂载组件包括unity自带的组件如光源、模型和动画等,以及开发者通过C#代码来添加自定义的组件。
在本申请实施例中,访问特定unity对象可以是访问特定unity对象的挂载组件,即对象访问代码中可以包括对象本体访问代码和每个特定unity对象的挂载组件的组件访问代码,组件访问代码中包括特定unity对象的对象标识以及挂载组件的组件标识,对象数据中包括挂载组件的组件标识和组件数据,其中,对象本体访问代码可以是查询和缓存特定unity对象的对象数据的代码,组件访问代码用于访问特定unity对象的挂载组件,由于unity对象的挂载组件可以有多个,为了区分每个挂载组件,每个挂载组件具有一个组件标识。
具体地,访问特定unity对象的挂载组件时,上述步骤203“响应于针对对象标识选择页面中的对象标识的选择操作,基于数据查找标识访问被选中的对象标识对应的特定unity对象”可以是:
响应于针对对象标识选择页面中的对象标识的选择操作,确定被选择的对象标识对应的特定unity对象,为进行访问的目标unity对象;
基于解析结果在用户操作界面显示组件标识选择页面,组件标识选择页面包括目标unity对象的目标挂载组件的目标组件标识;
响应于针对组件标识选择页面中的目标组件标识的选择操作,基于目标unity对象的数据查找标识,访问被选择的目标组件标识对应的目标挂载组件。
例如,如图4所示的组件标识选择页面示意图中,当用户在对象标识选择页面中选择想要访问的目标unity对象的对象标识后,可以以列表的形式产生组件标识选择页面401,在组件标识选择页面401中显示该目标unity对象对应的挂载组件的目标组件标识以供用户选择具体想要访问的目标挂载组件,可以根据目标unity对象的数据查找标识获取目标unity对象的对象数据,在目标unity对象的对象数据中获取选择的目标组件标识对应的组件数据。
上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
本申请实施例提供的对象访问方法,当用户想要在lua运行环境中访问需要被访问的特定unity对象时,可以执行解析触发操作使得计算机设备解析目标lua代码文件中的对象访问代码,在用户操作界面显示包括特定unity对象的对象标识的对象标识选择页面,用户可以直接在对象标识选择页面中选择此次想要访问的特定unity对象的对象标识,当计算机设备确定该对象标识对应的特定unity对象的数据查找标识后,计算机设备可以根据用户选择的对象标识以及确定的数据查找标识对想要访问的特定unity对象进行访问,避免用户在lua运行环境中人为拼写想要访问的unity对象的查询路径,从而避免在lua运行环境中人为拼写unity对象的查询路径出错,提升unity项目的开发效率。
本实施例将从代码生成装置的角度进行描述,该代码生成装置具体可以集成在终端设备中,该终端设备可以包括智能手机、笔记本电脑、平板电脑以及个人计算机等设备。
本申请实施例提供的一种代码生成方法,用于生成上述对象访问方法中使用的对象访问代码,该方法可以由终端的处理器执行,如图5所示,该代码生成方法的具体流程主要包括步骤501至步骤506,详细说明如下:
步骤501、确定目标unity预设体包括的unity对象中,在lua运行环境下需要被访问的特定unity对象。
在本申请实施例中,为了生成可以访问特定unity对象的对象访问代码,需要在unity运行环境中产生的目标unity预设体中预先确定哪些unity对象属于需要被访问的特定unity对象。具体地,可以根据用户在unity运行环境中的可视化操作来确定特定unity对象,上述步骤501“确定目标unity预设体包括的unity对象中,在lua运行环境下需要被访问的特定unity对象”可以是:
基于目标unity预设体的代码在unity运行环境下显示目标unity预设体的设置子页面,设置子页面包括目标unity预设体包含的unity对象的对象标识,以及对象设置区域;
当目标unity预设体包含的unity对象的目标对象标识被选中后,响应于在目标对象标识对应的对象设置区域的访问标记操作,确定目标对象标识对应的unity对象为在lua运行环境下需要被访问的特定unity对象。
在本申请实施例中,在目标unity预设体的代码编写完成,可以在unity运行环境中显示目标unity预设体的设置子页面,例如,如图6所示的设置子页面示意图中,设置子页面60可以包括对象标识显示区域601和对象设置区域602,对象标识显示区域601中显示目标unity预设体的预设体标识ExampleWrap及其包括的unity对象的对象标识(close_btn、detail等),当在对象标识显示区域601个选中对象标识为close_btn的unity对象时,显示对象标识为close_btn的unity对象的对象设置区域602,从而可以在对象设置区域602中执行访问标记操作。
在本申请实施例中,访问标记操作可以是对象设置区域中添加标签的操作,具体地,上述步骤“当目标unity预设体包含的unity对象的目标对象标识被选中后,响应于在目标对象标识对应的对象设置区域的访问标记操作,确定目标对象标识对应的unity对象为在lua运行环境下需要被访问的特定unity对象”可以是:
当目标unity预设体包含的unity对象的目标对象标识被选中后,在unity运行环境下显示目标对象标识对应的选中unity对象的目标对象设置区域,目标对象设置区域中包括选中unity对象的对象属性;
响应于在目标对象设置区域中针对选中unity对象的对象属性添加标签的操作,确定选中unity对象为在lua运行环境下需要被访问的特定unity对象。
例如,如图6所示的设置子页面示意图中,对象标识为close_btn的unity对象的对象设置区域602中包括对象属性Layer,将对象属性Layer添加LuaWrap标签,从而确定对象标识为close_btn的unity对象为在lua运行环境下需要被访问的特定unity对象。
步骤502、基于目标unity预设体获取特定unity对象的数据查找标识,将数据查找标识记录在预设数据结构中得到对象记录信息,预设数据结构中记录的数据查找标识的位置信息为整型数据。
在本申请实施例中,当确定特定unity对象之后,可以在特定unity对象所属的目标unity预设体的对象数据中获取特定unity对象的数据查找标识,可以将各个特定unity对象的数据查找标识进行记录。为了避免在lua运行环境中以字符串的形式获取unity对象的数据查找标识,从而避免字符串从unity运行环境传输至lua运行环境中造成系统频繁地内存回收,可以设置预设数据结构中记录的数据查找标识的位置信息为整型数据,从而使得在lua运行环境中以整型的方式获取数据查找标识。
具体地,由于数组的下标为整型,预设数据结构可以是数组结构,以下标来标识数据查找标识在数组结构中的位置信息。此时,上述步骤502中“基于目标unity预设体获取特定unity对象的数据查找标识,将数据查找标识记录在预设数据结构中得到对象记录信息”可以是:
基于目标unity预设体获取特定unity对象的数据查找标识;
若特定unity对象为多个,将各特定unity对象的数据查找标识按照预设顺序依次记录至数组结构中,得到对象记录信息。
在本申请实施例中,预设顺序可以是各个unity对象确定为特定unity对象的先后顺序,即优先确定为特定unity对象的unity对象对应的数据查找信息优先加入数组结构中。
步骤503、将目标unity预设体以及对象记录信息导入至lua运行环境下。
在本申请实施例中,上述步骤“基于目标unity预设体获取特定unity对象的数据查找标识,将数据查找标识记录在预设数据结构中得到对象记录信息”之后,还包括:为目标unity预设体挂载访问记录组件;将对象记录信息存储至访问记录组件中;此时,步骤503“将目标unity预设体以及对象记录信息导入至lua运行环境下”可以是:响应于针对目标unity预设体的对象数据和访问记录组件从unity运行环境至lua运行环境的导入操作,将目标unity预设体以及对象记录信息导入至lua运行环境下。
在本申请的一种实施方式中,为目标unity预设体挂载访问记录组件可以是终端响应于在unity运行环境中的代码生成触发操作,自动为目标unity预设体挂载访问记录组件。即终端遍历目标unity预设体的每个unity对象,将属性Layer为LuaWrap的unity对象的数据查找标识记录在预设数据结构中,形成对象记录信息,例如,如图7所示。将对象记录信息存储至访问记录组件。此外,可以将访问记录组件随着目标unity预设体进行持久化保存。
在本申请实施例中,导入操作不受限制,可以是用户人为将存储目标unity预设体的对象数据的文件,以及存储访问记录组件的文件导入至lua运行环境中。
步骤504、在lua运行环境下获取lua语言的对象访问代码模板,对象访问代码模板用于在lua运行环境下访问unity对象,且包括与特定unity对象关联的若干待替换代码段。
在本申请实施例中,预先在lua运行环境中产生对象访问代码模板,当想要生成对象访问代码时,用户可以在lua运行环境中执行代码模板获取操作,从而使得终端获取对象访问代码模板。例如,对象访问代码模板可以是:
其中,<luaobj>,<upValueGoDefine>和<nodeDefine>可以是待替换代码段。
步骤505、基于特定unity对象的对象标识、对象记录信息中的数据查找标识,以及目标unity预设体的对象数据,在对象访问代码模板的待替换代码段中进行代码替换,得到对象访问代码,其中,对象访问代码包括特定unity对象的对象标识和数据查找标识。
在本申请实施例中,上述步骤505中“基于特定unity对象的对象标识、对象记录信息中的数据查找标识,以及目标unity预设体的对象数据,在对象访问代码模板的待替换代码段中进行代码替换,得到对象访问代码”可以是:
基于特定unity对象的对象标识、对象记录信息中的数据查找标识,以及目标unity预设体的对象数据,生成各待替换代码段对应的目标替换代码段;
利用各目标替换代码段替换对象访问代码模板中对应的待替换代码段,得到对象访问代码。
在本申请实施例中,待替换代码段包括待替换标识代码段、待替换对象本体访问代码段和待替换组件访问代码段,此时,上述步骤“基于特定unity对象的对象标识、对象记录信息中的数据查找标识,以及目标unity预设体的对象数据,生成各待替换代码段对应的目标替换代码段”可以是:
从目标unity预设体的对象数据中获取目标unity预设体的预设体标识,作为待替换标识代码段对应的目标替换代码段;
基于对象记录信息中的数据查找标识,以及目标unity预设体的对象数据生成查询并缓存特定unity对象的代码段,作为待替换对象本体访问代码段对应的目标替换代码段;
基于待替换对象本体访问代码段对应的目标替换代码段、以及特定unity对象的对象标识,生成待替换组件访问代码段对应的目标替换代码段。
例如,如图8所示的替换过程示意图中,<luaobj>的内容:会被替换成预设体根节点名,即预设体数据中的预设体名字,主要用于标识生成的lua代码。<upValueGoDefine>的内容根据访问记录组件(cmpcache)被替换为查询和缓存unity对象的lua代码。<nodeDefine>的内容根据组件的lua模板表被替换为组件访问代码。
在本申请实施例中,当对象记录信息中的预设数据结构为数组结构,上述步骤“基于对象记录信息中的数据查找标识,以及目标unity预设体的对象数据生成查询并缓存特定unity对象的代码段,作为待替换对象本体访问代码段对应的目标替换代码段”可以是:
确定各特定unity对象的数据查找标识记录在数组结构中的下标;
生成基于下标在数组结构中确定特定unity对象的数据查找标识的第一代码段;
根据确定的数据查找标识,生成在目标unity预设体的对象数据中查询并缓存特定unity对象的对象数据的第二代码段;
将第一代码段和第二代码段合并作为待替换对象本体访问代码段对应的目标替换代码段。
例如,第一代码段可以是:
local cmpcache=rootGo:GetComponent(typeof(CS.CmpCache))
local closeBtnGo=cmpcache.GetCache(0)
其中,以数组下标的方式获取CmpCache数组上的unity对象,这样就代替了使用查询路径来查找unity对象,lua和C#之间传递整型变量代替传递字符串变量,避免lua运行环境的内存回收。
在本申请实施例中,上述步骤“基于待替换对象本体访问代码段对应的目标替换代码段、以及特定unity对象的对象标识,生成待替换组件访问代码段对应的目标替换代码段”可以是:
根据第一代码段获取特定unity对象的数据查找标识;
根据第二代码段缓存的特定unity对象的对象数据中,获取特定unity对象的挂载组件的组件标识;
基于特定unity对象的对象标识、数据查找标识和组件标识生成待替换组件访问代码段对应的目标替换代码段。
例如,如图9所示的待替换组件访问代码段的模板代码示意图。基于特定unity对象的对象标识、数据查找标识和组件标识替换模板代码,生成组件访问代码段对应的目标替换代码段。具体地,<name>标识被unity对象名(unity对象的对象标识)替换,在<upValueGoDefine>所生成的lua代码包含了unity对象的查询和缓存所需要的数据查找标识,这些unity对象变量名(即数据查找标识)最后会替换<gameObject>标识,<CmpType>标识将会被unity对象的组件类型名(即组件标识)替换。
在本申请实施例中,若特定unity对象的挂载组件有多个,上述步骤“基于特定unity对象的对象标识、数据查找标识和组件标识生成待替换组件访问代码段对应的目标替换代码段”可以是:
若特定unity对象的挂载组件有多个,基于特定unity对象的对象标识、数据查找标识和每个挂载组件的组件标识,生成访问每个挂载组件的代码段;
将访问每个挂载组件的代码段拼接起来,生成待替换组件访问代码段对应的目标替换代码段。
在本申请实施例中,上述步骤“利用各目标替换代码段替换对象访问代码模板中对应的待替换代码段,得到对象访问代码”可以是:
利用各目标替换代码段替换对象访问代码模板中对应的待替换标识代码段、待替换对象本体访问代码段和待替换组件访问代码段,得到包括标识代码段、对象本体访问代码段和组件访问代码段的对象访问代码。
步骤506、基于对象访问代码得到目标lua代码文件,目标lua代码文件用于在被解析后显示特定unity对象的对象标识以供用户选择,并在选择后基于数据查找标识访问被选择的对象标识对应的特定unity对象。
本申请实施例提供的代码生成方法,当用户想要在lua运行环境中访问需要被访问的特定unity对象时,可以执行解析触发操作使得计算机设备解析目标lua代码文件中的对象访问代码,在用户操作界面显示包括特定unity对象的对象标识的对象标识选择页面,用户可以直接在对象标识选择页面中选择此次想要访问的特定unity对象的对象标识,当计算机设备确定该对象标识对应的特定unity对象的数据查找标识后,计算机设备可以根据用户选择的对象标识以及确定的数据查找标识对想要访问的特定unity对象进行访问,避免用户在lua运行环境中人为拼写想要访问的unity对象的查询路径,从而避免在lua运行环境中人为拼写unity对象的查询路径出错,提升unity项目的开发效率。
为便于更好的实施本申请实施例的对象访问方法,本申请实施例还提供一种对象访问装置。请参阅图10,图10为本申请实施例提供的对象访问装置的结构示意图。该对象访问装置可以包括代码文件获取单元1001、标识显示单元1002和访问单元1003。
其中,代码文件获取单元1001,用于响应于在lua运行环境下针对目标lua代码文件的解析触发操作,获取目标lua代码文件,其中,目标lua代码文件中包括lua语言的对象访问代码,对象访问代码基于unity预设体代码生成,且包括unity预设体中在lua运行环境下需要被访问的特定unity对象的对象标识和数据查找标识,数据查找标识用于获取特定unity对象的对象数据;
标识显示单元1002,用于解析目标lua代码文件中的对象访问代码,基于解析结果在用户操作界面显示对象标识选择页面,对象标识选择页面包括特定unity对象的对象标识;
访问单元1003,用于响应于针对对象标识选择页面中的对象标识的选择操作,基于数据查找标识访问被选中的对象标识对应的特定unity对象。
可选的,对象访问代码中包括对象本体访问代码和每个特定unity对象的挂载组件的组件访问代码,组件访问代码中包括特定unity对象的对象标识以及挂载组件的组件标识,对象数据中包括挂载组件的组件标识和组件数据;
访问单元1003还用于:
响应于针对对象标识选择页面中的对象标识的选择操作,确定被选择的对象标识对应的特定unity对象,为进行访问的目标unity对象;
基于解析结果在用户操作界面显示组件标识选择页面,组件标识选择页面包括目标unity对象的目标挂载组件的目标组件标识;
响应于针对组件标识选择页面中的目标组件标识的选择操作,基于目标unity对象的数据查找标识,访问被选择的目标组件标识对应的目标挂载组件。
上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
为便于更好的实施本申请实施例的代码生成方法,本申请实施例还提供一种代码生成装置。请参阅图11,图11为本申请实施例提供的代码生成装置的结构示意图。该代码生成装置可以包括对象确定单元1101、记录单元1102、导入单元1103、代码模板获取单元1104、替换单元1105和代码文件得到单元1106。
其中,对象确定单元1101,用于确定目标unity预设体包括的unity对象中,在lua运行环境下需要被访问的特定unity对象;
记录单元1102,用于基于目标unity预设体获取特定unity对象的数据查找标识,将数据查找标识记录在预设数据结构中得到对象记录信息,预设数据结构中记录的数据查找标识的位置信息为整型数据;
导入单元1103,用于将目标unity预设体以及对象记录信息导入至lua运行环境下;
代码模板获取单元1104,用于在lua运行环境下获取lua语言的对象访问代码模板,对象访问代码模板用于在lua运行环境下访问unity对象,且包括与特定unity对象关联的若干待替换代码段;
替换单元1105,用于基于特定unity对象的对象标识、对象记录信息中的数据查找标识,以及目标unity预设体的对象数据,在对象访问代码模板的待替换代码段中进行代码替换,得到对象访问代码,其中,对象访问代码包括特定unity对象的对象标识和数据查找标识;
代码文件得到单元1106,用于基于对象访问代码得到目标lua代码文件,目标lua代码文件用于在被解析后显示特定unity对象的对象标识以供用户选择,并在选择后基于数据查找标识访问被选择的对象标识对应的特定unity对象。
可选的,对象确定单元1101还用于:
基于目标unity预设体的代码在unity运行环境下显示目标unity预设体的设置子页面,设置子页面包括目标unity预设体包含的unity对象的对象标识,以及对象设置区域;
当目标unity预设体包含的unity对象的目标对象标识被选中后,响应于在目标对象标识对应的对象设置区域的访问标记操作,确定目标对象标识对应的unity对象为在lua运行环境下需要被访问的特定unity对象。
可选的,对象确定单元1101还用于:
当目标unity预设体包含的unity对象的目标对象标识被选中后,在Unity运行环境下显示目标对象标识对应的选中unity对象的目标对象设置区域,目标对象设置区域中包括选中unity对象的对象属性;
响应于在目标对象设置区域中针对选中unity对象的对象属性添加标签的操作,确定选中unity对象为在lua运行环境下需要被访问的特定unity对象。
可选的,预设数据结构为数组结构,记录单元1102还用于:
基于目标unity预设体获取特定unity对象的数据查找标识;
若特定unity对象为多个,将各特定unity对象的数据查找标识按照预设顺序依次记录至数组结构中,得到对象记录信息。
可选的,记录单元1102还用于:
为目标unity预设体挂载访问记录组件;
将对象记录信息存储至访问记录组件中;
导入单元1103还用于:
响应于针对目标unity预设体的对象数据和访问记录组件从unity运行环境至lua运行环境的导入操作,将目标unity预设体以及对象记录信息导入至lua运行环境下。
可选的,替换单元1105还用于:
基于特定unity对象的对象标识、对象记录信息中的数据查找标识,以及目标unity预设体的对象数据,生成各待替换代码段对应的目标替换代码段;
利用各目标替换代码段替换对象访问代码模板中对应的待替换代码段,得到对象访问代码。
可选的,待替换代码段包括待替换标识代码段、待替换对象本体访问代码段和待替换组件访问代码段,替换单元1105还用于:
从目标unity预设体的对象数据中获取目标unity预设体的预设体标识,作为待替换标识代码段对应的目标替换代码段;
基于对象记录信息中的数据查找标识,以及目标unity预设体的对象数据生成查询并缓存特定unity对象的代码段,作为待替换对象本体访问代码段对应的目标替换代码段;
基于待替换对象本体访问代码段对应的目标替换代码段、以及特定unity对象的对象标识,生成待替换组件访问代码段对应的目标替换代码段。
可选的,对象记录信息中的预设数据结构为数组结构,替换单元1105还用于:
确定各特定unity对象的数据查找标识记录在数组结构中的下标;
生成基于下标在数组结构中确定特定unity对象的数据查找标识的第一代码段;
根据确定的数据查找标识,生成在目标unity预设体的对象数据中查询并缓存特定unity对象的对象数据的第二代码段;
将第一代码段和第二代码段合并作为待替换对象本体访问代码段对应的目标替换代码段。
可选的,替换单元1105还用于:
根据第一代码段获取特定unity对象的数据查找标识;
根据第二代码段缓存的特定unity对象的对象数据中,获取特定unity对象的挂载组件的组件标识;
基于特定unity对象的对象标识、数据查找标识和组件标识生成待替换组件访问代码段对应的目标替换代码段。
可选的,替换单元1105还用于:
若特定unity对象的挂载组件有多个,基于特定unity对象的对象标识、数据查找标识和每个挂载组件的组件标识,生成访问每个挂载组件的代码段;
将访问每个挂载组件的代码段拼接起来,生成待替换组件访问代码段对应的目标替换代码段。
可选的,替换单元1105还用于:
利用各目标替换代码段替换对象访问代码模板中对应的待替换标识代码段、待替换对象本体访问代码段和待替换组件访问代码段,得到包括标识代码段、对象本体访问代码段和组件访问代码段的对象访问代码。
本申请实施例提供的对象访问方法、代码生成方法、装置、设备及存储介质,当用户想要在lua运行环境中访问需要被访问的特定unity对象时,可以执行解析触发操作使得计算机设备解析目标lua代码文件中的对象访问代码,在用户操作界面显示包括特定unity对象的对象标识的对象标识选择页面,用户可以直接在对象标识选择页面中选择此次想要访问的特定unity对象的对象标识,当计算机设备确定该对象标识对应的特定unity对象的数据查找标识后,计算机设备可以根据用户选择的对象标识以及确定的数据查找标识对想要访问的特定unity对象进行访问,避免用户在lua运行环境中人为拼写想要访问的unity对象的查询路径,从而避免在lua运行环境中人为拼写unity对象的查询路径出错,提升unity项目的开发效率。
相应的,本申请实施例还提供一种计算机设备,该计算机设备可以为终端,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机、个人数字助理等终端设备。如图12所示,图12为本申请实施例提供的计算机设备的结构示意图。该计算机设备1200包括有一个或者一个以上处理核心的处理器1201、有一个或一个以上计算机可读存储介质的存储器1202及存储在存储器1202上并可在处理器上运行的计算机程序。其中,处理器1201与存储器1202电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器1201是计算机设备1200的控制中心,利用各种接口和线路连接整个计算机设备1200的各个部分,通过运行或加载存储在存储器1202内的软件程序和/或模块,以及调用存储在存储器1202内的数据,执行计算机设备1200的各种功能和处理数据,从而对计算机设备1200进行整体监控。
在本申请实施例中,计算机设备1200中的处理器1201会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器1202中,并由处理器1201来运行存储在存储器1202中的应用程序,从而实现各种功能:
响应于在lua运行环境下针对目标lua代码文件的解析触发操作,获取目标lua代码文件,其中,目标lua代码文件中包括lua语言的对象访问代码,对象访问代码基于unity预设体代码生成,且包括unity预设体中在lua运行环境下需要被访问的特定unity对象的对象标识和数据查找标识,数据查找标识用于获取特定unity对象的对象数据;
解析目标lua代码文件中的对象访问代码,基于解析结果在用户操作界面显示对象标识选择页面,对象标识选择页面包括特定unity对象的对象标识;
响应于针对对象标识选择页面中的对象标识的选择操作,基于数据查找标识访问被选中的对象标识对应的特定unity对象。
确定目标unity预设体包括的unity对象中,在lua运行环境下需要被访问的特定unity对象;
基于目标unity预设体获取特定unity对象的数据查找标识,将数据查找标识记录在预设数据结构中得到对象记录信息,预设数据结构中记录的数据查找标识的位置信息为整型数据;
将目标unity预设体以及对象记录信息导入至lua运行环境下;
在lua运行环境下获取lua语言的对象访问代码模板,对象访问代码模板用于在lua运行环境下访问unity对象,且包括与特定unity对象关联的若干待替换代码段;
基于特定unity对象的对象标识、对象记录信息中的数据查找标识,以及目标unity预设体的对象数据,在对象访问代码模板的待替换代码段中进行代码替换,得到对象访问代码,其中,对象访问代码包括特定unity对象的对象标识和数据查找标识;
基于对象访问代码得到目标lua代码文件,目标lua代码文件用于在被解析后显示特定unity对象的对象标识以供用户选择,并在选择后基于数据查找标识访问被选择的对象标识对应的特定unity对象。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图12所示,计算机设备1200还包括:触控显示屏1203、射频电路1204、音频电路1205、输入单元1206以及电源1207。其中,处理器1201分别与触控显示屏1203、射频电路1204、音频电路1205、输入单元1206以及电源1207电性连接。本领域技术人员可以理解,图12中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏1203可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏1203可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户兑现手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1201,并能接收处理器1201发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器1201以确定触摸事件的类型,随后处理器1201根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏1203而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏1203也可以作为输入单元1206的一部分实现输入功能。
射频电路1204可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
音频电路1205可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路1205可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路1205接收后转换为音频数据,再将音频数据输出处理器1201处理后,经射频电路1204以发送给比如另一计算机设备,或者将音频数据输出至存储器1202以便进一步处理。音频电路1205还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
输入单元1206可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源1207用于给计算机设备1200的各个部件供电。可选的,电源1207可以通过电源管理系统与处理器1201逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源1207还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图12中未示出,计算机设备1200还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
由上可知,本实施例提供的计算机设备,当用户想要在lua运行环境中访问需要被访问的特定unity对象时,可以执行解析触发操作使得计算机设备解析目标lua代码文件中的对象访问代码,在用户操作界面显示包括特定unity对象的对象标识的对象标识选择页面,用户可以直接在对象标识选择页面中选择此次想要访问的特定unity对象的对象标识,当计算机设备确定该对象标识对应的特定unity对象的数据查找标识后,计算机设备可以根据用户选择的对象标识以及确定的数据查找标识对想要访问的特定unity对象进行访问,避免用户在lua运行环境中人为拼写想要访问的unity对象的查询路径,从而避免在lua运行环境中人为拼写unity对象的查询路径出错,提升unity项目的开发效率。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种对象访问方法和代码生成方法中的步骤。例如,该计算机程序可以执行如下步骤:
响应于在lua运行环境下针对目标lua代码文件的解析触发操作,获取目标lua代码文件,其中,目标lua代码文件中包括lua语言的对象访问代码,对象访问代码基于unity预设体代码生成,且包括unity预设体中在lua运行环境下需要被访问的特定unity对象的对象标识和数据查找标识,数据查找标识用于获取特定unity对象的对象数据;
解析目标lua代码文件中的对象访问代码,基于解析结果在用户操作界面显示对象标识选择页面,对象标识选择页面包括特定unity对象的对象标识;
响应于针对对象标识选择页面中的对象标识的选择操作,基于数据查找标识访问被选中的对象标识对应的特定unity对象。
确定目标unity预设体包括的unity对象中,在lua运行环境下需要被访问的特定unity对象;
基于目标unity预设体获取特定unity对象的数据查找标识,将数据查找标识记录在预设数据结构中得到对象记录信息,预设数据结构中记录的数据查找标识的位置信息为整型数据;
将目标unity预设体以及对象记录信息导入至lua运行环境下;
在lua运行环境下获取lua语言的对象访问代码模板,对象访问代码模板用于在lua运行环境下访问unity对象,且包括与特定unity对象关联的若干待替换代码段;
基于特定unity对象的对象标识、对象记录信息中的数据查找标识,以及目标unity预设体的对象数据,在对象访问代码模板的待替换代码段中进行代码替换,得到对象访问代码,其中,对象访问代码包括特定unity对象的对象标识和数据查找标识;
基于对象访问代码得到目标lua代码文件,目标lua代码文件用于在被解析后显示特定unity对象的对象标识以供用户选择,并在选择后基于数据查找标识访问被选择的对象标识对应的特定unity对象。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(Read Only Memory,ROM)、随机存取记忆体(Random Access Memory,RAM)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种对象访问方法、代码生成方法中的步骤,因此,可以实现本申请实施例所提供的任一种对象访问方法、代码生成方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上对本申请实施例所提供的一种对象访问方法、代码生成方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想;本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例的技术方案的范围。
Claims (17)
1.一种对象访问方法,其特征在于,包括:
响应于在lua运行环境下针对目标lua代码文件的解析触发操作,获取所述目标lua代码文件,其中,所述目标lua代码文件中包括lua语言的对象访问代码,所述对象访问代码基于unity预设体代码生成,且包括unity预设体中在所述lua运行环境下需要被访问的特定unity对象的对象标识和数据查找标识,所述数据查找标识用于获取所述特定unity对象的对象数据;
解析所述目标lua代码文件中的对象访问代码,基于解析结果在用户操作界面显示对象标识选择页面,所述对象标识选择页面包括所述特定unity对象的对象标识;
响应于针对所述对象标识选择页面中的对象标识的选择操作,基于所述数据查找标识访问被选中的对象标识对应的特定unity对象。
2.根据权利要求1所述的方法,其特征在于,所述对象访问代码中包括对象本体访问代码和每个特定unity对象的挂载组件的组件访问代码,所述组件访问代码中包括特定unity对象的对象标识以及挂载组件的组件标识,所述对象数据中包括挂载组件的组件标识和组件数据;
所述响应于针对所述对象标识选择页面中的对象标识的选择操作,基于所述数据查找标识访问被选中的对象标识对应的特定unity对象,包括:
响应于针对所述对象标识选择页面中的对象标识的选择操作,确定被选择的对象标识对应的特定unity对象,为进行访问的目标unity对象;
基于所述解析结果在所述用户操作界面显示组件标识选择页面,所述组件标识选择页面包括所述目标unity对象的目标挂载组件的目标组件标识;
响应于针对所述组件标识选择页面中的目标组件标识的选择操作,基于所述目标unity对象的数据查找标识,访问被选择的目标组件标识对应的目标挂载组件。
3.一种代码生成方法,其特征在于,包括:
确定目标unity预设体包括的unity对象中,在lua运行环境下需要被访问的特定unity对象;
基于所述目标unity预设体获取所述特定unity对象的数据查找标识,将所述数据查找标识记录在预设数据结构中得到对象记录信息,所述预设数据结构中记录的数据查找标识的位置信息为整型数据;
将所述目标unity预设体以及所述对象记录信息导入至所述lua运行环境下;
在所述lua运行环境下获取lua语言的对象访问代码模板,所述对象访问代码模板用于在所述lua运行环境下访问unity对象,且包括与所述特定unity对象关联的若干待替换代码段;
基于所述特定unity对象的对象标识、所述对象记录信息中的所述数据查找标识,以及所述目标unity预设体的对象数据,在所述对象访问代码模板的待替换代码段中进行代码替换,得到对象访问代码,其中,所述对象访问代码包括所述特定unity对象的对象标识和数据查找标识;
基于所述对象访问代码得到目标lua代码文件,所述目标lua代码文件用于在被解析后显示所述特定unity对象的对象标识以供用户选择,并在选择后基于所述数据查找标识访问被选择的对象标识对应的特定unity对象。
4.根据权利要求3所述的方法,其特征在于,所述确定目标unity预设体包括的unity对象中,在lua运行环境下需要被访问的特定unity对象,包括:
基于所述目标unity预设体的代码在unity运行环境下显示所述目标unity预设体的设置子页面,所述设置子页面包括所述目标unity预设体包含的unity对象的对象标识,以及对象设置区域;
当所述目标unity预设体包含的unity对象的目标对象标识被选中后,响应于在所述目标对象标识对应的对象设置区域的访问标记操作,确定所述目标对象标识对应的unity对象为在所述lua运行环境下需要被访问的所述特定unity对象。
5.根据权利要求4所述的方法,其特征在于,所述当所述目标unity预设体包含的unity对象的目标对象标识被选中后,响应于在所述目标对象标识对应的对象设置区域的访问标记操作,确定所述目标对象标识对应的unity对象为在所述lua运行环境下需要被访问的所述特定unity对象,包括:
当所述目标unity预设体包含的unity对象的目标对象标识被选中后,在所述Unity运行环境下显示所述目标对象标识对应的选中unity对象的目标对象设置区域,所述目标对象设置区域中包括所述选中unity对象的对象属性;
响应于在所述目标对象设置区域中针对所述选中unity对象的对象属性添加标签的操作,确定所述选中unity对象为在所述lua运行环境下需要被访问的所述特定unity对象。
6.根据权利要求3所述的方法,其特征在于,所述预设数据结构为数组结构,所述基于所述目标unity预设体获取所述特定unity对象的数据查找标识,将所述数据查找标识记录在预设数据结构中得到对象记录信息,包括:
基于所述目标unity预设体获取所述特定unity对象的数据查找标识;
若所述特定unity对象为多个,将各所述特定unity对象的数据查找标识按照预设顺序依次记录至所述数组结构中,得到所述对象记录信息。
7.根据权利要求3所述的方法,其特征在于,所述基于所述目标unity预设体获取所述特定unity对象的数据查找标识,将所述数据查找标识记录在预设数据结构中得到对象记录信息之后,还包括:
为所述目标unity预设体挂载访问记录组件;
将所述对象记录信息存储至所述访问记录组件中;
所述将所述目标unity预设体以及所述对象记录信息导入至所述lua运行环境下,包括:
响应于针对所述目标unity预设体的对象数据和所述访问记录组件从unity运行环境至所述lua运行环境的导入操作,将所述目标unity预设体以及所述对象记录信息导入至所述lua运行环境下。
8.根据权利要求3所述的方法,其特征在于,所述基于所述特定unity对象的对象标识、所述对象记录信息中的所述数据查找标识,以及所述目标unity预设体的对象数据,在所述对象访问代码模板的待替换代码段中进行代码替换,得到对象访问代码,包括:
基于所述特定unity对象的对象标识、所述对象记录信息中的所述数据查找标识,以及所述目标unity预设体的对象数据,生成各所述待替换代码段对应的目标替换代码段;
利用各所述目标替换代码段替换所述对象访问代码模板中对应的待替换代码段,得到所述对象访问代码。
9.根据权利要求8所述的方法,其特征在于,所述待替换代码段包括待替换标识代码段、待替换对象本体访问代码段和待替换组件访问代码段,所述基于所述特定unity对象的对象标识、所述对象记录信息中的所述数据查找标识,以及所述目标unity预设体的对象数据,生成各所述待替换代码段对应的目标替换代码段,包括:
从所述目标unity预设体的对象数据中获取所述目标unity预设体的预设体标识,作为所述待替换标识代码段对应的目标替换代码段;
基于所述对象记录信息中的所述数据查找标识,以及所述目标unity预设体的对象数据生成查询并缓存所述特定unity对象的代码段,作为所述待替换对象本体访问代码段对应的目标替换代码段;
基于所述待替换对象本体访问代码段对应的目标替换代码段、以及所述特定unity对象的对象标识,生成所述待替换组件访问代码段对应的目标替换代码段。
10.根据权利要求9所述的方法,其特征在于,所述对象记录信息中的预设数据结构为数组结构,所述基于所述对象记录信息中的所述数据查找标识,以及所述目标unity预设体的对象数据生成查询并缓存所述特定unity对象的代码段,作为所述待替换对象本体访问代码段对应的目标替换代码段,包括:
确定各所述特定unity对象的数据查找标识记录在所述数组结构中的下标;
生成基于所述下标在所述数组结构中确定所述特定unity对象的数据查找标识的第一代码段;
根据确定的数据查找标识,生成在所述目标unity预设体的对象数据中查询并缓存所述特定unity对象的对象数据的第二代码段;
将所述第一代码段和所述第二代码段合并作为所述待替换对象本体访问代码段对应的目标替换代码段。
11.根据权利要求10所述的方法,其特征在于,所述基于所述待替换对象本体访问代码段对应的目标替换代码段、以及所述特定unity对象的对象标识,生成所述待替换组件访问代码段对应的目标替换代码段,包括:
根据所述第一代码段获取所述特定unity对象的数据查找标识;
根据所述第二代码段缓存的所述特定unity对象的对象数据中,获取所述特定unity对象的挂载组件的组件标识;
基于所述特定unity对象的对象标识、所述数据查找标识和所述组件标识生成所述待替换组件访问代码段对应的目标替换代码段。
12.根据权利要求11所述的方法,其特征在于,所述基于所述特定unity对象的对象标识、所述数据查找标识和所述组件标识生成所述待替换组件访问代码段对应的目标替换代码段,包括:
若所述特定unity对象的挂载组件有多个,基于所述特定unity对象的对象标识、所述数据查找标识和每个所述挂载组件的组件标识,生成访问每个所述挂载组件的代码段;
将访问每个所述挂载组件的代码段拼接起来,生成所述待替换组件访问代码段对应的目标替换代码段。
13.根据权利要求9所述的方法,其特征在于,所述利用各所述目标替换代码段替换所述对象访问代码模板中对应的待替换代码段,得到所述对象访问代码,包括:
利用各所述目标替换代码段替换所述对象访问代码模板中对应的待替换标识代码段、待替换对象本体访问代码段和待替换组件访问代码段,得到包括标识代码段、对象本体访问代码段和组件访问代码段的对象访问代码。
14.一种对象访问装置,其特征在于,包括:
代码文件获取单元,用于响应于在lua运行环境下针对目标lua代码文件的解析触发操作,获取所述目标lua代码文件,其中,所述目标lua代码文件中包括lua语言的对象访问代码,所述对象访问代码基于unity预设体代码生成,且包括unity预设体中在所述lua运行环境下需要被访问的特定unity对象的对象标识和数据查找标识,所述数据查找标识用于获取所述特定unity对象的对象数据;
标识显示单元,用于解析所述目标lua代码文件中的对象访问代码,基于解析结果在用户操作界面显示对象标识选择页面,所述对象标识选择页面包括所述特定unity对象的对象标识;
访问单元,用于响应于针对所述对象标识选择页面中的对象标识的选择操作,基于所述数据查找标识访问被选中的对象标识对应的特定unity对象。
15.一种代码生成装置,其特征在于,包括:
对象确定单元,用于确定目标unity预设体包括的unity对象中,在lua运行环境下需要被访问的特定unity对象;
记录单元,用于基于所述目标unity预设体获取所述特定unity对象的数据查找标识,将所述数据查找标识记录在预设数据结构中得到对象记录信息,所述预设数据结构中记录的数据查找标识的位置信息为整型数据;
导入单元,用于将所述目标unity预设体以及所述对象记录信息导入至所述lua运行环境下;
代码模板获取单元,用于在所述lua运行环境下获取lua语言的对象访问代码模板,所述对象访问代码模板用于在所述lua运行环境下访问unity对象,且包括与所述特定unity对象关联的若干待替换代码段;
替换单元,用于基于所述特定unity对象的对象标识、所述对象记录信息中的所述数据查找标识,以及所述目标unity预设体的对象数据,在所述对象访问代码模板的待替换代码段中进行代码替换,得到对象访问代码,其中,所述对象访问代码包括所述特定unity对象的对象标识和数据查找标识;
代码文件得到单元,用于基于所述对象访问代码得到目标lua代码文件,所述目标lua代码文件用于在被解析后显示所述特定unity对象的对象标识以供用户选择,并在选择后基于所述数据查找标识访问被选择的对象标识对应的特定unity对象。
16.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于在执行所述计算机程序时实现如权利要求1至13任一项所述对象访问方法和所述代码生成方法中的步骤。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至13任一项所述对象访问方法和所述代码生成方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210365488.2A CN114741068A (zh) | 2022-04-07 | 2022-04-07 | 对象访问方法、代码生成方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210365488.2A CN114741068A (zh) | 2022-04-07 | 2022-04-07 | 对象访问方法、代码生成方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114741068A true CN114741068A (zh) | 2022-07-12 |
Family
ID=82278401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210365488.2A Pending CN114741068A (zh) | 2022-04-07 | 2022-04-07 | 对象访问方法、代码生成方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114741068A (zh) |
-
2022
- 2022-04-07 CN CN202210365488.2A patent/CN114741068A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7200277B2 (ja) | ワードスロットを識別するための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム | |
US11741002B2 (en) | Test automation systems and methods using logical identifiers | |
CN112632919B (zh) | 一种文档编辑方法、装置、计算机设备和存储介质 | |
CN112882764B (zh) | 组件加载方法、装置、计算机设备及存储介质 | |
CN108369589A (zh) | 提供用于对通信进行分类的自动主题标签建议 | |
US9251267B2 (en) | Generating behavior information for a link | |
CN108694172B (zh) | 信息输出方法和装置 | |
CN113094625A (zh) | 页面元素定位方法、装置、电子设备及存储介质 | |
CN111177247B (zh) | 一种数据转换的方法、装置及存储介质 | |
WO2023151397A1 (zh) | 应用程序部署方法、装置、设备及介质 | |
US11966562B2 (en) | Generating natural languages interface from graphic user interfaces | |
US11838294B2 (en) | Method for identifying user, storage medium, and electronic device | |
CN113434585B (zh) | 资源保存方法及设备 | |
CN114741068A (zh) | 对象访问方法、代码生成方法、装置、设备及存储介质 | |
CN113742716B (zh) | 代码运行方法、装置、电子设备、存储介质和程序产品 | |
CN116360735A (zh) | 一种表单生成方法、装置、设备和介质 | |
US20210382918A1 (en) | Method and apparatus for labeling data | |
CN112181407B (zh) | 业务实现处理方法及装置、系统、电子设备和存储介质 | |
CN115686506A (zh) | 一种数据显示方法、装置、电子设备和存储介质 | |
CN113609154A (zh) | 一种数据查询方法、装置、电子设备和存储介质 | |
CN113110846A (zh) | 一种环境变量的获取方法及装置 | |
CN114595449A (zh) | 一种安全扫描方法及装置 | |
JP7293544B2 (ja) | 質問回答システムの更新処理方法及び装置 | |
CN112015468B (zh) | 一种接口文档处理方法、装置、电子设备以及存储介质 | |
US20230063759A1 (en) | Software User Assistance Through Image Processing |
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 |