.Net compatible
							parent
							
								
									bb3faf86af
								
							
						
					
					
						commit
						d754eebc6d
					
				
							
								
								
									
										60
									
								
								README.md
								
								
								
								
							
							
						
						
									
										60
									
								
								README.md
								
								
								
								
							|  | @ -9,20 +9,39 @@ | |||
| 
 | ||||
| ## 安装 .NET 6.0 运行时(必须使用6.0版本) | ||||
| * 下载离线安装包 | ||||
| https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/runtime-6.0.21-macos-x64-installer | ||||
|   - 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  | ||||
| 
 | ||||
| * 或者使用 homebrew | ||||
| * Mac下建议使用 homebrew | ||||
| brew tap isen-ng/dotnet-sdk-versions | ||||
| brew install --cask dotnet-sdk6-0-400 | ||||
| 
 | ||||
| ## 安装 protobuf-net.Protogen 命令行程序 | ||||
| dotnet tool install --global protobuf-net.Protogen --version 3.2.12 | ||||
| 
 | ||||
| ## 进入项目目录 | ||||
| cd upm_guru_dof_lib/Runtime/ServerProtos | ||||
| * Windows | ||||
| protogen 的安装目录为 C:\Users\用户名\.dotnet\tools ,可直接在 cmd 命令行下运行 protogen | ||||
| 
 | ||||
| * Macos | ||||
| 在 Macos 下 protogen 的安装目录为 /Users/用户名/.dotnet/tools,可能需要手动将 | ||||
| ``` | ||||
| PATH=PATH:/Users/用户名/.dotnet/tools | ||||
| ``` | ||||
| 加入到 ~/.bash_profile中,因为 homebrew 加入的 PATH ~/.dotnet/tools 无效 | ||||
| 
 | ||||
| ## 生成 cs 文件 | ||||
| ~/.dotnet/tools/protogen messages.proto --csharp_out=../NetworkGen | ||||
| 
 | ||||
| * Windows | ||||
| ``` | ||||
| cd DofKcpDemo\ServerProtos | ||||
| protogen messages.proto --csharp_out=..\Assets\Scripts\NetworkGen | ||||
| ``` | ||||
| 
 | ||||
| * MacOS | ||||
| ``` | ||||
| cd DofKcpDemo/ServerProtos | ||||
| ~/.dotnet/tools/protogen messages.proto --csharp_out=../Assets/Scripts/NetworkGen | ||||
| ``` | ||||
| 
 | ||||
| ## 安装和接入 | ||||
| 
 | ||||
|  | @ -30,25 +49,12 @@ cd upm_guru_dof_lib/Runtime/ServerProtos | |||
| 
 | ||||
| - 本插件需要使用公司内部的Gitlab加载对应的repo, 详见 [Castbox内部git服务器Gitea使用指南](https://docs.google.com/document/d/1DiGPDD5Teu2QcYaBhqAcsqMbb3DJ5sdnTQMuvVzJSUk/edit#heading=h.w9tkkzwwyjxf) | ||||
| - 根据文档部署好本机配置后, 请在Unity内部配置如下参数 | ||||
|   - TBD | ||||
|   - TBD | ||||
|   - TBD | ||||
| 
 | ||||
| 
 | ||||
| ## 逻辑实现 | ||||
| 
 | ||||
| - TBD | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ## 问题答疑 | ||||
| 
 | ||||
| - Q | ||||
| > A | ||||
| 
 | ||||
| - Q | ||||
| > A | ||||
| 
 | ||||
| - Q | ||||
| > A | ||||
|   - 修改位于项目Packages/manifest.json文件,在dependencies中添加 | ||||
|   ``` | ||||
|   { | ||||
|   "dependencies": { | ||||
|     "com.guru.unity.gurukcp": "git@git.chengdu.pundit.company:castbox/upm_guru_dof_lib.git", | ||||
|     ... | ||||
|     } | ||||
|   } | ||||
|   ```  | ||||
|  | @ -49,17 +49,17 @@ namespace Guru | |||
|             } | ||||
|         } | ||||
| 
 | ||||
|         private readonly Queue<List<Delegate>> _listenerListQueue = new (); | ||||
|         private readonly Queue<List<DelegateGameObjectBonding>> _listenerBondingListQueue = new (); | ||||
|         private readonly Dictionary<int, List<Delegate>> _eventTable = new (); | ||||
|         private readonly Dictionary<int, List<DelegateGameObjectBonding>> _eventObjTable = new (); | ||||
|         private readonly Dictionary<int, List<Delegate>> _pendingAddTable = new (); | ||||
|         private readonly Dictionary<int, List<DelegateGameObjectBonding>> _pendingObjAddTable = new (); | ||||
|         private readonly Dictionary<int, List<Delegate>> _pendingRemoveTable = new (); | ||||
|         private readonly Dictionary<int, List<DelegateGameObjectBonding>> _pendingObjRemoveTable = new (); | ||||
|         private readonly Queue<List<Delegate>> _listenerListQueue = new Queue<List<Delegate>>(); | ||||
|         private readonly Queue<List<DelegateGameObjectBonding>> _listenerBondingListQueue = new Queue<List<DelegateGameObjectBonding>>(); | ||||
|         private readonly Dictionary<int, List<Delegate>> _eventTable = new Dictionary<int, List<Delegate>>(); | ||||
|         private readonly Dictionary<int, List<DelegateGameObjectBonding>> _eventObjTable = new Dictionary<int, List<DelegateGameObjectBonding>>(); | ||||
|         private readonly Dictionary<int, List<Delegate>> _pendingAddTable = new Dictionary<int, List<Delegate>>(); | ||||
|         private readonly Dictionary<int, List<DelegateGameObjectBonding>> _pendingObjAddTable = new Dictionary<int, List<DelegateGameObjectBonding>>(); | ||||
|         private readonly Dictionary<int, List<Delegate>> _pendingRemoveTable = new Dictionary<int, List<Delegate>>(); | ||||
|         private readonly Dictionary<int, List<DelegateGameObjectBonding>> _pendingObjRemoveTable = new Dictionary<int, List<DelegateGameObjectBonding>>(); | ||||
| 
 | ||||
|         // Using raising event list to prevent infinite loop call or changing delegate list | ||||
|         private readonly List<int> _raisingEventIds = new (); | ||||
|         private readonly List<int> _raisingEventIds = new List<int>(); | ||||
| 
 | ||||
|         private GameEventMgr() { } | ||||
| 
 | ||||
|  |  | |||
|  | @ -16,7 +16,7 @@ namespace DofLibrary | |||
|     { | ||||
|         private long _cid; | ||||
|         private Ukcp _client; | ||||
|         private MemoryStream _localSendMs = new(1024 * 1024 * 1); | ||||
|         private MemoryStream _localSendMs = new MemoryStream(1024 * 1024 * 1); | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// 设置 kcp 客户端,用于发送消息 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue