本发明涉及游戏开发,尤其涉及一种基于unity的场景资源生成方法。
背景技术:
1、开发模拟经营类游戏,需要通过场景中不同的模型物件,例如建筑模型、人物模型、地块模型等,来承载游戏中的经营玩法和模拟体验,同时,游戏中可能存在多个不同的场景,不同的场景中又会收纳不同的模型预制。在一个场景的美术资源代入的工作流中,具体如下:
2、第一步需要先由场景原画制作psd文件;
3、第二步对psd文件中的图片进行切分,依次保存为png文件存放在资源目录中;
4、第三步将同属于一个模型预制的所有图片组装成一个预制体文件;
5、第四步将制作好的预制文件代入到unity场景中并根据psd原文件还原每个模型的位置;
6、最终才能输出在游戏中能够使用的unity场景。在这四个步骤中,切分图片、保存图片、生成预制和位置还原的操作是机械重复的,难度低但是消耗时间长,导出一个模型需要至少一个小时的时间。因此,我们需要一个开发工具能够实现输入一个psd文件,自动化将psd中的每个图层保存成文件并输出成模型预制体,最后根据psd文件中的位置将指定场景还原成psd中的样式,输出可用的unity场景,以此提高场景美术资源代入的效率。
技术实现思路
1、本发明的目的在于提供一种基于unity的场景资源生成方法。
2、为实现上述目的,本发明采用以下技术方案:
3、一种基于unity的场景资源生成方法,包括以下步骤:
4、s1、基于unity编辑器的扩展窗口构建一场景资源生成工具;
5、s2、获取psd文件,场景资源生成工具调用unity加载场景接口,打开对应的场景,解析psd文件并获取各个图层的信息;
6、s3、选择信息中的图片和指定导出路径,在指定目录中进行查重,当有重复的图片则选择覆盖对应图片,否则直接导至指定目录;
7、s4、基于信息生成与场景对应的节点,根据信息生成模型预制体并挂载在对应的节点上,生成场景下的预制体节点树;
8、s5、选择预制体和指定导出路径,在指定目录中进行查重,当有重复的预制体则选择覆盖覆盖对应预制体,否则直接导至指定目录。
9、进一步地,所述步骤s2中的解析psd文件并获取各个图层的信息,信息包括类型、数据和关系;
10、所述类型包括节点、文本和图片;
11、所述数据包括图片信息、文本信息、位置和尺寸;
12、所述关系包括各个图层之间的父子关系。
13、进一步地,所述步骤s3具体为:
14、s31、根据步骤s2获取的各个图层的信息,生成图片选择列表,选择指定的图片,读取图片的通道数据,逐个像素还原成unity编辑器中的texture数据;
15、s32、根据图片信息,读取psd文件中图片的命名,在目录中进行查重,查询是否存在同样命名的图片;
16、s33、当存在同样命名的图片时,选择覆盖对应的图片,否则根据指定的路径将图片导入指定的目录中。
17、进一步地,所述步骤s4具体为:
18、s41、添加一canvas图层进行打底,对信息进行多级分组和命名;
19、s42、根据分组和命名生成节点和预制体,根据图层的文本信息的位置生成预制体的中心点;
20、s43、选择预制体并根据中心点将预制体挂载在场景上对应的节点,生成场景下的预制体节点树。
21、进一步地,所述步骤s41具体为:
22、添加一canvas图层进行打底,用原来标记场景的背景大小和模型预制体的定位;
23、根据信息进行多级分组,多级分组包括根据信息中的类型作的一级分组和自定义命名的二级分组,一级分组设有一包含文本信息的图层,根据文本信息的原点标记为模型预制体的中心点;
24、进一步地,所述步骤s42具体为:
25、根据一级分组生成与场景对应的节点,根据一级分组之下的每个二级分组生成对应的预制体,二级分组生成的预制体属于一级分组,统一挂载在节点下;
26、根据图层的文本信息的位置生成预制体的中心点。
27、进一步地,所述步骤s43具体为:
28、选取节点,选择预制体并根据中心点将预制体挂载在场景上对应的节点,进行位置的对齐,生成场景下的预制体节点树。
29、进一步地,所述步骤s5还包括选择覆盖导入,该预制体会继承已有预制父节点上的属性和组件。
30、采用上述技术方案后,本发明与背景技术相比,具有如下优点:
31、本发明基于unity构建一场景资源生成工具,实现对psd文件自动化解析和资源到处,节省了在代入场景资源时,重复简单的人工操作,极大地减少了人力成本;通过减少人工操作,根据psd文件中的数据进行psd文件中的内容在unity场景中的还原,提高了美术资源代入的效率和质量,减少了时间成本。
1.一种基于unity的场景资源生成方法,其特征在于,包括以下步骤:
2.如权利要求1所述的一种基于unity的场景资源生成方法,其特征在于:所述步骤s2中的解析psd文件并获取各个图层的信息,信息包括类型、数据和关系;
3.如权利要求2所述的一种基于unity的场景资源生成方法,其特征在于,所述步骤s3具体为:
4.如权利要求1所述的一种基于unity的场景资源生成方法,其特征在于,所述步骤s4具体为:
5.如权利要求4所述的一种基于unity的场景资源生成方法,其特征在于,所述步骤s41具体为:
6.如权利要求5所述的一种基于unity的场景资源生成方法,其特征在于:所述步骤s42具体为:
7.如权利要求6所述的一种基于unity的场景资源生成方法,其特征在于:所述步骤s43具体为:
8.如权利要求1所述的一种基于unity的场景资源生成方法,其特征在于:所述步骤s5还包括选择覆盖导入,该预制体会继承已有预制父节点上的属性和组件。