开发和联调环境搭建(新手必读)

【VLab_01】组件开发环境使用指南v1.2.2 (这个版本是最新的 截止 2020-7-2)

https://shimo.im/docs/dae273ba5b044761

一、拉取代码仓库

开发联调用的编辑器仓库地址:ssh://git@git.sdp.nd:vlab-projects/vlab-editor-4test.git
GitLab地址:http://git.sdp.nd/vlab-projects/vlab-editor-4test
默认将签出develop分支,用Git客户端克隆下来的工程仓库结构如下图所示:

二、代码仓库目录结构

工程仓库使用Git子模块的方式引用组件和元器件的代码仓库,U3D工程中存放代码
1、U3DProject目录是Unity工程目录,使用Unity打开即可
2、CodeProject目录是实验室通用业务框架代码(CommonBase)的子模块,包含实验数据模型、元器件数据模型和业务等逻辑
3、CodeRepos目录是实验室业务组件和引擎组件的子模块仓库,注意CodeRepos本身只是一个子仓库集合,可以执行bat脚本获取各组件的工程代码
4、ElementResource是元器件资源(模型、预制体)的子模块仓库
5、NugetImport目录是更新和导入组件nuget包和DLL等文件的工程,NugetImport工程本身并没有用,我们只是用nuget的能力来管理组件包和版本等,NugetCopy2Plugins.bat脚本可以将组件包中的资源导入Plugins、StreamingAssets等目录
6、Pack是安装包打包的文件
7、VLabEditorProject是编辑器业务逻辑工程子模块,即编辑器专有的业务
8、VlabEquip是元器件业务逻辑和配置文件子模块,主要存放元器件Lua脚本和Json配置文件等
9、签出ElementResource和VlabEquip子模块仓库后,请执行Link2ElementResource.bat脚本,将创建相关软连接将目录引用到Assets/Resources目录中

签出子模块仓库的方法如下图所示(乌龟客户端右键菜单中单击“更新子模块”):

选中(高亮)所需要的子模块仓库,点击确定后就会下载相应子模块仓库。
注1、签出后必须到子模块目录中切换需要的分支,否则子模块会处于脱离分支的状态而无法拉取更新
注2、签出子模块操作是可选的,可以根据自己开发需要签出必要的子模块仓库。

三、在Unity中运行实验编辑器

!!! 请使用Unity2017版本,建议使用Unity2017.4.5以上版本。
1、在Unity中打开U3DProject工程目录,即可打开编辑器工程,打开Scene/Launch场景,如下图所示。

2、点击运行(播放)即可开始运行实验编辑器,将会下载元器件在线资源,在U3DProject/LabObjPackage目录中。
3、【本地资源模式】切换元器件资源本地模式(首先请签出ElementResource和VlabEquip子模块仓库并执行Link2ElementResource.bat脚本),选择Launch场景中的Scheduler对象,在Inspector窗口中选中“Use Local Resource”,保存。切换本地资源模式后,将不会下载和更新在线资源,本地开发元器件比较方便。

4、【在线资源模式】取消勾选“Use Local Resource”,即切换在线资源模式,将从实验室资源管理平台下载元器件资源,下载的资源状态有(DRAFT、DEVELOPING、TESTING、WAITPUBLISH、PUBLISHED、ONLINE)六种状态。在配置文件U3DProject\Assets\StreamingAssets\Config\ModuleServices.json中,可以配置要下载的资源状态(可以配置多个,用个逗号隔开),如图:

四、打包输出编辑器

HINT:建议使用另一个独立目录进行工程打包工作,提高效率。
1、切换成在线资源模式,即取消勾选“Use Local Resource”,保存场景。
2、如果创建过元器件资源的软连接,则执行UnlinkElementResource.bat,删除所有本地资源软连接(否则编辑器会包含所有元器件资源)
3、【可选】更新NugetImport,执行NugetCopy2Plugins.bat以更新组件DLL和资源
4、【可选】编译CodeProject和VLabEditorProject工程
5、Unity中选择Tool->打包->PC->编辑器,输入版本号,点击实验编辑器(日常包)/(正式包),会输出到E:\project\VLab-develop\vlab-editor-pack目录下。(没有E盘会出什么鬼?)
6、【可选】配置是否更新组件/元器件资源,conf.ini文件中ComponentUpdate控制是否更新组件,EquipmentUpdate控制是否更新元器件资源
7、【可选】ModuleConfig.json配置本地记录的组件版本,即组件更新时用于比对版本号的配置文件
8、【可选】配置资源下载状态,请编辑打包目录中LabEditor_Data\StreamingAssets\Config\ModuleServices.json文件,同上文所述(第三节第4点)