AR + VR: Mixed Reality (MR) Camera — Unity Asset that uses Google Cardboard XR Plugin (former Google VR SDK) to display 2D or 3D objects as though they were in the real world mixing Virtual Reality and Augmented Reality. It’s Unity MR Camera for 80% of all Mobile Devices.
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 (former Google VR SDK) to implement Virtual Reality.
- No using of other AR Engines like Unity AR Foundation, ARCore, ARKit, Vuforia, etc.
- Real-Time AR Shadows (docs).
- Basic Editor Testing.
- Gaze-based Reticle Pointer (2 Non-Animated States).
Mixed Reality adds virtual elements the physical world and surround you game objects being in full immersion with VR Headset.
All modules are designed independently to keep this asset extendable & easy to understand:
- Demo in Mixed Reality of Interaction with Objects which have AR Shadows (docs): shader is included.
- Separate Scene with Camera Permission Request using free Native Camera;
Getting Started with AR + VR: Mixed Reality (Unity MR)
Folders & Files in package by default:
- Makaka Games;
If you have any issues with the first launch then just Reach Support with Invoice Number and Get Help.
If you read this tutorial from PDF, first check the latest docs online to get actual information.
- Create New Unity Project with Unity 2019.4.17.
- Build Settings > iOS or Android > Switch Platform.
- Next Packages must be manually installed with Git & Unity Package Manager:
- Download and import AR + VR: Mixed Reality (MR) into Unity.
- Warning Windows:
- Click “Import” to overwrite the Project Settings with predefined ones.
- Click “Install/Upgrade” for Package Manager Dependencies.
- 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 Unity Package Manager:
- Reopen Unity Project.
- Open Scene: Makaka Games > MR > MR Camera > Scenes > Demo.
- Test in the Unity Editor or Build for Mobile.
VR Only Mode
MR Camera, unlike Google Cardboard XR Plugin, provides Editor Testing and Gaze-based Reticle Pointer. So if you want to use the asset without AR, in VR Only mode, do next in Demo Scene:
- Delete “AR Background” from the scene.
- Player MR > Main Camera > Clear Flags > Skybox.
- AR Ground > Mesh Renderer > Materials > Set to “Default Material” or whatever you want.
Known Issues & Solutions
No Stereo View & Freezed Game Object on Device
So, if you accurately followed all points in tutorial above then try next:
Cardboard XR Plugin must be checked for your Platform in Project Settings > XR Plugin Management > iOS/Android.
You can test the project in the Unity Editor 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.
Unity Editor doesn’t provide Stereo View.
Debug Logging of Gaze-based Reticle Pointer
Gaze-based Reticle Pointer shows is there a Game Object (specially prepared for VR like in Demo Scene) in front of Camera.
To understand the state of Pointer you can turn on Debug Logging in CameraPointerCustom.cs component of Main Camera game object.
Real Testing is only on Real Device.
- iOS 14 on iPhone XS Max.
- Android 10 on Samsung Galaxy A71.
- Hardware and Software Requirements are restricted by Requirements of Google Cardboard XR Plugin.
- Camera Rotation and Camera Movement are controlled only with Google Cardboard XR Plugin.
- UI Buttons on World Space Canvases must have Box Collider.
- Google Cardboard must have camera hole.
Check the current version on Asset Store.
The latest versions will be added as soon as possible.
- 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.
- Updated Packages from Unity Registry.