6d115f158e
- 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
71 lines
2.8 KiB
Markdown
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.
|