Files

71 lines
2.8 KiB
Markdown
Raw Permalink Normal View History

# Rudder Unity SDK
2026-08-12 14:03:44 +03:00
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`.
2026-08-12 14:03:44 +03:00
## 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.
2026-08-12 14:03:44 +03:00
## Feature Samples
2026-08-12 14:03:44 +03:00
Each scene is one Rudder API. The scripts live in
`Packages/rudder.sdk/Samples~` and are the copy-paste examples for the SDK.
2026-08-12 14:03:44 +03:00
| 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`, … |
2026-08-12 14:03:44 +03:00
The later scenes are more interesting with this staging data:
2026-08-12 14:03:44 +03:00
| Feature | Expected setup |
| --- | --- |
| Remote Config | Optional keys: `demo_round_seconds`, `demo_player_speed`. Defaults are used when keys are missing. |
2026-08-12 14:03:44 +03:00
| 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`. |
2026-08-12 14:03:44 +03:00
## 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)
2026-08-12 14:03:44 +03:00
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.