You've already forked CC-Framework.BriskGameServer
160 lines
3.3 KiB
Markdown
160 lines
3.3 KiB
Markdown
# Brisk Unity SDK 快速开始
|
||
|
||
本文档用于说明当前仓库内这套 Brisk Unity SDK 的最小接入方式。
|
||
|
||
## 1. 当前能力
|
||
|
||
当前 SDK 已经打通以下主链路:
|
||
|
||
- 初始化 `Brisk.InitializeAsync`
|
||
- 本地会话恢复
|
||
- 登录与登出
|
||
- 玩家信息
|
||
- 动态配置
|
||
- 公告
|
||
- 排行榜
|
||
- 云存档
|
||
- 玩家空间
|
||
|
||
当前主要源码位于:
|
||
|
||
- `Assets/BriskSdk/Runtime`
|
||
|
||
最小示例脚本位于:
|
||
|
||
- `Assets/BriskSdk/Samples/QuickStart/BriskQuickStartSample.cs`
|
||
|
||
## 2. 最小初始化
|
||
|
||
```csharp
|
||
await Brisk.InitializeAsync(new BriskOptions
|
||
{
|
||
BaseUrl = "https://brisk.lightyears.ltd",
|
||
GameKey = "demo-game",
|
||
ClientVersion = Application.version,
|
||
DeviceId = SystemInfo.deviceUniqueIdentifier
|
||
});
|
||
```
|
||
|
||
说明:
|
||
|
||
- `BaseUrl` 必填
|
||
- `GameKey` 必填
|
||
- `ClientVersion` 可选但强烈建议传
|
||
- `DeviceId` 可选但建议传
|
||
|
||
## 3. 登录示例
|
||
|
||
按稳定用户 ID 登录:
|
||
|
||
```csharp
|
||
await Brisk.Auth.LoginWithUserIdAsync("tap", "tap_user_10001", new BriskProfile
|
||
{
|
||
Nickname = "Player One"
|
||
});
|
||
```
|
||
|
||
按 code 登录:
|
||
|
||
```csharp
|
||
await Brisk.Auth.LoginWithCodeAsync("tap", "third-party-code");
|
||
```
|
||
|
||
## 4. 常用调用示例
|
||
|
||
读取当前玩家:
|
||
|
||
```csharp
|
||
var me = await Brisk.Player.GetMeAsync();
|
||
```
|
||
|
||
读取动态配置:
|
||
|
||
```csharp
|
||
var config = await Brisk.Config.GetCurrentAsync();
|
||
```
|
||
|
||
读取排行榜:
|
||
|
||
```csharp
|
||
var top = await Brisk.Leaderboard.GetTopAsync("season-score", 20);
|
||
var meRank = await Brisk.Leaderboard.GetMeAsync("season-score");
|
||
await Brisk.Leaderboard.SubmitScoreAsync("season-score", 128);
|
||
```
|
||
|
||
上传云存档:
|
||
|
||
```csharp
|
||
var bytes = System.Text.Encoding.UTF8.GetBytes("{\"save\":1}");
|
||
await Brisk.Archive.UploadAsync(1, bytes);
|
||
```
|
||
|
||
读取玩家空间:
|
||
|
||
```csharp
|
||
var space = await Brisk.Space.GetByLoginIdentityAsync("tap", "tap_user_10001");
|
||
```
|
||
|
||
## 5. 默认错误 UI
|
||
|
||
当前 SDK 已内置默认错误展示器:
|
||
|
||
- 维护中
|
||
- 封号
|
||
- 登录态失效
|
||
|
||
如果未自定义 `ErrorPresenter`,SDK 会自动使用默认 IMGUI 弹窗进行展示。
|
||
|
||
如需替换:
|
||
|
||
```csharp
|
||
Brisk.SetErrorPresenter(myPresenter);
|
||
```
|
||
|
||
接口为:
|
||
|
||
```csharp
|
||
public interface IBriskErrorPresenter
|
||
{
|
||
void ShowBlockingError(BriskBlockingException exception);
|
||
void ShowAuthExpired(BriskAuthExpiredException exception);
|
||
}
|
||
```
|
||
|
||
如需在阻断错误确认后执行你自己的退出逻辑:
|
||
|
||
```csharp
|
||
await Brisk.InitializeAsync(new BriskOptions
|
||
{
|
||
BaseUrl = "...",
|
||
GameKey = "...",
|
||
ExitHandler = () => Application.Quit()
|
||
});
|
||
```
|
||
|
||
## 6. 示例脚本使用方式
|
||
|
||
当前项目已提供:
|
||
|
||
- `Assets/BriskSdk/Samples/QuickStart/BriskQuickStartSample.cs`
|
||
- `Assets/Scenes/BriskQuickStartScene.unity`
|
||
|
||
使用方式:
|
||
|
||
1. 当前仓库是原始 Unity 开发工程,可直接打开 `Assets/Scenes/BriskQuickStartScene.unity`
|
||
2. 运行后会看到一个 IMGUI 调试面板,可直接测试初始化、登录、玩家、配置、公告、排行榜、云存档、空间等完整流程
|
||
3. 勾选 `AutoRunOnStart`
|
||
4. 如需更换环境参数,可在 Inspector 里修改 `BaseUrl`、`GameKey`、`LoginProvider`、`LoginUserId` 等字段后再运行
|
||
|
||
也可以在组件右键菜单里执行:
|
||
|
||
- `Run Brisk Sample`
|
||
|
||
## 7. 当前实现状态
|
||
|
||
当前 SDK 已实现主流程,但还建议后续继续补:
|
||
|
||
- 更细粒度的业务异常类型
|
||
- 弱网策略
|
||
- 更完整的接入文档与注释
|