器材制作流程

更新记录

时间 作者 更新说明
2020-12-31 唐绍军 更新提测相关的内容,使用OA提测,添加器材版本号规则
- 唐绍军 创建第一版本

1. 创建开发工程

1. 拉取vlab-editor(以TortoiseGit进行演示,大家可自行使用任一git工具)

工程git地址:http://git.sdp.nd/vlab-projects/vlab-editor-4test.git
使用git克隆一个工程,目录结构下最好不要包含中文
默认开发分支:develop
开发场景:Launch

2. 更新子模块

与器材的开发相关的,子模块一般只需要更新ElementResource和VlabEquip即可。

3. 切换子模块的开发分支

更新子模块的操作不会自动切换子模块的分支到指定分支上,需要手动切换。
ElementResource: develop分支
VlabEquip:develop分支
VLabElementCode:develop分支

4. 建立子模块与工程的软链接

运行vlab-editor目录下的Link2ElementResource.bat文件建立子模块与工程的软链接。
ElementResource和VlabEquip里的文件会被软链接到vlab-editor\U3DProject\Assets\Resources\ElementResource 目录下,以被工程加载。

5. 更新VlabEquip仓库的子模块

VlabEquip仓库中有一个存放元器件自动上传工具的子模块,需要上传器材时需要更新此模块

到此工程的搭建就算完成了,下面来介绍一下器材开发过程中主要涉及到的两个子模块ElementResouce和VlabEquip

2. ElementResouce


1. 模块说明

仓库名:vlab-elements
仓库地址:http://git.sdp.nd/vlab-projects/vlab-elements.git
开发主分支:develop
模块用处:主要用于存放器材的模型资源,预制体以及图标,通用能力组件的相关资源也会放在该仓库中

2. 目录说明

1. LabElementPrefabs文件夹

用途:用于存放制作好的器材的预制体,本地模式下,模型即是从该文件夹中查找,
使用方式:根据器材不同的分类,将器材放在对应的子文件夹下。
tip1:器材可能会属于多个分类,比如烧杯既属于化学的容器类也属于物理的电学。这里只要有放在一个主学科的文件夹下面即可,无需每个学科下都存放。
tip2:由于化学的特殊性,器材统一直接放在Chemistry的分类下面。还有一类特殊的器材叫做子元器件,放在SubEquipment文件下。

2. LabElementIcons文件夹

用途:用于存放器材的图标的文件。
使用方式:器材的图标名称为【器材编码】.png的形式命名,放在该文件夹下,即可被读取到。
tip: DrugStore文件夹放置的是药品的图标,目前药品已经统一使用线上配置的方式,该文件夹已经没用了。

3. ElementAudio文件夹

用途:用于存放器材中使用到的音频文件资源。
使用方式:将资源放入该文件夹即可使用。

4. LabParticle文件夹

用途:存放一些公共使用的颗粒文件
其他文件不再一 一赘述,需要注意的就是将对应的资源放在对应的文件夹下,保持整个仓库的整洁即可

3. VlabEquip


1. 模块说明

仓库名:vlab_equip
仓库地址:http://git.sdp.nd/component-dll/vlab_equip.git
开发主分支:develop
模块用处:主要用于存放器材代码和器材配置。也会存放器材相关的unity编辑器扩展工具代码

2. 目录说明

1. AutoObjUpload文件夹

用途:存放自动上传工具的子模块
使用:器材开发完后,打包的器材包就会生成在该文件夹下,使用其中的上传工具即可将器材包上传管理平台

2. EditorModeConfig

用途:主要用于存放器材学科配置文件,药品配置文件。
EquipmentsCategory:器材学科配置文件,每个器材都需要配置该文件,才能在编辑器的本地模式中看到对应的器材。详细的配置方式,会在下文说明。
DrugConfig.csv:该文件是旧药品数据的配置表,新的药品已经不通过该表配置,请看下一项介绍
DrugConfigsV21文件夹:新的药品配置是将一个个药品分开来,独立配置。

3. LabEditorTool

用途:器材相关的unity编辑器扩展代码应放在该文件夹的Editor下。

4. LabElementLua

用途:存放器材的脚本和配置文件的地方
使用:每个器材通过一个独立的文件夹存放在该文件夹中,使编辑器可以直接加载到器材。

5. Primitive

用途:该文件夹只用存放一个配置文件ElementResources.json
ElementResources.json:当器材需要动态加载unity中的资源时,需要将对应的资源路径配置到该文件中,用于打包器材时,告诉打包工具该资源也需要一并打包到AB包中。
关于工程的介绍先到此为此,下面我们将正式开始介绍器材制作流程

