Spline-based VR slide ride shown in the Winter VR Playground Template

Unity VR progression

An unlock should change one durable state, then let the attraction handle itself

Keep earned stars, purchase cost, saved availability, unlock feedback, and the attraction logic separate so progression can grow without turning every prefab into a save manager.

StarsUnlock costPlayerPrefsWorld-space UI

Unlock flow

Treat purchase, persistence, and use as different events

This keeps the attraction reusable and makes save bugs easier to isolate.

01

Earn

Minigames report rewards to a shared total instead of directly unlocking unrelated attractions.

02

Check

The unlock point compares available stars with its own cost and rejects the purchase cleanly if the total is too low.

03

Persist

Once purchased, save the durable unlocked state and update the world-space presentation immediately.

04

Use

The attraction checks availability, then runs its own gameplay without owning the purchase logic.

01

Progress feedback

The player should see what changed at the moment of purchase

The strongest feedback is redundant in a useful way. The cost disappears, the attraction becomes available, the total changes, and a short effect confirms that the purchase was accepted.

Unlock panels, star totals, effects, audio, and the attraction state can all reinforce the same decision.

See unlocks inside a full VR playground

Winter VR Playground Template - XR Interaction Toolkit

The Frostyard project includes collectible stars, PlayerPrefs save and load, unlockable slide, rink, skates, and optional snow effect, plus the menus and feedback that surround those states.

  • Complete Frostyard demo scene
  • XR Interaction Toolkit project setup
  • Snowball target minigame with moving target and bonus hit area
  • Ice-rink checkpoint race system
  • Spline-based slide ride with comfort vignette support
Expanded product screenshot