Files
edmand46 6d115f158e Server-side scenario execution: new Rudder.Core.dll, realtime/planstore glue removed
- Rudder.Core.dll rebuilt from csharp-sdk effects rewrite (96,768 bytes)
- Realtime/ adapters, UnityRealtimeTransportFactory, UnityPlanStateStore,
  UnityPlanScheduler, WebGL jslib and RealtimeUrl config deleted (with .meta)
- Scenarios sample rewired to client.Effects; samples login path updated
- AGENTS.md/README/CHANGELOG/package docs + agent skill updated; realtime.md skill doc removed
2026-09-04 14:23:38 +03:00

71 lines
2.8 KiB
Markdown

# Rudder Unity SDK
This project hosts the `rudder.sdk` UPM package and the scenes that show how
to call it. Agents integrating the SDK into a game should read
`Packages/rudder.sdk/AGENTS.md`.
## Requirements
- Unity `6000.5.6f1`.
- A Rudder project key.
- Network access to `https://api.rudder.build`.
## Quick Start
1. Open this folder in Unity `6000.5.6f1`.
2. Copy `Assets/LiveOpsLocal.asset.example` to `Assets/LiveOpsLocal.asset`
(the real asset is git-ignored because it holds your project key).
3. Set `ProjectKey` to your project key.
4. Confirm `BaseUrl` is `https://api.rudder.build`.
5. Open a feature sample under `Assets/Samples/Rudder SDK/` and press Play.
In this development project the samples are already linked there; do not
import them again from Package Manager.
## Feature Samples
Each scene is one Rudder API. The scripts live in
`Packages/rudder.sdk/Samples~` and are the copy-paste examples for the SDK.
| Scene | SDK calls |
| --- | --- |
| `Authentication/Authentication.unity` | `Rudder.Initialize`, `Auth.LoginWithDeviceAsync`, `Player.GetProfileAsync`, `Auth.Logout` |
| `RemoteConfig/RemoteConfig.unity` | `RemoteConfig.LoadAsync`, `Get(key, fallback)` |
| `Storage/Storage.unity` | `Storage.GetAsync`, `SaveAsync`, `DeleteAsync` |
| `StoreInventory/StoreInventory.unity` | `Stores.ListAsync`, `PurchaseAsync`, `Inventory.GetAsync` |
| `Leaderboards/Leaderboards.unity` | `Leaderboards.FindBySlug`, `SubmitAsync`, `ListAsync` |
| `Scenarios/Scenarios.unity` | `Scenario.TriggerAsync`, `Effects.OnNotification`, `Effects.OnStoreOffer`, … |
The later scenes are more interesting with this staging data:
| Feature | Expected setup |
| --- | --- |
| Remote Config | Optional keys: `demo_round_seconds`, `demo_player_speed`. Defaults are used when keys are missing. |
| Stores | A store with slug `cozy-camp-shop` with at least one offer. |
| Leaderboards | A leaderboard with slug `cozy-collector-score`. |
| Scenarios | Events `player_login` and/or `demo_round_finished`. |
| Storage | No setup required; the sample writes type `sample_save`, id `main`. |
## Project Structure
```text
Assets/Samples/Rudder SDK/ (symlink to the package Samples~)
Packages/rudder.sdk/
Runtime/ (Rudder.Unity + Rudder.Core.dll)
Samples~/ (feature sample scenes)
Assets/LiveOpsLocal.asset (git-ignored; copy from LiveOpsLocal.asset.example)
```
## Updating Core DLLs
Build the C# SDK from the sibling repository and copy the assembly into the
UPM package:
```sh
dotnet build ../liveops-csharp-sdk -c Release
cp ../liveops-csharp-sdk/bin/Release/netstandard2.1/Rudder.Core.dll \
Packages/rudder.sdk/Runtime/Plugins/Rudder.Core.dll
```
`Rudder.Core` depends only on Newtonsoft.Json, which Unity provides through
the `com.unity.nuget.newtonsoft-json` package — no other DLLs are bundled.