CN111552468A - 一种基于Unity的预制件编辑方法、装置及存储介质 - Google Patents
一种基于Unity的预制件编辑方法、装置及存储介质 Download PDFInfo
- Publication number
- CN111552468A CN111552468A CN202010337984.8A CN202010337984A CN111552468A CN 111552468 A CN111552468 A CN 111552468A CN 202010337984 A CN202010337984 A CN 202010337984A CN 111552468 A CN111552468 A CN 111552468A
- Authority
- CN
- China
- Prior art keywords
- dictionary
- node
- preform
- unity
- prefabricated
- 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
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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
-
- 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/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明涉及一种基于Unity的预制件编辑方法、装置及存储介质,方法包括:在初始化的Unity中,获取第一预制件和第二预制件;遍历第一预制件和第二预制件,得到第一预制件的第一字典和第二预制件的第二字典并生成可视化界面;将第一字典和第二字典进行比对得到比对结果;根据比对结果配置可执行编辑操作的控件,并将比对结果和控件在可视化界面中显示;利用控件对第一预制件和第二预制件进行编辑生成第一目标预制件和第二目标预制件。本发明可视化地对两个预制件进行节点的比对和编辑,使预制件的编辑更简单准确,提高了游戏开发的效率。
Description
技术领域
本发明涉及游戏开发领域,尤其涉及一种基于Unity的预制件编辑方法、装置及存储介质。
背景技术
对同时发行中国版本和海外版本的游戏而言,所需要制作的预制件也分为中文版本和外语版本。常见的,国内游戏开发商会根据已经制作好的中文版本的预制件来相应的制作或修改外语版本的预制件以提高开发的效率。
一般情况下,在使用第三方工具进行两个版本的预制件的合并或修改时都是以行数为导向进行预制件的对比,再基于数据层面直接修改预制件中的文本内容,用户能够感知并获取到的只有最后的完成文件,并不清楚中间的修改过程。更为严重的是,因为不同的语言版本会造成文本长度不同,进而使得文件的行数发生变化,两个预制件的行数出现不一致的情况,在比对过程中发生较大的差池,使得最后完成的文件问题较多,还需要花费大量的人工和时间进行手动的修改。
发明内容
为解决利用对多个预制件因进行比对时因行数不一致进而导致的无法准确进行修改的问题,本发明公开了一种基于Unity的预制件编辑方法、装置及存储介质。所述技术方案如下:
第一方面,本发明公开了一种基于Unity的预制件编辑方法,所述方法包括:
在初始化的Unity中,获取第一预制件和第二预制件;
遍历所述第一预制件和所述第二预制件,得到所述第一预制件的第一字典和所述第二预制件的第二字典,并生成第一可视化界面;
将所述第一字典和所述第二字典进行比对,得到比对结果信息;
根据所述比对结果信息配置可执行编辑操作的控件,并将所述比对结果信息和所述控件在所述第一可视化界面中显示;
在所述第一可视化界面中,利用所述控件对所述第一预制件和所述第二预制件进行编辑,生成第一目标预制件和第二目标预制件。
进一步地,所述遍历所述第一预制件和所述第二预制件,得到所述第一预制件的自已字典和所述第二预制件的第二字典包括:
调用Unity的应用程序接口遍历第一预制件,得到所述第一预制件的节点的名称和层级,并根据所述第一预制件的节点的名称和层级生成所述第一字典的树级结构的节点列表;
调用Unity的应用程序接口遍历所述第二预制件,得到所述第二预制件的节点的名称和层级,并根据所述第二预制件的节点的名称和层级生成所述第二字典的树级结构的节点列表。
进一步地,所述遍历所述第一预制件和所述第二预制件,得到所述第一预制件的第一字典和所述第二预制件的第二字典还包括:
遍历所述第一预制件,抓取所述第一预制件的节点的属性类型和属性值,并将所述第一预制件的节点的属性类型和属性值对应添加至所述第一字典的树级结构的节点列表中;
遍历所述第二预制件,抓取所述第二预制件的节点的属性类型和属性值,并将所述第二预制件的节点的属性类型和属性值对应添加至所述第二字典的树级结构的节点列表中。
进一步地,所述将所述第一字典和所述第二字典进行比对,得到比对结果信息包括:
根据节点的层级、名称、属性类型和/或属性值逐个比对所述第一字典中的每一个节点和所述第二字典中的每一个节点,得到所述比对结果信息。
进一步地,所述将所述第一字典和所述第二字典进行比对,得到比对结果信息还包括:
获取节点忽略列表,所述节点忽略列表包括在预制件编辑过程中需要跳过比对步骤的节点的层级、名称、属性类型和/或属性值;
判断所述第一字典中的节点和/或所述第二字典中的节点是否属于所述节点忽略列表;
在所述第一字典中的节点和/或所述第二字典中的节点属于所述节点忽略列表时,则跳过比对步骤,并将比对结果信息默认设置为一致。
进一步地,所述根据所述比对结果信息配置可执行编辑操作的控件,并将所述比对结果信息和所述控件在所述第一可视化界面中显示包括:
根据所述比对结果信息,对所述第一字典和所述第二字典中比对结果信息为不一致的节点配置可执行编辑操作的控件,并在所述第一可视化界面中显示,所述可执行编辑操作包括节点及其属性的增加、删除和修改;
根据所述比对结果信息,在所述第一可视化界面中更新所述第一字典和所述第二字典中节点的显示颜色;
在所述第一可视化界面中生成信息显示窗口,以显示用户选择的节点的层级、名称、属性类型、属性值和比对结果信息。
进一步地,所述在所述第一可视化界面中,利用所述控件对所述第一预制件和所述第二预制件进行编辑,生成第一目标预制件和第二目标预制件包括:
在所述第一可视化界面中,利用所述控件对所述第一字典和所述第二字典中比对结果信息为不一致的节点及其属性执行增加、删除和修改的操作;
根据所述增加、删除和修改的操作相应地对所述第一预制件和所述第二预制件进行编辑,生成所述第一目标预制件和所述第二目标预制件。
进一步地,所述一种基于Unity的预制件编辑方法还包括:
生成第二可视化界面,并在所述第二可视化界面中显示所述第一预制件和所述第二预制件;
在根据所述增加、删除和修改的操作相应地对所述第一预制件和所述第二预制件进行编辑时,实时地在所述第二可视化界面中显示编辑过程及结果,并最终在所述第二可视化界面中显示所述第一目标预制件和所述第二目标预制件。
第二方面,本发明公开了一种基于Unity的预制件编辑装置,所述装置包括:
获取单元,用于在初始化的Unity中,获取第一预制件和第二预制件;
遍历单元,用户遍历所述第一预制件和所述第二预制件,得到所述第一预制件的第一字典和所述第二预制件的第二字典;
比对单元,用于将所述第一字典和所述第二字典进行比对,得到比对结果信息;
配置单元,用于根据所述比对结果信息配置可执行编辑操作的控件;
可视化单元,用于生成第一可视化界面以及将所述比对结果信息和所述控件在所述第一可视化界面中显示;
生成单元,用户在所述第一可视化界面中,利用所述控件对所述第一预制件和所述第二预制件进行编辑,生成第一目标预制件和第二目标预制件。
第三方面,本发明公开了一种计算机存储介质,所述计算机存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现所述的一种基于Unity的预制件编辑方法。
采用上述技术方案,本发明所述的一种基于Unity的预制件编辑方法、装置及存储介质具有如下有益效果:本申请中将预制件的编辑过程在可视化界面中进行展示,并基于树级结构进行节点及其属性的编辑,使得预制件的编辑操作更加快速敏捷和准确可控,提高了游戏开发升级的效率;本申请中执行所述的基于Unity的预制件编辑方法的装置可以以插件的形式嵌入Unity中,并根据需求调动Unity的应用程序接口,与Unity的集成度高;此外,本装置还可以适用于包含了自定义变量和属性的预制件,可扩展性更高。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种基于Unity的预制件编辑方法的流程示意图;
图2是本发明实施例提供的一种基于Unity的预制件编辑方法中的遍历流程的示意图;
图3是本发明实施例提供的一种基于Unity的预制件编辑方法中的比对流程的示意图;
图4是本发明实施例提供的一种基于Unity的预制件编辑装置的结构示意图;
图5是本发明实施例提供的运行一种基于Unity的预制件编辑方法的计算机设备的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本发明的描述中,需要理解的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,对本发明公开的实施例中涉及的关键术语和缩略语进行定义。
Unity:一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。
预制件:Prefab,中文名又称预制物,是Unity3d中的一种资源类型,用于存储可重复使用的游戏对象,以方便快捷的创建实例。通过Prefab在场景中创建的所有实例,都会链接到原始的Prefab,所以当修改原始的Prefab时,所有场景中的所有Prefab实例都会被修改。Prefab文件的内容是通过YAML(YAMLAin'taMarkupLanguage)语言序列化的一个游戏对象,包含了这个游戏对象的所有描述信息,如游戏对象信息、组件实例和属性等。
应用程序接口:(ApplicationProgrammingInterface,API)是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码,或理解内部工作机制的细节。
YAML:YAMLAin'taMarkupLanguage,是一个可读性高,用来表达数据序列化的格式。为了维持文件的简洁,并避免数据输入的错误,YAML提供了结点参考(*)和散列合并(<<)参考到其他结点标签的锚点标记(&)。结点参考会将树状结构加入锚点标记的内容,并可以在所有数据结构中运作,散列合并只有散列表可以使用,可以将键值自锚点标记复制到指定的散列表中。此外,YAML支持用户自定的区域变量,包括:自定义的类别、结构或基本类型。YAML还提供了一个简单的关系体制,可以从树状结构的其他地方,重复相同的资料,而不必显示那些冗余的结构。YAML剖析器在将YAML转换成物件时,会自动将那些参考资料的结构展开。使用关联锚点展开阶层以形成一个摊平的格式,使得YAML解析器能透明地重组成完整的数据结构。
图1是本发明实施例提供的一种基于Unity的预制件编辑方法的流程示意图,本说明书提供了如实施例或流程示意图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图1所示,所述基于Unity的预制件编辑方法可以包括:
S110:在初始化的Unity中,获取第一预制件和第二预制件。
在一些可行的实施方式中,执行所述基于Unity的预制件编辑方法的装置可以以插件的形式嵌入在Unity中,与Unity高度集成,方便用户在游戏开发中使用。在Unity的初始化界面中,从菜单栏选择所述插件,进入预制件的编辑流程。
在一些可行的实施方式中,所述第一预制件可以为游戏新建并已完成的中文版本预制件,所述第二预制件为游戏新建的外语版本的预制件,此时所述第二预制件可以为空白预制件。
在另一些可行的实施方式中,所述第一预制件还可以为游戏版本升级后的中文版本预制件,所述第二预制件为游戏版本升级前的外语版本的预制件,此时,所述第二预制件不为空白预制件。也即,本方法可以用于完成新建的第二预制件,也可以用于修改旧版本的第二预制件。
S120:遍历所述第一预制件和所述第二预制件,得到所述第一预制件的第一字典和所述第二预制件的第二字典,并生成第一可视化界面。
在一些可行的实施方式中,如图2所示,本发明实施例提供的步骤S120可以包括以下步骤:
S210:调用Unity的应用程序接口遍历所述第一预制件,得到所述第一预制件的节点的名称和层级,并根据所述第一预制件的节点的名称和层级生成所述第一字典的树级结构的节点列表。
S220:调用Unity的应用程序接口遍历所述第二预制件,得到所述第二预制件的节点的名称和层级,并根据所述第二预制件的节点的名称和层级生成所述第二字典的树级结构的节点列表。
可以理解的是,通过调用Unity的应用程序接口能够对预制件进行序列化,从而将文本内容以YAML格式进行存储,并根据YAML格式的存储特点进行节点及其属性的遍历。
可以理解的是,所述第一字典和所述第二字典利用YAML的存储格式特点,可以使用缩进表示节点的层级关系,依次形成树级结构的节点列表。
可以理解的是,利用Unity的API能够生成树级结构的节点列表,也能获取节点的属性,包括属性类型和属性值,但受限的是只能获取Unity中定义的变量类型、属性类型,而获取不到用户自定义的变量和属性。
在一些可行的实施方式中,同样可以通过调用Unity的API能够生成所述第一可视化界面。所述Unity的API为统称,并没有限定具体的应用程序接口名称,也不限定函数的调用方法,一般基于常规的脚本语言即可完成调用。
S230:遍历所述第一预制件,抓取所述第一预制件的节点的属性类型和属性值,并将所述第一预制件的节点的属性类型和属性值对应添加至所述第一字典的树级结构的节点列表中。
S240:遍历所述第二预制件,抓取所述第二预制件的节点的属性类型和属性值,并将所述第二预制件的节点的属性类型和属性值对应添加至所述第二字典的树级结构的节点列表中。
在一些可行的实施方式中,所述插件利用C#语言进行编程,在C#的函数库中,定义了获取节点属性信息的函数方法如GetType和GetProperties。能够适用于包含了自定义的节点的变量名称和变量属性的预制件,可扩展性更高。
S130:将所述第一字典和所述第二字典进行比对,得到比对结果信息。
在一些可行的实施方式中,如图3所示,本发明实施例提供的步骤S130可以包括以下步骤:
S310:根据节点的层级、名称、属性类型和/或属性值逐个比对所述第一字典中的每一个节点和所述第二字典中的每一个节点,得到所述比对结果信息。
在一些可行的实施方式中,可以先可根据节点的层级确定所述第一字典中的第一目标节点和所述第二字典中的第二目标节点,并获取所述第一目标节点和所述第二目标节点各自的节点名称及其各个属性。首先判断处于同一层级的两个节点的节点名称是否一致,其次可以根据属性类型依次进行比对,得到所述比对结果信息。
可以理解的是,所述第一字典和所述第二字典利用YAML的存储格式特点,可以使用缩进表示节点的层级关系并以此确定比对的节点层级。
S320:获取节点忽略列表,所述节点忽略列表包括在预制件编辑过程中需要跳过比对步骤的节点的层级、名称、属性类型和/或属性值。
S330:判断所述第一字典中的节点和/或所述第二字典中的节点是否属于所述节点忽略列表。
S340:在所述第一字典中的节点和/或所述第二字典中的节点属于所述节点忽略列表时,则跳过比对步骤,并将比对结果信息默认设置为一致。
在一些可行的实施方式中,所述插件利用C#语言进行编程,在C#的函数库中,可定义节点比对及设置忽略条件的类和函数方法如privatevoid Compare与PrivatestaticList<string>IgnoreCompomentCompareComoment。在该步骤中可以自定义比对范围或条件,可扩展性更高。
可以理解的是,在所述第一字典中的节点和/或所述第二字典中的节点不属于所述节点忽略列表时,可以执行类似如步骤S310所述的比对步骤,得到所述比对结果信息。步骤S310可以在比对过程的开始,也可以在比对过程的最末环节,此处不作限定。
在一些可行的实施方式中,所述比对结果信息可以包括但不限于以下几种:
若在同一层级处,所述第一字典存在第一目标节点,但所述第二字典不存在第二目标节点也即在该层级处为空,则可将这种不一致的情况定义为第一类型的比对结果信息;
若在同一层级处,所述第二字典存在第二目标节点,但所述第一字典不存在第一目标节点也即在该层级处为空,则可将这种不一致的情况定义为第二类型的比对结果信息;
若在同一层级处,所述第一字典存在第一目标节点,所述第二字典存在第二目标节点,通过比对后,所述第一目标节点和所述第二目标节点的节点名称不一致,则可将这种不一致的情况定义为第三类型的比对结果信息;
若在同一层级处,所述第一字典存在第一目标节点,所述第二字典存在第二目标节点,通过比对后,所述第一目标节点和所述第二目标节点的节点名称一致,但属性类型或属性值不一致,则可将这种不一致的情况定义为第四类型的比对结果信息。
S140:根据所述比对结果信息配置可执行编辑操作的控件,并将所述比对结果信息和所述控件在所述第一可视化界面中显示。
在一些可行的实施方式中,本发明实施例提供的步骤S140可以包括以下步骤:
S410:根据所述比对结果信息,对所述第一字典和所述第二字典中比对结果信息为不一致的节点配置可执行编辑操作的控件,并在所述第一可视化界面中显示,所述可执行编辑操作包括节点及其属性的增加、删除和修改。
优选地,基于Until的事件机制,调用Unity的API为相应的节点添加可执行编辑操作的控件,并在所述第一可视化界面中显示。
优选地,可以根据本发明实施例提供的步骤S130中得到的多种类型的比对结果信息,以及考虑到编辑时的需求和习惯,可以添加但不限于以下控件:增加按钮,可以用于将所述第一字典的第一目标节点复制导入至所述第二字典,生成第二目标节点,也可以用于将所述第二字典的第二目标节点复制导入至所述第一字典,生成第一目标节点;删除按钮,可以用于删除所述第一字典的第一目标节点或者删除所述第二字典的第二目标节点;修改按钮,可以用于修改所述第一字典或所述第二字典中的节点名称或者属性值。
在一些可行的实施方式中,承袭YAML的特征,可以采用散列合并(<<)的形象作为增加按钮显示在所述第一可视化界面中。
S420:根据所述比对结果信息,在所述第一可视化界面中更新所述第一字典和所述第二字典中节点的显示颜色。
在一些可行的实施方式中,根据本发明实施例提供的步骤S130中得到的多种类型的比对结果信息,更改进行了比对的节点的显示颜色,以示区分,也使得用户在进行编辑操作时能够快速定位到比对结果不一致的节点且对比对结果信息一目了然,使得操作快速便捷。
S430:在所述第一可视化界面中生成信息显示窗口,以显示用户选择的节点的层级、名称、属性类型、属性值和比对结果信息。
优选地,通过在所述第一可视化界面中划分出所述信息显示窗口,以显示用户选择的的节点的层级、名称、属性类型、属性值和比对结果信息,同时还可以显示节点比对时的忽略信息,以方便用户进行准确的编辑。
S150:在所述第一可视化界面中,利用所述控件对所述第一预制件和所述第二预制件进行编辑,生成第一目标预制件和第二目标预制件。
在一些可行的实施方式中,本发明实施例提供的步骤S150可以包括以下步骤:
S510:在所述第一可视化界面中,利用所述控件对所述第一字典和所述第二字典中比对结果信息为不一致的节点及其属性执行增加、删除和修改的操作。
具体地,所述增加、删除和修改操作可以包括但不限于:
将所述第一字典的第一目标节点复制导入至所述第二字典,生成第二目标节点;
将所述第二字典的第二目标节点复制导入至所述第一字典,生成第一目标节点;
删除所述第一字典的第一目标节点或者删除所述第二字典的第二目标节点;
修改所述第一字典或所述第二字典中的节点名称或者属性值。
S520:根据所述增加、删除和修改的操作相应地对所述第一预制件和所述第二预制件进行编辑,生成所述第一目标预制件和所述第二目标预制件。
优选地,因为所述第一字典和所述第二字典以树级结构存储了所述第一预制件和所述第二预制件的文本内容,相应地,对所述第一字典和所述第二字典的编辑修改可以完成对所述第一预制件和所述第二预制件的编辑。
在一些可行的实施方式中,所述第一预制件可以作为所述第二预制件编辑的参考标准,因此无需对所述第一预制件进行编辑,但一般情况下,导入了所述第一预制件并根据所述第一预制件对所述第二预制件进行编辑之后,会提示并重新保存未曾修改的所述第一预制件和编辑后的所述第二预制件,将其分别作为所述第一目标预制件和所述第二目标预制件,也可以仅对所述第二预制件进行编辑和保存。
进一步地,所述基于Unity的预制件编辑方法还包括:
S610:生成第二可视化界面,并在所述第二可视化界面中显示所述第一预制件和所述第二预制件。
可以理解的是,所述第二可视化界面展示的是所述第一预制件和所述第二预制件中的游戏对象、组件等内容,不同于所述第一字典和所述第二字典的树级结构,所述第二可视化界面展示是预制件作为模板使用时的形象化内容,以使得用户在进行编辑操作时能相应地看到预制件的修改变化。
S620:在根据所述增加、删除和修改的操作相应地对所述第一预制件和所述第二预制件进行编辑时,实时地在所述第二可视化界面中显示编辑过程及结果,并最终在所述第二可视化界面中显示所述第一目标预制件和所述第二目标预制件。
本发明实施例还提供了一种基于Unity的预制件编辑装置,如图4所示,所述基于Unity的预制件编辑装置包括:
获取单元410,用于在初始化的Unity中,获取第一预制件和第二预制件。
遍历单元420,用于遍历所述第一预制件和所述第二预制件,得到所述第一预制件的第一字典和所述第二预制件的第二字典。
在一些可行的实施方式中,本发明实施例提供的遍历单元420可以包括以下部分:
第一遍历单元421,用于
调用Unity的应用程序接口遍历所述第一预制件,得到所述第一预制件的节点的名称和层级,并根据所述第一预制件的节点的名称和层级生成所述第一字典的树级结构的节点列表;
调用Unity的应用程序接口遍历所述第二预制件,得到所述第二预制件的节点的名称和层级,并根据所述第二预制件的节点的名称和层级生成所述第二字典的树级结构的节点列表。
第二遍历单元422,用于
遍历所述第一预制件,抓取所述第一预制件的节点的属性类型和属性值,并将所述第一预制件的节点的属性类型和属性值对应添加至所述第一字典的树级结构的节点列表中;
遍历所述第二预制件,抓取所述第二预制件的节点的属性类型和属性值,并将所述第二预制件的节点的属性类型和属性值对应添加至所述第二字典的树级结构的节点列表中。
比对单元430,用于将所述第一字典和所述第二字典进行比对,得到比对结果信息。
在一些可行的实施方式中,本发明实施例提供的比对单元430可以包括以下部分:
第一比对单元431,用于根据节点的层级、名称、属性类型和/或属性值逐个比对所述第一字典中的每一个节点和所述第二字典中的每一个节点,得到所述比对结果信息。
第二比对单元432,包括:
第二获取单元432-1,用于获取节点忽略列表,所述节点忽略列表包括在预制件编辑过程中需要跳过比对步骤的节点的层级、名称、属性类型和/或属性值。
判断单元432-2,用于判断所述第一字典中的节点和/或所述第二字典中的节点是否属于所述节点忽略列表。
跳过单元432-3,用于在所述第一字典中的节点和/或所述第二字典中的节点属于所述节点忽略列表时,则跳过比对步骤,并将比对结果信息默认设置为一致。
在一些可行的实施方式中,所述比对结果信息可以包括但不限于以下几种:
若在同一层级处,所述第一字典存在第一目标节点,但所述第二字典不存在第二目标节点也即在该层级处为空,则可将这种不一致的情况定义为第一类型的比对结果信息;
若在同一层级处,所述第二字典存在第二目标节点,但所述第一字典不存在第一目标节点也即在该层级处为空,则可将这种不一致的情况定义为第二类型的比对结果信息;
若在同一层级处,所述第一字典存在第一目标节点,所述第二字典存在第二目标节点,通过比对后,所述第一目标节点和所述第二目标节点的节点名称不一致,则可将这种不一致的情况定义为第三类型的比对结果信息;
若在同一层级处,所述第一字典存在第一目标节点,所述第二字典存在第二目标节点,通过比对后,所述第一目标节点和所述第二目标节点的节点名称一致,但属性类型或属性值不一致,则可将这种不一致的情况定义为第四类型的比对结果信息。
配置单元440,用于根据所述比对结果信息配置可执行编辑操作的控件。
具体地,根据所述比对结果信息,对所述第一字典和所述第二字典中比对结果信息为不一致的节点配置可执行编辑操作的控件,并在所述第一可视化界面中显示,所述可执行编辑操作包括节点及其属性的增加、删除和修改。
可视化单元450,用于生成第一可视化界面以及将所述比对结果信息和所述控件在所述第一可视化界面中显示。
在一些可行的实施方式中,本发明实施例提供的可视化单元450可以包括以下部分:
第一可视化单元451,用于根据遍历单元420得到的所述第一字典和所述第二字典生成第一可视化界面,并显示所述第一字典和所述第二字典。
第二可视化单元452,用于在所述第一可视化界面中显示所述可执行编辑操作的控件。
第三可视化单元453,用于根据比对单元430得到的所述比对结果信息,在所述第一可视化界面中更新所述第一字典和所述第二字典中节点的显示颜色。
第四可视化单元454,用于在所述第一可视化界面中生成信息显示窗口,以显示用户选择的节点的层级、名称、属性类型、属性值和比对结果信息。
在一些可行的实施方式中,所述可视化单元450中的第一可视化单元451、第二可视化单元452、第三可视化单元453、第四可视化单元454可以与其相应的过程环节中的单元结合使用,也可以作为整体单元在需要时被使用。
生成单元460,用于在所述第一可视化界面中,利用所述控件对所述第一预制件和所述第二预制件进行编辑,生成第一目标预制件和第二目标预制件。
在一些可行的实施方式中,在所述第一可视化界面中,利用所述控件对所述第一字典和所述第二字典中比对结果信息为不一致的节点及其属性执行增加、删除和修改的操作。
具体地,所述增加、删除和修改操作可以包括但不限于:
将所述第一字典的第一目标节点复制导入至所述第二字典,生成第二目标节点;
将所述第二字典的第二目标节点复制导入至所述第一字典,生成第一目标节点;
删除所述第一字典的第一目标节点或者删除所述第二字典的第二目标节点;
修改所述第一字典或所述第二字典中的节点名称或者属性值。
具体地,根据所述增加、删除和修改的操作相应地对所述第一预制件和所述第二预制件进行编辑,生成所述第一目标预制件和所述第二目标预制件。
所述基于Unity的预制件编辑装置还可以包括:
第五可视化单元455,用于
生成第二可视化界面,并在所述第二可视化界面中显示所述第一预制件和所述第二预制件;
在根据所述增加、删除和修改的操作相应地对所述第一预制件和所述第二预制件进行编辑时,实时地在所述第二可视化界面中显示编辑过程及结果,并最终在所述第二可视化界面中显示所述第一目标预制件和所述第二目标预制件。
本发明实施例所述的一种基于Unity的预制件编辑装置与方法实施例基于相同的发明构思,详情请参考方法实施例,在此不再赘述。
本发明实施例还提供了一种计算机设备,所述计算机设备包括:处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如本发明实施例的一种基于Unity的预制件编辑方法。
存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本发明实施例所提供的方法实施例可以在计算机终端、服务器或者类似的运算装置中执行,即上述计算机设备可以包括计算机终端、服务器或者类似的运算装置。图5是本发明实施例提供的运行一种基于Unity的预制件编辑方法的计算机设备的硬件结构框图,如图5所示,该计算机设备的内部结构可包括但不限于:处理器、网络接口及存储器。其中,计算机设备内的处理器、网络接口及存储器可通过总线或其他方式连接,在本说明书实施例所示图5中以通过总线连接为例。
其中,处理器(或称CPU(CentralProcessingUnit,中央处理器))是计算机设备的计算核心以及控制核心。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等)。存储器(Memory)是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器可以是高速RAM存储设备,也可以是非不稳定的存储设备(non-volatile memory),例如至少一个磁盘存储设备;可选的还可以是至少一个位于远离前述处理器的存储装置。存储器提供存储空间,该存储空间存储了电子设备的操作系统,可包括但不限于:Windows系统(一种操作系统),Linux(一种操作系统),Android(安卓,一种移动操作系统)系统、IOS(一种移动操作系统)系统等等,本发明对此并不作限定;并且,在该存储空间中还存放了适于被处理器加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。在本说明书实施例中,处理器加载并执行存储器中存放的一条或一条以上指令,以实现上述方法实施例提供的一种基于Unity的预制件编辑方法。
本发明实施例还提供了一种计算机存储介质,所述计算机存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行如本发明实施例所述的一种基于Unity的预制件编辑方法。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random AccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、系统和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于Unity的预制件编辑方法,其特征在于,所述方法包括:
在初始化的Unity中,获取第一预制件和第二预制件;
遍历所述第一预制件和所述第二预制件,得到所述第一预制件的第一字典和所述第二预制件的第二字典,并生成第一可视化界面;
将所述第一字典和所述第二字典进行比对,得到比对结果信息;
根据所述比对结果信息配置可执行编辑操作的控件,并将所述比对结果信息和所述控件在所述第一可视化界面中显示;
在所述第一可视化界面中,利用所述控件对所述第一预制件和所述第二预制件进行编辑,生成第一目标预制件和第二目标预制件。
2.根据权利要求1所述的一种基于Unity的预制件编辑方法,其特征在于,所述遍历所述第一预制件和所述第二预制件,得到所述第一预制件的第一字典和所述第二预制件的第二字典包括:
调用Unity的应用程序接口遍历所述第一预制件,得到所述第一预制件的节点的名称和层级,并根据所述第一预制件的节点的名称和层级生成所述第一字典的树级结构的节点列表;
调用Unity的应用程序接口遍历所述第二预制件,得到所述第二预制件的节点的名称和层级,并根据所述第二预制件的节点的名称和层级生成所述第二字典的树级结构的节点列表。
3.根据权利要求2所述的一种基于Unity的预制件编辑方法,其特征在于,所述遍历所述第一预制件和所述第二预制件,得到所述第一预制件的第一字典和所述第二预制件的第二字典还包括:
遍历所述第一预制件,抓取所述第一预制件的节点的属性类型和属性值,并将所述第一预制件的节点的属性类型和属性值对应添加至所述第一字典的树级结构的节点列表中;
遍历所述第二预制件,抓取所述第二预制件的节点的属性类型和属性值,并将所述第二预制件的节点的属性类型和属性值对应添加至所述第二字典的树级结构的节点列表中。
4.根据权利要求2或3所述的一种基于Unity的预制件编辑方法,其特征在于,所述将所述第一字典和所述第二字典进行比对,得到比对结果信息包括:
根据节点的层级、名称、属性类型和/或属性值逐个比对所述第一字典中的每一个节点和所述第二字典中的每一个节点,得到所述比对结果信息。
5.根据权利要求1所述的一种基于Unity的预制件编辑方法,其特征在于,所述将所述第一字典和所述第二字典进行比对,得到比对结果信息还包括:
获取节点忽略列表,所述节点忽略列表包括在预制件编辑过程中需要跳过比对步骤的节点的层级、名称、属性类型和/或属性值;
判断所述第一字典中的节点和/或所述第二字典中的节点是否属于所述节点忽略列表;
在所述第一字典中的节点和/或所述第二字典中的节点属于所述节点忽略列表时,则跳过比对步骤,并将比对结果信息默认设置为一致。
6.根据权利要求1所述的一种基于Unity的预制件编辑方法,其特征在于,所述根据所述比对结果信息配置可执行编辑操作的控件,并将所述比对结果信息和所述控件在所述第一可视化界面中显示包括:
根据所述比对结果信息,对所述第一字典和所述第二字典中比对结果信息为不一致的节点配置可执行编辑操作的控件,并在所述第一可视化界面中显示,所述可执行编辑操作包括节点及其属性的增加、删除和修改;
根据所述比对结果信息,在所述第一可视化界面中更新所述第一字典和所述第二字典中节点的显示颜色;
在所述第一可视化界面中生成信息显示窗口,以显示用户选择的节点的层级、名称、属性类型、属性值和比对结果信息。
7.根据权利要求6所述的一种基于Unity的预制件编辑方法,其特征在于,所述在所述第一可视化界面中,利用所述控件对所述第一预制件和所述第二预制件进行编辑,生成第一目标预制件和第二目标预制件包括:
在所述第一可视化界面中,利用所述控件对所述第一字典和所述第二字典中比对结果信息为不一致的节点及其属性执行增加、删除和修改的操作;
根据所述增加、删除和修改的操作相应地对所述第一预制件和所述第二预制件进行编辑,生成所述第一目标预制件和所述第二目标预制件。
8.根据权利要求7所述的一种基于Unity的预制件编辑方法,其特征在于,所述方法还包括:
生成第二可视化界面,并在所述第二可视化界面中显示所述第一预制件和所述第二预制件;
在根据所述增加、删除和修改的操作相应地对所述第一预制件和所述第二预制件进行编辑时,实时地在所述第二可视化界面中显示编辑过程及结果,并最终在所述第二可视化界面中显示所述第一目标预制件和所述第二目标预制件。
9.一种基于Unity的预制件编辑装置,其特征在于,所述装置包括:
获取单元,用于在初始化的Unity中,获取第一预制件和第二预制件;
遍历单元,用于遍历所述第一预制件和所述第二预制件,得到所述第一预制件的第一字典和所述第二预制件的第二字典;
比对单元,用于将所述第一字典和所述第二字典进行比对,得到比对结果信息;
配置单元,用于根据所述比对结果信息配置可执行编辑操作的控件;
可视化单元,用于生成第一可视化界面以及将所述比对结果信息和所述控件在所述第一可视化界面中显示;
生成单元,用于在所述第一可视化界面中,利用所述控件对所述第一预制件和所述第二预制件进行编辑,生成第一目标预制件和第二目标预制件。
10.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现如权利要求1至8中任一项所述的一种基于Unity的预制件编辑方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010337984.8A CN111552468B (zh) | 2020-04-26 | 2020-04-26 | 一种基于Unity的预制件编辑方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010337984.8A CN111552468B (zh) | 2020-04-26 | 2020-04-26 | 一种基于Unity的预制件编辑方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111552468A true CN111552468A (zh) | 2020-08-18 |
CN111552468B CN111552468B (zh) | 2021-03-05 |
Family
ID=72004429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010337984.8A Active CN111552468B (zh) | 2020-04-26 | 2020-04-26 | 一种基于Unity的预制件编辑方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111552468B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112169313A (zh) * | 2020-10-19 | 2021-01-05 | 网易(杭州)网络有限公司 | 一种游戏界面的设置方法及装置、电子设备、存储介质 |
CN112817585A (zh) * | 2021-02-26 | 2021-05-18 | 厦门极致互动网络技术股份有限公司 | 一种基于Unity编辑器的Cocos2dx UI界面搭建方法 |
WO2023039898A1 (zh) * | 2021-09-18 | 2023-03-23 | 厦门雅基软件有限公司 | 编辑指令的响应方法、装置、电子设备及存储介质 |
WO2023045785A1 (zh) * | 2021-09-22 | 2023-03-30 | 北京有竹居网络技术有限公司 | 游戏引擎资源的处理方法、装置、存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105404509A (zh) * | 2015-11-11 | 2016-03-16 | 神州数码国信信息技术(苏州)有限公司 | 基于ExtJS UI可视化生成代码的方法 |
CN110045949A (zh) * | 2019-05-10 | 2019-07-23 | 上海紫翊网络科技有限公司 | 一种同一项目不同分支工程的预制件合并方法及装置 |
CN110457054A (zh) * | 2019-07-22 | 2019-11-15 | 珠海金山网络游戏科技有限公司 | 一种UnityNGUI控件锚点更新模式优化方法及装置 |
CN110795915A (zh) * | 2018-07-31 | 2020-02-14 | 中兴通讯股份有限公司 | xml文件批量修改方法、系统、设备和计算机可读存储介质 |
-
2020
- 2020-04-26 CN CN202010337984.8A patent/CN111552468B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105404509A (zh) * | 2015-11-11 | 2016-03-16 | 神州数码国信信息技术(苏州)有限公司 | 基于ExtJS UI可视化生成代码的方法 |
CN110795915A (zh) * | 2018-07-31 | 2020-02-14 | 中兴通讯股份有限公司 | xml文件批量修改方法、系统、设备和计算机可读存储介质 |
CN110045949A (zh) * | 2019-05-10 | 2019-07-23 | 上海紫翊网络科技有限公司 | 一种同一项目不同分支工程的预制件合并方法及装置 |
CN110457054A (zh) * | 2019-07-22 | 2019-11-15 | 珠海金山网络游戏科技有限公司 | 一种UnityNGUI控件锚点更新模式优化方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112169313A (zh) * | 2020-10-19 | 2021-01-05 | 网易(杭州)网络有限公司 | 一种游戏界面的设置方法及装置、电子设备、存储介质 |
CN112169313B (zh) * | 2020-10-19 | 2024-04-12 | 网易(杭州)网络有限公司 | 一种游戏界面的设置方法及装置、电子设备、存储介质 |
CN112817585A (zh) * | 2021-02-26 | 2021-05-18 | 厦门极致互动网络技术股份有限公司 | 一种基于Unity编辑器的Cocos2dx UI界面搭建方法 |
WO2023039898A1 (zh) * | 2021-09-18 | 2023-03-23 | 厦门雅基软件有限公司 | 编辑指令的响应方法、装置、电子设备及存储介质 |
WO2023045785A1 (zh) * | 2021-09-22 | 2023-03-30 | 北京有竹居网络技术有限公司 | 游戏引擎资源的处理方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111552468B (zh) | 2021-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111552468B (zh) | 一种基于Unity的预制件编辑方法、装置及存储介质 | |
US11383162B2 (en) | Voice skill game editing method, apparatus, device and readable storage medium | |
KR100928192B1 (ko) | 내장형 디바이스에서의 3d 콘텐츠에 대한 오프라인 최적화파이프라인 | |
CN108287718B (zh) | 基于游戏引擎的特效编辑方法及装置 | |
KR20090006727A (ko) | Gui 어플리케이션 개발 지원 장치 및 개발 지원 방법 | |
CN112099792A (zh) | 一种可视化ui样式设计方法及系统 | |
CN111553967A (zh) | 一种基于Unity的动画资源文件制作方法、模块及存储介质 | |
JP4978233B2 (ja) | シミュレータ開発システム及びシミュレータ開発方法 | |
CN109513212B (zh) | 一种2d手机游戏ui、剧情编辑方法及系统 | |
CN112035588A (zh) | 构建空间数据规则库引擎的方法及gis数据质量检查方法 | |
CN112138380B (zh) | 一种游戏中数据编辑的方法和装置 | |
JP3625084B2 (ja) | ソフトウエア部品の再利用システム | |
JP4983519B2 (ja) | 開発支援装置および開発支援プログラム | |
JP4629183B2 (ja) | 要求仕様記述支援装置およびその方法、記録媒体 | |
CN115170700A (zh) | 基于Flutter框架实现CSS动画的方法、计算机设备及存储介质 | |
CN115543291A (zh) | 一种界面模板套件的开发应用方法及装置 | |
CN108647198B (zh) | 一种基于Unity的字编辑方法及终端 | |
JP2005301336A (ja) | 設計支援システム | |
CN113934959A (zh) | 一种程序预览方法、装置、计算机设备和存储介质 | |
JP2009169628A (ja) | 監視制御システムの構築装置、構築方法およびプログラム | |
CN113434940B (zh) | 跨专业模型构件同步方法、装置、计算机设备和存储介质 | |
CN113730920B (zh) | 一种预设组件同步属性的方法及其系统 | |
JPH06301668A (ja) | シミュレーションデータ構築方法 | |
JP2002312206A (ja) | 状態遷移情報検証装置及び状態遷移情報検証方法 | |
CN118267708A (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 | ||
GR01 | Patent grant |