.Net compatible
parent
bb3faf86af
commit
d754eebc6d
60
README.md
60
README.md
|
|
@ -9,20 +9,39 @@
|
||||||
|
|
||||||
## 安装 .NET 6.0 运行时(必须使用6.0版本)
|
## 安装 .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 tap isen-ng/dotnet-sdk-versions
|
||||||
brew install --cask dotnet-sdk6-0-400
|
brew install --cask dotnet-sdk6-0-400
|
||||||
|
|
||||||
## 安装 protobuf-net.Protogen 命令行程序
|
## 安装 protobuf-net.Protogen 命令行程序
|
||||||
dotnet tool install --global protobuf-net.Protogen --version 3.2.12
|
dotnet tool install --global protobuf-net.Protogen --version 3.2.12
|
||||||
|
|
||||||
## 进入项目目录
|
* Windows
|
||||||
cd upm_guru_dof_lib/Runtime/ServerProtos
|
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 文件
|
## 生成 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)
|
- 本插件需要使用公司内部的Gitlab加载对应的repo, 详见 [Castbox内部git服务器Gitea使用指南](https://docs.google.com/document/d/1DiGPDD5Teu2QcYaBhqAcsqMbb3DJ5sdnTQMuvVzJSUk/edit#heading=h.w9tkkzwwyjxf)
|
||||||
- 根据文档部署好本机配置后, 请在Unity内部配置如下参数
|
- 根据文档部署好本机配置后, 请在Unity内部配置如下参数
|
||||||
- TBD
|
- 修改位于项目Packages/manifest.json文件,在dependencies中添加
|
||||||
- TBD
|
```
|
||||||
- TBD
|
{
|
||||||
|
"dependencies": {
|
||||||
|
"com.guru.unity.gurukcp": "git@git.chengdu.pundit.company:castbox/upm_guru_dof_lib.git",
|
||||||
## 逻辑实现
|
...
|
||||||
|
}
|
||||||
- TBD
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## 问题答疑
|
|
||||||
|
|
||||||
- Q
|
|
||||||
> A
|
|
||||||
|
|
||||||
- Q
|
|
||||||
> A
|
|
||||||
|
|
||||||
- Q
|
|
||||||
> A
|
|
||||||
|
|
@ -29,7 +29,7 @@ namespace Guru
|
||||||
|
|
||||||
_isDebugMode = is_debug_mode;
|
_isDebugMode = is_debug_mode;
|
||||||
|
|
||||||
if(_isDebugMode)
|
if (_isDebugMode)
|
||||||
{
|
{
|
||||||
Debug.Log($"[GameEventMgr]Init: Running in debug mode");
|
Debug.Log($"[GameEventMgr]Init: Running in debug mode");
|
||||||
}
|
}
|
||||||
|
|
@ -49,17 +49,17 @@ namespace Guru
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private readonly Queue<List<Delegate>> _listenerListQueue = new ();
|
private readonly Queue<List<Delegate>> _listenerListQueue = new Queue<List<Delegate>>();
|
||||||
private readonly Queue<List<DelegateGameObjectBonding>> _listenerBondingListQueue = new ();
|
private readonly Queue<List<DelegateGameObjectBonding>> _listenerBondingListQueue = new Queue<List<DelegateGameObjectBonding>>();
|
||||||
private readonly Dictionary<int, List<Delegate>> _eventTable = new ();
|
private readonly Dictionary<int, List<Delegate>> _eventTable = new Dictionary<int, List<Delegate>>();
|
||||||
private readonly Dictionary<int, List<DelegateGameObjectBonding>> _eventObjTable = new ();
|
private readonly Dictionary<int, List<DelegateGameObjectBonding>> _eventObjTable = new Dictionary<int, List<DelegateGameObjectBonding>>();
|
||||||
private readonly Dictionary<int, List<Delegate>> _pendingAddTable = new ();
|
private readonly Dictionary<int, List<Delegate>> _pendingAddTable = new Dictionary<int, List<Delegate>>();
|
||||||
private readonly Dictionary<int, List<DelegateGameObjectBonding>> _pendingObjAddTable = new ();
|
private readonly Dictionary<int, List<DelegateGameObjectBonding>> _pendingObjAddTable = new Dictionary<int, List<DelegateGameObjectBonding>>();
|
||||||
private readonly Dictionary<int, List<Delegate>> _pendingRemoveTable = new ();
|
private readonly Dictionary<int, List<Delegate>> _pendingRemoveTable = new Dictionary<int, List<Delegate>>();
|
||||||
private readonly Dictionary<int, List<DelegateGameObjectBonding>> _pendingObjRemoveTable = new ();
|
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
|
// 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() { }
|
private GameEventMgr() { }
|
||||||
|
|
||||||
|
|
@ -133,7 +133,7 @@ namespace Guru
|
||||||
|
|
||||||
for (int i = 0; i < listeners.Count; i++)
|
for (int i = 0; i < listeners.Count; i++)
|
||||||
{
|
{
|
||||||
if(listeners[i].gameObject == null)
|
if (listeners[i].gameObject == null)
|
||||||
{
|
{
|
||||||
listeners.RemoveAt(i--);
|
listeners.RemoveAt(i--);
|
||||||
}
|
}
|
||||||
|
|
@ -143,7 +143,7 @@ namespace Guru
|
||||||
|
|
||||||
private List<Delegate> SpawnDelegateList()
|
private List<Delegate> SpawnDelegateList()
|
||||||
{
|
{
|
||||||
if(_listenerListQueue.Count > 0)
|
if (_listenerListQueue.Count > 0)
|
||||||
{
|
{
|
||||||
return _listenerListQueue.Dequeue();
|
return _listenerListQueue.Dequeue();
|
||||||
}
|
}
|
||||||
|
|
@ -410,7 +410,7 @@ namespace Guru
|
||||||
{
|
{
|
||||||
var listener = listeners[i];
|
var listener = listeners[i];
|
||||||
|
|
||||||
if(listener != null)
|
if (listener != null)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ namespace DofLibrary
|
||||||
{
|
{
|
||||||
private long _cid;
|
private long _cid;
|
||||||
private Ukcp _client;
|
private Ukcp _client;
|
||||||
private MemoryStream _localSendMs = new(1024 * 1024 * 1);
|
private MemoryStream _localSendMs = new MemoryStream(1024 * 1024 * 1);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设置 kcp 客户端,用于发送消息
|
/// 设置 kcp 客户端,用于发送消息
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue