Getting Started
This page walks you from an imported SDK to a scene that reports a decision to IMPACT.
Requirements
- Unity 2021.3 or newer.
- An ARuVR IMPACT account with at least one Program.
- An API key — in the IMPACT dashboard, go to External Apps and generate one.
1. Install
Import the .unitypackage (Assets → Import Package → Custom Package). The SDK installs
under Assets/AruvrSdk/ with two assemblies (Aruvr.Sdk runtime, Aruvr.Sdk.Editor). No other
setup is required.
2. Connect
Open ARuVR → Impact from the menu bar. Leave the Environment on Production, paste your API key, and press Connect. The key is saved per machine and the window auto-connects next time.
3. Link the open scene to a program
With your gameplay scene open, in the Connection tab:
- Choose the IMPACT Program this scene reports to.
- Choose an existing App, or select “Register new app” and give it a name.
- Press Link this scene’s app + bake manifest.
This writes Assets/StreamingAssets/aruvr_manifest.json, which carries the app’s write-only
tracking token.
4. Opt the scene into tracking
Add an AruvrImpactManager component to any GameObject in the scene
(Add Component → ARUVR → Impact Manager). A scene is tracked only if it has this component.
5. Add a decision point
Add an AruvrTrackImpact component (Add Component → ARUVR → Track Impact):
- pick a Competency from the dropdown,
- set the Polarity — Positive for a correct decision, Negative for a mistake,
- write a Label describing the decision.
6. Fire it from your gameplay
using UnityEngine;
using Aruvr.Sdk;
public class Valve : MonoBehaviour
{
public AruvrTrackImpact closedCorrectly; // positive-polarity tracker
public AruvrTrackImpact closedWrongOrder; // negative-polarity tracker
// Call when the decision first becomes possible — this starts the latency clock.
void OnValveReachable()
{
closedCorrectly.Arm();
closedWrongOrder.Arm();
}
// Call when the trainee acts.
void OnValveClosed(bool correctSequence)
{
if (correctSequence) closedCorrectly.Fire();
else closedWrongOrder.Fire();
}
}
You can also wire Arm() and Fire() to UnityEvents in the inspector — no code required.
7. Identify the trainee and report the outcome
// At the start of the session, before any decision fires:
AruvrTracker.Instance.Identify("SESSION-4821");
// At the end of the scenario:
AruvrTracker.Instance.SetCompletion("passed", 100); // "completed" | "passed" | "failed", score 0–100
8. Build
Make sure the scene is in Build Settings, then build for your target (e.g. Android for Quest). The manifest is baked into the build and the app reports to IMPACT on device.
Checklist
- [ ] API key connected (ARuVR → Impact)
- [ ] Scene linked to a program (Connection tab)
- [ ]
AruvrImpactManageron the scene - [ ] One or more
AruvrTrackImpactcomponents with a competency, polarity, and label - [ ]
Identify(...)called at session start - [ ]
SetCompletion(...)called at the end - [ ] Scene added to Build Settings
Next: Core Concepts to understand the terminology, or Tracking Decisions for the full component detail.
