Web 2.0 on Steroids -2-
The name of Unity3D may implies that it is only a 3D engine, but Unity is much more. It can be used even without any interface, for example as a background service or a game server. The 2D and 3D capabilities of Unity are sharing the same technology. Your output is rendered in 3D, even if you target only 2D. The hardware acceleration of 3D makes it so fast, that its worth it to render everything in 3D. On 2D output the z-value of the game objects are neglected, so all objects are appearing on a plane. Most modern games are mixing 2D and 3D content.
User interfaces in Unity are rendered through a separate system. This system is optimized for GUIs and organizes output and user input events. With animation support this objects can be structured and presented in a beautiful way. Every UI element are drawn onto a canvas element. This can be in screen space or even in world space. The drawing process will not differ, but the resulting texture will be positioned according the chosen space. For static UI elements the screen space will guarantee, that the interfaces will be on the same position, even if the used camera will move or rotate. A world space canvas will result in a user interface, that is positioned in the scene and will only be visible, if the camera is looking at it.
The important question is: Why should I consider using this, if I could use HTML as in the good old days? Do you remember WebGL? You do not need 3D? OK, so it is a question of what are you needing. The usage of Unity worthens only from a certain point. If you reach this point you will benefit from the possibilities of this great engine. But if not, you will hunt dugs with your bazooka. So this article will only be useful if I can provide some numbers and cases, but this will happen next time…