The Oculus Unity Sample Framework provides sample scenes and guidelines for common VR-specific features such as hand presence with Oculus Touch, crosshairs, driving, hybrid mono rendering, and video rendering to a 2D textured quad.
The Unity Sample Framework can guide developers in producing reliable, comfortable applications and avoiding common mistakes. The assets and scripts included with the Sample Framework may be reused in your applications per the terms of our SDK 3.4.1 license. Note that some folders of the Sample Framework include a more permissive BSD license - this license supersedes the SDK 3.4.1 license in folders in which it occurs. See LICENSE.txt in the relevant folders for additional details.
The Unity Sample Framework is available as a Unity package for developers who wish to examine how the sample scenes were implemented, and as executable binaries for Rift, Oculus Go, and Gear VR for developers to explore the sample scenes entirely in VR.
The Sample Framework Unity package is available from the Unity Asset Store here. The executable Rift and Mobile applications are available by searching for Oculus Sample Framework in the Oculus Store.
The Unity Sample Framework works on all currently-supported versions of Unity. Please check Compatibility and Requirements for supported versions.
In the Unity project, the following scenes are found in /Assets/SampleScenes:
Switching between cameras in a scene.
Using crosshairs to aim a weapon in VR and different configuration options.
A simple mirror effect.
Basic forms of movement, and the effects a variety of design choices may have on comfort.
How various scale factors interact.
Factors affecting comfort in first-person stairs movement.
A teleportation locomotion scene that reduces the risk of discomfort.
A teleportation scene that supports switching between any combination of teleports and linear motion at run time.
Guardian Boundary System/
Illustrates use of OVRBoundary API to interact with Guardian System Outer Boundary and Play Area.
Uses the Unity Avatar SDK and the scripts OVRGrabber and OVRGrabbable to illustrate hands presence with Touch. Pick up and throw blocks from a table using the Touch grip buttons. This sample requires importing the Oculus Avatar SDK.
A simple sample displaying tracked Touch models in a scene.
Uses low-resolution custom hand models and the scripts OVRGrabber and OVRGrabbable to illustrate hands presence with Touch. Pick up and throw blocks from a table using the Touch grip buttons. May be used as a reference for implementing your own hand models.
Illustrates selecting and grabbing distant objects with hand models using Touch. For more information, see Distance Grab Sample on our Developer Blog.
This scene assists with testing input devices, displaying axis values in real time.
A virtual keyboard.
Illustrates typical handling for loss of Input Focus, such as when a Dash overlay is present. The application is paused, muted, and tracked controllers are hidden.
A simple scene with mixed reality capture enabled.
Splash screen modal that supports custom images and content.
Video rendering to a 2D textured quad using the Android Media Surface Plugin. Source for the plugin ships with the Mobile SDK in \VrAppSupport\MediaSurfacePlugin.
Different ways to create surface detail with normal, specular, parallax, and displacement mapping.
Demonstrates creating a UI with a VR Compositor Layer to improve image quality and anti-aliasing. Includes a quad overlay for , and a quad and a cylinder overlay for mobile.
How UI elements can be embedded in a scene and interact with different gaze controllers.
Pointers - Gaze Click
UI/Pointers - Gaze Click/
An extension of the Pointers scene, with gaze selection.
These samples are intended to be tools for exploring design ideas in VR, and should not necessarily be construed as design recommendations. Some sample scenes in the Sample Framework allow you to set some parameters to values that will reliably cause discomfort in most users. They are offered to give developers an opportunity to find out precisely how much is too much in certain scenarios.
It is important to play test your game on a range of players throughout development to ensure your game is a comfortable experience. We have provided in-game warnings to alert you to potentially uncomfortable scenes.
The Unity Sample Framework package can be downloaded here or by searching for Oculus Sample Framework in the Asset Store tab of the Unity Editor. The executable Rift and Mobile applications are available by searching for Oculus Sample Framework in the Oculus Store.
To open the project in Unity Editor:
This is only necessary if you want to experiment with the project, as the executable Rift and Mobile applications available for free download in the Oculus Store are simply builds of the Unity project.
To build the Unity Project for Rift:
To build the Unity Project for Mobile:
Sample scenes are browsed and controlled with a simple UI which provides in-app explanatory notes. Parameter controls allow users to adjust settings, providing an immediate, direct experience of the impact of different design decisions. The Sample Framework control panel itself is an example of in-VR control and navigation, and may be used as a model for your own applications.
Launch the Sample Framework on Rift, Oculus Go, or Gear VR to load the startup scene. You will see the Inspector, a three-pane interface providing controls for scene settings, documentation, and navigation controls for browsing to other scenes. Making selections on the top-level menu on the left panel changes the content of the other two panels. The center panel is a contextual menu, and the right panel displays notes and instructions for the current scene.
To launch a scene from the center panel, select and click the scene with your controller or gaze at the scene name and tap the Gear VR touchpad.
Some scenes are grouped into folders (displayed as buttons). When browsing from a folder, select “..” to navigate one level up in the scene hierarchy.