Fixing the “Windows Mixed Reality specific camera code has been moved…” message when upgrading the MRKT2
A very short and very simple trick today:
If you - like me - are crazy enough to dutifully update the MRTK2 in your apps whenever a new version arrives, at some point you will notice a kind of puzzling, rather ominous and not very helpful message pop up in your console a couple of times:
"Windows Mixed Reality specific camera code has been moved into Windows Mixed Reality Camera Settings. Please ensure you have this added under your Camera System's Settings Providers, as this deprecated code path may be removed in a future update."
You might have seen this appear earlier, when you upgraded to MRTK 2.3, as you can see in this commit message. Version 2.3 was where it was introduced, in November 2019. The trouble with this message is that the procedure to fix it is not entirely clear - at least, it was not to me. Especially since the first warning originates from the MRTK2 itself (when the MixedRealityCameraSystem is initialized as a service). Also GoogleBinging it yields no result, but I do hope it does so after I post this article. Fortunately it was also originating from my own code, and that was a lot more helpful, as I know what that is about - I wrote it myself, after all.
The culprit was this piece of code:
CoreServices.CameraSystem.IsOpaque
This ends up in Microsoft.MixedReality.Toolkit.CameraSystem.MixedRealityCameraSystem where the IsOpaque property is implemented. That looks for a "IMixedRealityCameraSettingsProvider". That does not help much, but wat does help - in MixedRealityCameraSystem there is a documentation link on top, which at least points you to the right place in the configuration.
So what you need to do is very simple and takes 7 mouse clicks:
- Select the MixedRealityToolkit node in your hierarchy
- Select the Camera Tab
- Expand the Camera Settings Provider
You will now see this:
Then:
- Click the "+ Add Camera Settings Provider" button just above "Display Settings"
- Expand the "New data provider 0" section"
- For "Type", select Microsoft.MixedReality.Toolkit.WindowsMixedReality/WindowsMixedRealityCameraSettings (this is actually two mouse clicks)
The end result should look like this:
.... and you are done. Unless you need to tweak the settings of the default camera settings profile, in which case you have to do the clone-and-adapt dance. But in any case, no more scary messages about deprecated code that might change in some future release. ;)
I omitted the customary demo project this time, as the point of this post was to show you how to get from A to B, not the end result.