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
2.8 KiB
2.8 KiB
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
- Open this folder in Unity
6000.5.6f1. - Copy
Assets/LiveOpsLocal.asset.exampletoAssets/LiveOpsLocal.asset(the real asset is git-ignored because it holds your project key). - Set
ProjectKeyto your project key. - Confirm
BaseUrlishttps://api.rudder.build. - 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
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:
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.