- Learn to use coroutines effectively
- parallel, series, custom
- Avoid using different idioms to do the same thing
- Use singletons for convenience
- mainly useful for “manager” objects
- define static properties & methods to enable “Manager.player” and avoid having to use “Manager.Instance.player”
- Learn how to use debugging facilities effectively
- Make use of third party extensions as well
Automated Build Pipeline Case Study - GoodbyeWorld Games
- Manual build process can easily become a mess of unknown builds
- Configured a process where a build is initiated by a commit to master and also runs tests
- Maintaining a list of dependencies can be problematic
- Upfront time investment can be high but then builds take minutes and reduce confusion
Unit Testing Code That Uses the Unity Engine - 1
- NSubstitute can be used to create mock / fake implementations
- Can lead to a lot of boilerpalte
- Adds bloat
- Can lead to an additional layer of abstraction through virutal calls which can be slower than non-virtual calls
Unit Testing Code That Uses the Unity Engine - 2
- Alternative approach where a complete UnityEngine.dll is created
- Does not add the abstraction overhead
- Some complexity involved because it will require context switching of dlls
Application Management (ALM) with Unity Apps
- Microsoft / Visual Studio has useful tools for improving code quality, testing, managing releases, and beta distribution