What I learnt at the Unity Developer Day Melbourne 2019
On the 10th of October, I went to the Unity Developer Day, which contained talks and walk-through sessions around Unity’s latest and upcoming features. Unity is a cross-platform game engine, but it can be used for industries other than gaming; such as engineering and architecture.
It’s always interesting to see what new features are planned to Unity. The upcoming feature that caught my attention the most was “Unity as a library”. This allows you to harness the power of the Unity engine in existing apps and changes the way that you design new apps.
This has great application in marketing apps that allow for the embedding of 3D or AR aspects within an existing app.
This excerpt is from the Unity website itself on these possible applications;
“Unity as a library is a tremendous advantage for various use cases across industries. In particular, brands and creative agencies can now easily insert AR directly into their native mobile apps.
Cutting-edge brands see the value in adding AR to their traditional marketing campaigns. With Unity support for Unity as a library, the process is streamlined. Brands and creative agencies no longer have to rebuild their app to insert AR or hack together a solution to use Unity as a library.
Consumers are ready for AR marketing. AR lets brands foster a personal relationship with consumers, and we’re excited to offer a solution that powers the evolution of marketing.”
The first session was about the new Data-Oriented Tech Stack (DOTS). DOTS is a rebuild of the core foundation of Unity, allowing high-performance multithreaded code. DOTS seems to be structured quite differently to how coding in Unity currently is (it seems to have a bit of a learning curve), but with the performance gains that it proclaims, it’s definitely worth looking into further.
The session that I got the most out of would have been the Optimisation session. Optimisation is something I’m passionate about and it’s always great to learn new things. One thing that I’m now already utilising is the ability to render objects with the same material but a different colour in the same draw call, using the MaterialPropertyBlock class:
Instead of doing:
MaterialPropertyBlock materialPropertyBlock = new MaterialPropertyBlock(); this.materialPropertyBlock.SetColor("_Color", color); meshRenderer.SetPropertyBlock(this.materialPropertyBlock);
There were sessions walking through rigging animations in runtime, and the new terrain tools. These were interesting to see but as a programmer, they’re not areas that I’m too familiar in.