
Developing with Unity3D
Unity3D is a game engine used to build three-dimensional worlds. It is one of the most used engines and development environments when it comes to gaming and 3D applications, and that's the reason Microsoft selected it as the preferred way to develop HoloLens apps. More and more applications are written in this platform. The good news is that there's a lot of documentation about Unity3D out there. However, this also means you have less control over how to do certain things.
Next to that, all code in Unity3D is written for the Mono runtime. Mono is not used in the final version, but the Unity3D tool does not understand this. This results in a lot of #define statements in your code to prevent errors from popping up all the time.
However, Unity3D is a great tool to get up-and-running pretty fast and create stunning apps on HoloLens that perform well.
For this book the RockOn app will be built in Unity3D but I will also explain how to achieve the same results using DirectX in each chapter.
To summarize--use Unity3D unless you have a very good reason not to.
One final note--you often will see the name Unity being used instead of Unity3D. There is however a very popular Inversion of Control (IoC) framework that has the same name. I will use the shorter name Unity from now on as well, but just remember that I am talking about Unity3D. We will not be using IoC here at all, so for now you can forget that it exists.