In my opinion, Unity has emerged as a near standard for most VR development these days. While in general I don’t have a whole lot of bad to say about Unity, I have recently come across a few nuances or “gotchas” that may be of help to all who work with Unity.
1. Setting an object’s material.
When one sets a material on a mesh in Unity – the assignment operator will make a copy of that material. What this means is if that material isn’t then cleaned up, you have a memory leak. More info is located here: https://answers.unity.com/questions/548420/material-memory-leak.html. In short, try to use sharedMaterial instead (but in some cases, depending on what you’re doing, you may not want to do that).
2. Fullscreen Settings and the Command Line
Unity appears to have different behavior depending on operating system in terms of it’s –screen-fullscreen setting. We’ve had to tweak this for some of our plugins on Linux vs. Windows. It has also changed between versions of Unity.
Unity is a great tool for VR and AR development, I will try to continue adding to this list with some of the tricky nuances that do exist once you’re deeper in the weeds of using it.