4. 器材从创建到提测


1. 确定器材编码(HelloWorld)

器材编码是器材的唯一标识,在创建器材时一定要确定自己的编码是唯一的不与其他的器材重复。
这里使用HelloWorld作为器材编码。后面使用到HelloWorld的地方请记得替换成你使用的器材编码。
器材编码的命名规则请遵循器材开发指南中的器材编码命名规范。

2. 确定器材ID(23333)

器材ID是一串大于1000的数字。
由于历史原因器材ID的作用已经被器材编码所取代,但由于目前还没完全解除依赖,因此还是需要配置一个器材ID。
这里使用23333作为器材ID。

3. 配置EquipmentsCategory.xml文件

找到器材所属分类的节点下,新增如下所示的一行配置即可。

图中的配置表示在电学分类下,配置了一个中文名是:器材中文名称,器材编码是HelloWorld,器材Id是23333的器材。

4. 创建器材模型预制体

在unity中创建以下预制体

需要注意的是预制体模型的物体的layer必须是LabObject才能在场景中看到并且可以交互,有关于更多的关于Tag和Layer的使用,可以查看有关Tags以及Layer各端使用说明
关于器材模型的放置规范请遵循器材开发指南中的器器材配置规范。
并且将预制体保存在对应的学科目录下面。

5. 创建器材文件夹

在VlabEquip仓库的Template文件夹下找到HelloWorkd_PC的文件夹,将其复制到LabElementLua文件夹下。
HelloWorld_PC文件夹下的各个文件的说明请参考器材文件结构分页做进一步的了解.

6. 配置器材类型

在石墨文档中https://shimo.im/sheets/NJkbEZ9de0HNxDqR/MODOC 配置自己器材的类型,不要跟别人重复,从最下面开始填写按顺序填写,不要特立独行!!

到此一个简单的器材就已经创建好了。

也可以选择使用自动创建元器件工具创建一键创建元器件
使用说明:http://192.168.9.115/index.php?doc-view-14120

7. 打包器材

打包器材前的准备

在打包之前需要确认除了器材的预制体以外,是否还使用到了其他资源,如音频或者材质等
如果有的话,需要先配置 Primitive 文件夹下的ElementResources.json文件,具体配置方式如下

打包流程

在unity中使用预先写好的打包工具即可一键打包

具体使用方法如下:
1.打开打包工具
2.在Project面板中找到自己的器材预制体,选中
3.打包工具中修改你所打的包的版本号,版本号以及依赖的版本号填写,遵循下面的规则:

1. 器材版本号:版本号由三位数组成,前两位数与当前器材的策划案版本保持一致、最后一位数为器材的迭代版本。比如策划案版本为1.01,则第一个器材版本的版本号应该为 1.1.02. 最低播放器版本号:器材依赖最低的播放组件版本号,该版本号应不小于你所依赖的其他组件所依赖的播放组件版本。比如你所依赖的VLabCommonLua依赖的播放组件版本为2.10.0,那么这里填写的版本号就不应低于2.10.03. 最低引擎版本号:器材依赖最低的引擎组件版本号,配置方式与最低播放器版本号一致。
4. VLabCommonLua:依赖的VLabcommonLua基类的版本号,当你使用基类提供的接口时,应明确提供该接口的最低版本,并填写相关的版本号。比如你使用了基类中在3.2.80版本添加的SetCurrentIcon接口,那么这里填写的版本号不应低于3.2.805.VLabElementBase:依赖的VLabElementBase基类的版本号,与VLabCommonLua一样的配置方式。
6.填写VLabCommonLua和VLabElementBase的版本号时应同时关注这两个基类之间的依赖关系,VLabCommonLua的版本要高于你配置的VLabElementBase版本中依赖的VLabCommonLua版本高。

4.点击【导出器材包】按钮生成器材脚本包
5.点击【导出器材模型包】按钮生成器材模型包
6.使用快捷键ctrl+alt+r或者在LuaTool菜单栏下点击【打开上传目录】,器材的生成路径就在打开文件夹的LabObjPackage文件夹下。

8. 在OA上传器材并提测

首先找到你已经打出来的器材包,生成的器材包会放在U3DProject同级目录的VLabEquip\AutoObjUpload\元器件自动上传工具文件夹下,也可以通过unity编辑器下LuaTool菜单栏下点击【打开上传目录】打开。
然后具体的提测流程请查看[https://www.showdoc.cc/VLab?page_id=4999054053489561](https://www.showdoc.cc/VLab?page_id=4999054053489561)