AR + VR: Mobile Mixed Reality for Unity — Google Cardboard XR Plugin & Pseudo MR Camera
AR + VR: Mixed Reality (MR) Camera — Unity Asset that uses Google Cardboard XR Plugin (formerly Google VR SDK) to display 2D or 3D objects as though they were in the real world mixing Virtual Reality and Pseudo Augmented Reality. It’s Unity MR Camera for 90% of all Mobile Devices.

Note: The asset is downloaded into your project as a Template (Complete Project) and has free external dependencies. Read the “Getting Started” Tutorial to Import it correctly.
Check out the Support section if you need help.



Contents
Features of AR + VR: Mixed Reality (MR) Camera
Bring the enchanting Power of Mixed Reality into your amazing Game or App:
- Cross-platform Mobile MR Camera: iOS, Android.
- 3-minute installation for your own AR + VR Scene.
- Covering a wide range of mobile devices.
- Google Cardboard XR Plugin (formerly Google VR SDK) to implement Virtual Reality.
- No using of other AR Engines like Unity AR Foundation, ARCore, ARKit, Vuforia, etc.
- Optimized Gaze-based Reticle Pointer based on TextMesh Pro (2 Non-Animated States).
- VR Mode On/Off During Scene Switching: only the Demo Scene runs in VR mode.
- Real-Time AR Shadows.
- Editor Testing (Non-VR).
Mixed Reality adds virtual elements to the physical world and surrounds you with game objects, being in full immersion with a VR Headset.
Package Contains
- Demo Scene: Interaction with Objects in Mixed Reality (VR + AR).
- Menu Scene.
- Permission Scene with Camera Permission Request using free Native Camera.
- Loading Screen to switch scenes seamlessly.
- Camera Feed on Background (docs).
Check the Map of Unity Assets to choose the product that best suits your needs.
Tutorial
This tutorial is relevant for MR Camera 5.0.
Tutorial for the previous version can be found only in the asset folder.
Getting Started with AR + VR: Mixed Reality (Unity MR)
Folders & Files in the package by default:
- Makaka Games;
- Plugins;
- XR.
Steps
If you have any issues with the first launch then just Reach Support and Get Help.
- Create a New Unity Project with Unity 6000.3.8 & the “Universal 3D” Template.
- File > Build Profiles > Platforms > Android, iOS > Switch Platform.
- Next Packages must be manually installed with Git & Unity Package Manager. I recommend using indicated versions to get a guaranteed experience:
- Native Camera 1.5.0.
Hash value for installing: 72f5ebba26c219b4c4cda202bff2f59bfdaa47f8 - Google Cardboard XR Plugin for Unity 1.32.0.
Hash value for installing: e6bffbb2d3a652e6c052d93cc4b3f29817d6949a
- Native Camera 1.5.0.
- Download and import AR + VR: Mixed Reality (MR) into Unity.
- Go through the Warning Windows:
- Click “Import” to overwrite the Project Settings with predefined ones.
- Click “Install/Upgrade” for Unity Package Manager dependencies.
- “Import Unity Package” window:
- Click “Next”.
- Click “Import”.
- Go through the Warning Windows:
- Next Packages are provided with Unity Package Manager, and they are already installed for this Asset by default. If packages are missing (Warning Window did not appear) then install them again with Package Manager:
- uGUI 2.0.0:
- Always Required: Window > TextMeshPro > Import TMP Essential Resources.
- Input System 1.18.0.
- uGUI 2.0.0:
- Reopen Unity Project.
- Open Scene: Makaka Games > MRCamera > Scenes > Demo.
- Required for Android:
- Edit > Project Settings > Player > Android > Other Settings > Android Application Configuration:
- Application Entry Point:
- Activity > Check.
- GameActivity > Uncheck.
.
- Target Architectures:
- ARMv7 > Check
- ARM64 > Check.
- Application Entry Point:
- Edit > Project Settings > Player > Android > Other Settings > Android Application Configuration:
- Test in the Unity Editor or Build.
Testing and Building
You can test the project in the Unity Editor without Stereo View this way:
- Right Mouse Button for Camera Movement.
- Left Mouse Button for Simulating of Pressing the Cardboard trigger button this frame (Google.XR.Cardboard.Api.IsTriggerPressed — tested for Screen Touches on Mobile Device):
- When a click is performed, the
OnClickUnity Event is invoked if the Reticle Pointer is hovering over a VR Object (a GameObject that contains the ObjectControllerCustom.cs component), allowing you to assign a different method to each VR Object.
- When a click is performed, the
Use Fullscreen of Game View in Unity Editor while testing to get a seamless experience.
To understand the state of Reticle Pointer, you can check the Is Debug Logging flag in the CameraPointerCustom.cs component on the Game Object called Main Camera.
Additional information about the Google Cardboard XR Plugin can be found in the Quickstart Guide. If you experience any issues on its side, then try to Search Solutions on GitHub.
Tested with Platforms
Mobile Platforms:
- iOS on iPhone 15;
- Android on Samsung Galaxy A71.
Limitations
Unity MR Camera requires the Rear Camera on the Phone, considering the following:
- Hardware and Software Requirements are restricted by Requirements of Google Cardboard XR Plugin.
- Camera Rotation and Camera Movement are controlled only with the Google Cardboard XR Plugin.
- UI Buttons on World Space Canvases must have Box Collider.
- Mobile VR Headset must have a camera hole.

