Unity Integration

| Published 2018-12-13

Oculus Integration for Unity - 1.32.0

Unity provides built-in VR support for the Oculus Rift, Samsung Gear VR, and Oculus Go. The Oculus Integration for Unity package adds scripts, prefabs, samples, and other resources to supplement Unity’s built-in support. The package includes an interface for controlling VR camera behavior, a first-person control prefab, a unified input API for controllers, advanced rendering features, object-grabbing and haptics scripts for Touch, debugging tools, and more. For more information, see our Unity Getting Started Guide.

The Oculus Integration for Unity is available in the Unity Asset Store. Download the package from the Oculus Integration page, or by searching for Oculus Unity Integration in the Asset Store tab of the Unity Editor.

Please see Compatibility and Version Requirements for important information about compatibility.

1.32 Known Issue

When importing the 1.32 Oculus Integraiton be sure to follow the instructions in Importing the Oculus Utilities Package, otherwise you may recieve the following error on import -

Assets/Oculus/AudioManager/Scripts/Audio/AudioManager.cs(24,14): error CS0101: The namespace global::' already contains a definition forSoundGroup'

New Features

  • Added the Oculus Profiler Panel to provide real-time metrics for all development builds. Use the Oculus Profiler Panel to debug and optimize your app during development.
  • Added OVROverlay support to Unity Cross-Platform Development.
  • The Sample Framework now ships as part of the Oculus Integration. Changes to the Oculus Samples will be captured as part of the Oculus Integration release notes.
  • Improved performance of the Rift occlusion mesh to reduce a high GPU cost with OVRPlugin. The Unity editor preview may be smaller as the new occlusion mesh culling is more aggressive.

Integration Changes

  • The Unity Integration 1.32 contains the following changes to the Oculus Integration for Unity package:
    • Update the Oculus Utilities to 1.32
    • Update the Platform SDK to 1.32
    • Update the Audio Spatializer to 1.32

Sample Changes

  • The Unity Sample Framework has been updated for the 1.32 release. The new or rewritten sample scenes are listed below. Please visit the updated documentation for more information about the new Sample Framework and how you can use the samples to build your app.
Scene Concept Illustrated
AvatarGrabDemonstrates the use of Avatar hands to grab and manipulate predefined objects.
LocomotionProvides a framework for moving an Avatar through an environment with support for linear movement, teleports and related input, and visual effects.
OVROverlayDemonstrates how creating a UI with a
OVROverlay
compositor layer improves image quality and text clarity in comparison to an application layer UI.
CustomHands Demonstrates the use of custom hand models. Developers can use this as a starting point for their own hands by building on the existing models and animations.
DistanceGrab Demonstrates the use of custom hands to grab and manipulate objects at a distance by having them zoom toward your hand.
GuardianBoundarySystem Illustrates use of
OVRBoundary
API to interact with the Guardian System outer boundary and play area.
CustomControllers Demonstrates custom controller models and interactive animations. While discouraged for use in gameplay, developers may want to use controllers in some specific cases, such as tutorials or demos.
DebugUI An isolated example of the debug UI used in other sample scenes. By adding the
CanvasWithDebug
prefab to your project, developers can easily create UIs like the one in this scene.
MixedRealityCapture A scene with mixed reality capture enabled.
StartScene Used when building to create a menu from which to select one of these sample scenes.

Importing the latest Oculus Integration

When importing a new version of the Oculus Integration into an existing project, follow the steps on Importing the Oculus Utilities Package to ensure a smooth upgrade experience.

Version-Specific Known Issues

This section details known issues with supported versions of Unity.

Unity Version

Known Issues

2018.2

All Unity 2018.2 versions

  • (Mobile) You'll need to either switch the AndroidBuildSystem to internal or export a Gradle project and modify the SigningConfig in the build.gradle file to include v1SigningEnabled=true, v2SigningEnabled=false.

2018.2.20f1

  • (Mobile) Some game objects may appear darker when loaded in 2018.2.20f1. To work around this issue, load the project in another version of Unity, like 2018.2.19.


General Unity Known Issues

This section details known issues with Unity that are not tied to a specific version. Issues are grouped by most closely related subject.

Subject

Known Issues

Unity

  • The Vulkan API is not currently supported for Oculus development on Unity. You may need to remove "Vulkan" from the "Graphics APIs" list in Player Settings if you receive build errors in the Unity Editor.
  • Unity has a known issue such that parenting one VR camera to another will compound tracking twice. As a workaround, make them siblings in the GameObject hierarchy.

Windows 10

  • If you experience long UI stalls or poor performance with the Unity Editor when targeting Rift on Windows 10, please run Windows Update to ensure that you have the latest version of Windows 10.
  • All Unity versions with Oculus runtime 1.17+ and Windows 10 + Creators Update: This combination results in spurious WM_DEVICECHANGE reports in the Editor, even in non-VR projects. Many users will notice no impact, but users connected to certain USB devices may find the Editor becomes non-responsive and needs to be terminated from Task Manager. To mitigate, please update to the Beta runtime available on our Public Test channel. We are currently working with Unity and Microsoft on a permanent solution.

Rift

  • Guardian System API: ovr_SetBoundaryLookAndFeel currently does not take effect if the HMD is not worn when the call is made (e.g., on Start).
  • Transparent VR Compositor Layers do not currently support multiple layers of occlusion.
  • For Mixed Reality Capture, ZED Camera users should upgrade their SDK version to 2.3.1 or later. Previous versions are not compatible.

Mobile

  • A known bug in Unity causes a deterioration of performance in mobile applications when the back button is used to enter the Universal Menu and then to return to the application. It particularly affects applications that use multi-threading or which have high CPU utilization, and S7 (Europe) and S8 (global) phones. This bug is fixed in Unity versions 2017.3.0b9 , 2017.2.0p3, 2017.1.2p4, and 5.6.4p2.
  • Do not use Utilities 1.11.0 due to a crash when returning to focus from Universal Menu or Quit to Home dialog.
  • When Single Pass Stereo rendering is enabled, building projects will fail with the error message “Shader error in 'Mobile/Bumped Detail Diffuse'” in certain cases. For more information, see “Known Issues” in the Single Pass Stereo Rendering section of Advanced Rendering Features.
  • (Gear VR) Flickering or left/right eye mismatching can occur when you have an input attribute value pass through to a pixel shader directly on Mali GPUs such as those in Samsung phones (used in Gear VR HMDs). This is because the ARM driver specifically targets such "volatile" data and tries to optimize for it, inadvertently creating the issue. A workaround is to try to use a modified version of the original value in some way. For example, instead of passing input value a directly through to shader value b, set b = a + 0.0001; which will prevent the driver from treating b differently.


Legacy Unity Release Archive

Legacy versions of the Unity Integration can be found on the old download page - Oculus Utilities for Unity.