| 
									
										
										
										
											2023-09-06 06:23:41 +00:00
										 |  |  |  | # GURU Dof Client Library
 | 
					
						
							| 
									
										
										
										
											2023-08-30 12:26:51 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | ### VERSION 0.0.1
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | ## 插件介绍
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-06 06:23:41 +00:00
										 |  |  |  | > 本插件是基于 `upm_guru_kcp` 库,服务与 `dof` 项目的客户端类封装.
 | 
					
						
							|  |  |  |  | > | 
					
						
							|  |  |  |  | > 当客户端或服务端更新了 `prot` 文件之后,需要重新生成对应的cs文件。
 | 
					
						
							|  |  |  |  | >  | 
					
						
							|  |  |  |  | > 具体请按以下步骤进行操作:
 | 
					
						
							|  |  |  |  | > | 
					
						
							| 
									
										
										
										
											2023-08-30 12:26:51 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-06 06:23:41 +00:00
										 |  |  |  | </br> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | ## 环境部署
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | ### 安装 .NET 6.0 运行时(必须使用6.0版本)
 | 
					
						
							| 
									
										
										
										
											2023-08-31 03:15:38 +00:00
										 |  |  |  | * 下载离线安装包 | 
					
						
							| 
									
										
										
										
											2023-09-04 06:06:38 +00:00
										 |  |  |  |   - Mac: https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/sdk-6.0.413-macos-x64-installer | 
					
						
							|  |  |  |  |   - Windows: https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/sdk-6.0.413-windows-x64-installer  | 
					
						
							| 
									
										
										
										
											2023-08-31 03:15:38 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-04 06:06:38 +00:00
										 |  |  |  | * Mac下建议使用 homebrew | 
					
						
							| 
									
										
										
										
											2023-09-06 06:23:41 +00:00
										 |  |  |  |   ```shell | 
					
						
							|  |  |  |  |   brew tap isen-ng/dotnet-sdk-versions | 
					
						
							|  |  |  |  |    | 
					
						
							|  |  |  |  |   brew install --cask dotnet-sdk6-0-400 | 
					
						
							|  |  |  |  |   ``` | 
					
						
							| 
									
										
										
										
											2023-08-31 03:15:38 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-06 06:23:41 +00:00
										 |  |  |  | ### 安装 protobuf-net.Protogen 命令行程序
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | * 命令行安装 protobuf-net.Protogen 工具 | 
					
						
							|  |  |  |  |   ```shell   | 
					
						
							|  |  |  |  |   dotnet tool install --global protobuf-net.Protogen --version 3.2.12 | 
					
						
							|  |  |  |  |   ``` | 
					
						
							| 
									
										
										
										
											2023-08-31 03:15:38 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-04 06:06:38 +00:00
										 |  |  |  | * Windows | 
					
						
							| 
									
										
										
										
											2023-09-06 06:23:41 +00:00
										 |  |  |  | protogen 的安装目录为 `C:\Users\用户名\.dotnet\tools` ,可直接在 cmd 命令行下运行 protogen | 
					
						
							| 
									
										
										
										
											2023-09-04 06:06:38 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-06 06:23:41 +00:00
										 |  |  |  | * Macos  | 
					
						
							|  |  |  |  | 在 Macos 下 protogen 的安装目录为 `/Users/用户名/.dotnet/tools`,可能需要手动将 | 
					
						
							|  |  |  |  |   ```shell | 
					
						
							|  |  |  |  |   PATH=PATH:/Users/用户名/.dotnet/tools | 
					
						
							|  |  |  |  |   ``` | 
					
						
							|  |  |  |  |   加入到 `~/.bash_profile` 中,因为 homebrew 加入的 `PATH ~/.dotnet/tools` 无效 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | </br> | 
					
						
							| 
									
										
										
										
											2023-08-31 03:15:38 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-06 06:23:41 +00:00
										 |  |  |  | ## 文件构建
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | ### 生成 cs 文件
 | 
					
						
							| 
									
										
										
										
											2023-09-04 06:06:38 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | * Windows | 
					
						
							| 
									
										
										
										
											2023-09-06 06:23:41 +00:00
										 |  |  |  |   ```shell | 
					
						
							|  |  |  |  |   cd upm_guru_dof_lib\Runtime\ServerProto | 
					
						
							|  |  |  |  |   protogen messages.proto --csharp_out=..\NetworkGen | 
					
						
							|  |  |  |  |   ``` | 
					
						
							| 
									
										
										
										
											2023-09-04 06:06:38 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | * MacOS | 
					
						
							| 
									
										
										
										
											2023-09-06 06:23:41 +00:00
										 |  |  |  |   ```shell | 
					
						
							|  |  |  |  |   cd upm_guru_dof_lib/Runtime/ServerProto | 
					
						
							|  |  |  |  |   ~/.dotnet/tools/protogen messages.proto --csharp_out=../NetworkGen | 
					
						
							|  |  |  |  |   ``` | 
					
						
							|  |  |  |  | </br> | 
					
						
							| 
									
										
										
										
											2023-08-30 12:26:51 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-06 06:23:41 +00:00
										 |  |  |  | ## UPM 安装和接入
 | 
					
						
							| 
									
										
										
										
											2023-08-30 12:26:51 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | ### 插件引入
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-06 06:23:41 +00:00
										 |  |  |  | * 本插件需要使用公司内部的Gitlab加载对应的repo, 详见 [Castbox内部git服务器Gitea使用指南](https://docs.google.com/document/d/1DiGPDD5Teu2QcYaBhqAcsqMbb3DJ5sdnTQMuvVzJSUk/edit#heading=h.w9tkkzwwyjxf) | 
					
						
							|  |  |  |  | * 根据文档部署好本机配置后, 请在Unity内部配置如下参数 | 
					
						
							|  |  |  |  |   - 修改位于项目 `Packages/manifest.json` 文件,在dependencies中添加 | 
					
						
							|  |  |  |  |     ```json | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |       "dependencies": { | 
					
						
							|  |  |  |  |         "com.guru.unity.gurudoflib": "git@git.chengdu.pundit.company:castbox/upm_guru_dof_lib.git", | 
					
						
							|  |  |  |  |         ... | 
					
						
							|  |  |  |  |       } | 
					
						
							| 
									
										
										
										
											2023-09-04 06:06:38 +00:00
										 |  |  |  |     } | 
					
						
							| 
									
										
										
										
											2023-09-06 06:23:41 +00:00
										 |  |  |  |     ```  | 
					
						
							| 
									
										
										
										
											2023-09-04 07:34:45 +00:00
										 |  |  |  |   - 修改link.xml文件,添加 | 
					
						
							| 
									
										
										
										
											2023-09-06 06:23:41 +00:00
										 |  |  |  |     ```xml | 
					
						
							|  |  |  |  |     <assembly fullname="GuruDofLib.Runtime" preserve="all"/> | 
					
						
							|  |  |  |  |     ``` | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | ## UPM 发布
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 在项目研发中, 根据业务需求, 将会需要更改接口的逻辑及结构. 并更新此库. 需要项目组自行维护和发布 dof_lib 的版本. | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 插件更新流程如下: | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 1. 研发流中正常修改 `proto` 接口和对应的业务逻辑, 并提交推送至 `main` 分支 | 
					
						
							|  |  |  |  | 2. 手动修改 `./Makefile` 中的 `Version` 字段并提交. (该字段为插件的版本号, 请遵循三位版本号规范, 如: `1.0.0`)  | 
					
						
							|  |  |  |  | 3. 在此路径中, 执行命令行, 项目会自动提交并打入Tag标签  | 
					
						
							|  |  |  |  |    ```shell | 
					
						
							|  |  |  |  |    make publish | 
					
						
							|  |  |  |  |    ``` | 
					
						
							|  |  |  |  | 4. 在游戏主项目中, 修改 `Packages/manifest.json` 文件, 将 `com.guru.unity.gurudoflib` 的版本号改为刚刚发布的版本号, 并等待编译结束. (没有的需要再repo地址后添加 `#x.x.x` 作为版本标记) | 
					
						
							|  |  |  |  |     ```json | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |       "dependencies": { | 
					
						
							|  |  |  |  |         "com.guru.unity.gurudoflib": "git@git.chengdu.pundit.company:castbox/upm_guru_dof_lib.git#0.0.1", | 
					
						
							|  |  |  |  |         ... | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     ``` |