ShrinkSDK

Public Unity SDK packages and workspace. yeah, almost AI slop. ;)

com.cneicy.shrink-datasaver-integration-app (0.2.0)

Published 2026-09-05 04:15:54 +08:00 by cneicy

Installation

registry=https://git.crash.work/api/packages/ShrinkSDK/npm/
npm install com.cneicy.shrink-datasaver-integration-app@0.2.0
"com.cneicy.shrink-datasaver-integration-app": "0.2.0"

About this package

ShrinkDataSaver 与 ShrinkApp 的桥接层,提供宿主接管初始化与服务注册。

ShrinkDataSaver.Integration.App

ShrinkDataSaver.Integration.AppShrinkDataSaverShrinkApp.Core 的桥接层。它的职责不是重新实现存档系统,而是把 ShrinkDataSaver 接到统一宿主链里,让项目在接入 ShrinkApp 时由宿主接管初始化顺序。

Godot 和普通 .NET 项目安装 ShrinkSDK.DataSaver.Integration.App;可打包源码位于 DotNet~

当前能力

  • 提供原生 ShrinkDataSaverAppComponent,发布 shrink.service.datasaver
  • 在组件激活阶段调用 ShrinkDataSaverRuntime.Initialize()
  • ContextLoader 下向 ShrinkApp.Services 注册可逆的 ShrinkDataSaverService 门面
  • 区分 IShrinkDataSaverReaderIShrinkDataSaverWriter;默认上下文取得完整写能力
  • 支持以 ShrinkDataSaverAccess.MetadataKey = ShrinkDataSaverAccess.ReadOnly 的 intercept 向派生上下文只暴露读取能力,写接口和具体服务请求会被明确拒绝
  • ShrinkDataSaverAppInstaller 仅保留给 ClassicHost 兼容路径,已标记过时
  • 保留 ShrinkDataSaverBootstrap 的旧用法兼容;若宿主已接管,旧 bootstrap 会自动退出

只读上下文

var communityContext = ctx.Intercept(
    ShrinkDataSaverAppComponent.ServiceKey,
    new Dictionary<string, object?>
    {
        [ShrinkDataSaverAccess.MetadataKey] = ShrinkDataSaverAccess.ReadOnly
    });

var reader = communityContext.Get<IShrinkDataSaverReader>(
    ShrinkDataSaverAppComponent.ServiceKey);

这是服务能力的最小化暴露:只约束通过 ShrinkCtx.Get 解析该键的调用方。它不会限制代码绕过上下文后直接访问静态 API,也不构成不可信模组沙箱。

Dependencies

Dependencies

ID Version
com.cneicy.shrink-app-core 0.2.0
com.cneicy.shrink-context-core 0.2.0
com.cneicy.shrink-datasaver 2.3.0
com.cysharp.unitask 2.5.10

Keywords

save integration app bootstrap
Details
npm
2026-09-05 04:15:54 +08:00
3
cneicy
latest
4.5 KiB
Assets (1)
Versions (5) View all
0.2.0 2026-09-05
0.1.3 2026-08-28
0.1.2 2026-08-28
0.1.1 2026-08-26
0.1.0 2026-08-26