Support
First, read the latest docs online.
If it didn’t help, get the support:
Changelog
Check the current version of MR Camera on the Asset Store.
The latest versions will be added as soon as possible.
5.0 (Unity 6.3):
Features:
- VR Mode On/Off During Scene Switching:
- Camera Permission Scene (Non-VR).
- Menu Scene (Non-VR) — New.
- Demo Scene (Mixed Reality: VR + AR) — separate Red VR object that can stop VR Mode and load the Menu Scene — the Native “Close Button” in VR Mode performs the same logic.
Improvements:
- Unity 6000.3.8 with Modern Standards of Project Settings (based on New Unity Project).
- URP (Universal Render Pipeline) to improve performance (instead of the Built-in Render Pipeline).
- Input System (New Standard in Unity) for All Project-related Scripts: instead of Input Manager.
- Google Cardboard XR Plugin 1.32.0:
- The project now checks the Package Installation, which helps avoid errors when importing Mixed Reality Camera.
- VR Mode is initialized and deinitialized in the code to allow switching scenes.
- VR Objects in the Demo Scene now use Transform instead of RectTransform (the sample scene by Google was incorrect).
- Every VR Object has
OnClickUnity Event for Interaction exposed in the Editor. - 4 VR Objects are always displayed in the Demo Scene.
- Camera Feed on Background 3.0 (docs).
- Native Camera 1.5.0. The project now checks the Package Installation, which helps avoid errors when importing Mixed Reality Camera.
- Android: Vulkan Graphics API first (and Linear Color Space).
- Namespaces for All Scripts.
- 60 FPS by Default.
4.0:
Improvements:
- Unity 2022.3.18;
- Google Cardboard XR Plugin 1.23.0;
- Native Camera 1.4.2.
- Camera Feed on Background 2.0 (docs).
3.3:
Improvements:
3.2:
Improvements:
- Unity 2021.3.4 for iOS & Android;
- Google Cardboard XR Plugin 1.16.0;
- Native Camera 1.3.3.
3.0:
Improvements:
- Unity 2019.4.36 for iOS/Android;
- Unity 2021.2.10 for Android;
- Google Cardboard XR Plugin 1.12.0;
- Native Camera 1.3.2.
Fixes:
- Rendering of Gaze-based Reticle Pointer: change Image component to TextMesh Pro.
2.1:
- Google Cardboard XR Plugin 1.4.1 with OpenGLES3 (instead of OpenGLES2);
- Native Camera 1.2.7;
- Debug Logging of Gaze-based Reticle Pointer: off by default.
2.0:
- Unity 2019.4.10;
- Google Cardboard XR Plugin 1.2.0 (formerly Google VR SDK).