开发者指南-101实验室

1.代码仓库

1.1 代码仓库地址

GitLab地址:http://git.sdp.nd/app-u3d/vlab-player
101实验室主仓库:ssh://git@git.sdp.nd:app-u3d/vlab-player.git 或 http://git.sdp.nd/app-u3d/vlab-player.git

1.2 主仓库拉取

主仓库包含U3DProject工程和子模块仓库关联配置。
建议使用ssh方式拉取仓库,拉取仓库命令:

  • $ git clone git@git.sdp.nd:app-u3d/vlab-player.git

默认签出develop分支,主仓库目录结构图如下图所示:

PS:有权限问题请找洪彬(140913)开通

1.3 子模块仓库拉取

子模块仓库则包括各代码仓库,为了保证代码开发将使用到的子模块仓库拉取下来。
签出子模块仓库的方法如下图所示(乌龟客户端右键菜单中单击“更新子模块”):

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

1.4 目录结构说明

  • CodeProject:实验室通用业务框架代码(CommonBase)子模块,包含实验数据模型、元器件数据模型和业务等逻辑,101实验室、101实验加试、实验编辑器共用。
  • CodeRepos:实验室业务组件和引擎组件的子模块,注意CodeRepos本身只是一个子仓库集合,可以执行bat脚本获取各组件的工程代码。
  • NugetImport:更新和导入组件nuget包和DLL等文件的工程,NugetImport工程本身并没有用,我们只是用nuget的能力来管理组件包和版本等,NugetCopy2Plugins.bat脚本可以将组件包中的资源导入Plugins、StreamingAssets等目录。
  • Tools:安装程序打包工具、加固工具、更新程序工程目录。
  • U3DProject:Unity工程目录,Unity编辑器打开此目录运行应用程序。
  • VLabPlayerProject:101实验室业务逻辑工程子模块,即101实验室专有的业务逻辑代码。

2.编译工程

2.1 编译CommonBase工程

有两种编译方式:
一、使用VS打开工程sln(CodeProject/commonbase/CommonBase.sln),手工编译工程。[使用Visual Studio 2017]
二、直接运行bat进行编译。

  • C:\project\vlab-player\CodeProject\commonbase> 构建Debug版.bat
  • C:\project\vlab-player\CodeProject\commonbase> 构建Release版.bat

注:两种编译方式都会将生成的dll拷贝到U3DProject工程,Debug编译还会将调试文件(.pdb & .mdb)拷贝到U3DProject工程。

2.2 编译VLabPlayerProject工程

有两种编译方式:
一、使用VS打开工程sln(VLabPlayerProject/VLabPlayerProject.sln),手工编译工程。[使用Visual Studio 2017]
二、直接运行bat进行编译。

  • C:\project\vlab-player\VLabPlayerProject> 构建Debug版.bat
  • C:\project\vlab-player\VLabPlayerProject> 构建Release版.bat

注:两种编译方式都会将生成的dll拷贝到U3DProject工程,Debug编译还会将调试文件(.pdb & .mdb)拷贝到U3DProject工程。

3.运行应用

实验室项目统一使用Unity2017.4.5f1版本进行开发。

3.1 101LAB模式运行

101LAB模式是指在线获取Ndr资源列表(公司资源管理服务),并下载响应的实验颗粒文件、实验器材包,进行播放和操作。

应用配置 - U3DProject/conf.ini

[Version]
AppVersion=1.2.1
AppType=101LAB

实验器材管理平台配置 - U3DProject/Assets/StreamingAssets/Config/ModuleServices.json

"originalCsHost" : "//cs.101.com",
"substituteCsHost" : "//gcdncs.101.com",
"newServiceStatus" : "TESTING,WAITPUBLISH,PUBLISHED,ONLINE",
"newServiceHost" : "http://vlab-service.sdp.101.com/",

注:应用开发模式通常取测试中以上状态[TESTING,WAITPUBLISH,PUBLISHED,ONLINE]

打开Unity编辑器,进到101Player.unity场景,点击运行,如图所示:

运行过程中出现登录界面,涉及到权限控制,需要使用账户和密码进行登录,如图所示:[向相关开发/QA咨询账户密码]

进到应用中的界面如下:

点击其中的某个仿真实验(实验颗粒),会打开该实验颗粒,进行播放和操作,如图所示:

3.2 101PPT模式运行

101PPT模式是指直接打开指定实验颗粒文件,进行播放和操作,常用来调试。

应用配置 - U3DProject/conf.ini

[Version]
AppVersion=1.2.1
AppType=101PPT

打开Unity编辑器,进到101Player.unity场景,点击运行[同101LAB模式]。

4.应用打包

目前播放器有两种发布方式:101实验室和For101PPT播放器。
101实验室用于101LAB模式,在线获取实验颗粒资源列表、下载实验颗粒文件和实验器材包。
For101PPT播放器用于101PPT模式,即由宿主应用(如101PPT)启动颗粒播放器播放指定的实验颗粒。
播放器打包工具通过菜单打开 - Tools/打包/播放器(PC)

注:界面按钮区分101LAB版本和For101PPT版本。

5.更新日志

2020/01/03 初次版本[刘剑(281001)]