BITKit/Readme.md

141 lines
3.2 KiB
Markdown
Raw Permalink Normal View History

2023-06-07 02:39:44 +08:00
# BITKit——easy useful的.net框架(支持网络)
> 所有项目都需要一个FrameworkBITKit为你提供所有支持
无论是小型,大型还是商业项目,你都可以用BITKit完成所有的需求
2023-06-29 14:57:11 +08:00
特别是Unity和asp和正在支持中的Godot
2023-06-07 02:39:44 +08:00
## Getting Started 使用指南
该框架由于目前还没有用户,所以使用指南将包括在部分文件中
### Prerequisites 项目使用条件
你需要一些小小的nuget程序包或者一些小小的Unity Packages
2023-06-07 02:55:55 +08:00
### UniTask
提供异步支持
```csharp
//切换到线程池
await UniTask.SwichToThreadPool();
//在Unity中切换到主线程
await UniTask.SwitchToMainThread();
//在异步中等待,直到某个条件达成或取消
await UniTask.WaitUtil(()=>completed);
2023-06-07 02:39:44 +08:00
```
2023-06-07 02:55:55 +08:00
***
### Newtonsoft.json
提供json的序列化与反序列化
```csharp
//序列化数据
var json = JsonConvert.SerializeObject(value);
//反序列化json为数据
var value = JsonConvert.DeserializeObject<MyValue>(json);
2023-06-07 02:39:44 +08:00
```
2023-06-07 02:55:55 +08:00
***
### Unity.Mathematics
提供数学结构
```csharp
//float3 通常用于坐标和向量
float3 position=new(0,1,0);
//quaternion 四元数,通常用于旋转
quaternion rotation=new(1,1,1,1);
2023-06-07 02:39:44 +08:00
```
2023-06-07 02:56:45 +08:00
***
2023-06-07 02:55:55 +08:00
### (可选)GameDesigner
提供主要的网络服务(未来可能会用内置KCP)
``` csharp
//注册Rpc处理服务
ClientBase.Instance.AddRpcHandle(this);
//向服务器发送Rpc
ClientBase.Instance.SendRT("RpcName",intValue,floatValue,stirngValue);
2023-06-07 02:39:44 +08:00
```
在Unity中,你还需要以下Plugins:
```
2023-06-07 02:55:55 +08:00
Sirenix.Odin 为Unity提供基本的数据序列化(准备移除)
```
```
Demigiant.DOTween 为Unity提供补间动画支持
2023-06-07 02:39:44 +08:00
```
```
2023-06-07 02:55:55 +08:00
RotaryHeart.SerializableDictionaryLite为Unity提供序列化字典(已下架)
2023-06-07 02:39:44 +08:00
```
```
2023-06-07 02:55:55 +08:00
Unity.Addressables 为Unity添加可寻址资源的资源管理方案
2023-06-07 02:39:44 +08:00
```
### Installation 安装
1.从Git Clone此项目
[该项目Git链接](http://server.bitfall.icu:3000/root/BITKit.git) 右键复制
#### Unity:
```
在 PackagesManager 运行 "Add Package From Git Url"
```
#### Net Core:
```
从Git Clone该项目后支持在解决方案中"添加现有项目"即可完成安装
```
### Usage example 使用示例
```csharp
//打包数据
BITAssets.Build(myFile);
//二进制和反二进制化数据
BITBinary.Write(value);
2023-06-07 02:57:49 +08:00
BITBinary.Read<T>(buffer);
2023-06-07 02:39:44 +08:00
//注册远程指令
INetProvider.AddCommandListener<MyCommand>(callback);
//向服务器发送指令
INetProvider.ServerCommand<MyCommand>();
//向客户端发送指令
INetProvider.ClientCommand<MyCommand>(64);
```
2023-11-16 16:18:42 +08:00
还有一种基于`ECS`依赖注入
```csharp
public class InjectExample
{
[Inject]
private IMyService myService;
void Execute()
{
myService.DoSomething();
}
}
```
2023-06-07 02:39:44 +08:00
## Deployment 部署方法
2023-06-07 03:26:55 +08:00
#### Unity:
直接Build项目
#### Net Core:
直接发布项目
2023-06-07 02:39:44 +08:00
## Contributing 贡献指南
从Readme文件下方找到作者的联系方式并直接联系作者
## Release History 版本历史
* 0.2.1
* 更新 `README.md`
* 0.2.0
* 添加 `README.md`
* 0.1.0
* 创建Git 仓库
## Authors 关于作者
* **军火商小火柴** - *Initial work* - [军火商小火柴](https://bitfall.icu)
## License 授权协议
这个项目 MIT 协议, 请点击 [LICENSE.md](LICENSE.md) 了解更多细节。