chore: initialize standalone UPM package
Publish UPM package / publish (push) Failing after 1s

This commit is contained in:
2026-08-26 02:50:13 +08:00
commit 2926ce5952
22 changed files with 474 additions and 0 deletions
+39
View File
@@ -0,0 +1,39 @@
# ShrinkDataSaver.Integration.EventBus
把 ShrinkDataSaver 的设置、保存、加载、迁移和删除生命周期发布为 ShrinkEventBus 2.0 事件。
ContextLoader 通过 `ShrinkDataSaverEventBusComponent` 管理桥生命周期;独立宿主调用 `DataSaverEventBusBridge.Register()`,退出时调用 `Unregister()`
事件均实现 `IShrinkEvent`
- `SettingsChangedEvent`
- `SaveStartedEvent` / `SaveCompletedEvent` / `SaveFailedEvent`
- `LoadStartedEvent` / `LoadCompletedEvent` / `LoadFailedEvent`
- `MigrationCompletedEvent`
- `SlotDeletedEvent`
订阅只使用 2.0 特性:
```csharp
[ShrinkEventSubscriber(DefaultBus = "game")]
public sealed class SaveUiHandlers
{
[ShrinkSubscribe]
private void OnSaved(SaveCompletedEvent value)
{
Debug.Log($"slot {value.SlotIndex} saved");
}
[ShrinkSubscribe(Priority = ShrinkEventPriority.Low)]
private void OnLoadFailed(LoadFailedEvent value)
{
Debug.LogError(value.ErrorMessage);
}
}
using var binding = EventBus.Attach(new SaveUiHandlers());
```
桥接方向是 DataSaver -> EventBus,发布使用 `EventBus.Post(...)`。没有手工 Delegate 注册或旧 Trigger API。
`SettingsChangedEvent.Get<T>()` 内部使用 `Convert.ChangeType`,只应在设置值确实可转换时调用。