I recently set up one of my Unity projects to use DocFx this was an interesting endeavour, getting DocFx to work offline was relatively easy with a few modifications to the normal templates. Getting it running on GitLab CI/CD was somewhat trickier.
Updating my old project Spinnacle to Unity 2017.4 LTS from Unity 5.5.0f3 was a lot less painful than other project updates to 5.5.
Unity added Assembly Definition files in Unity 2017.3 these were handy for packaging up code. In Unity 2018.1 they now work the way you would expect. Helping improve compile times, but they can still be tricky to hook up with Editor folders.
I have been trying out ARCore & ARKit using Unity’s ARFoundation. It allows you to utilize both ARKit and ARCore without having to write systems for each. This makes it a a nice layer of abstraction that allows for basic AR types to be setup; point cloud data, detected plane visualisation, and AR ray casting that is more efficient than normal physics ray casting.
I thought it would be cool to dissolve the game world away to reveal the real world.
Unity ignores Android’s auto-rotate settings which determine if an app should be able to auto-rotate and change orientation between; Portrait, LandscapeLeft, etc. If your game doesn’t auto-rotate between these settings then it doesn’t matter however, if it does this can really annoy users.
Usually if your making a game for AndroidTv it can be handy to detect at runtime when your connected to an AndroidTv or FireTv and change your controls.
Unity PropertyDrawers are incredibly useful they allow you to separate editor Ui extensions into reusable code. If you aren’t using property drawers or editor scripts you are missing out on a major benefit of Unity.
For most of my projects I use git for version control, sometimes I use custom scripts to version my builds so they include the current commit hash. To do this in Unity I use the .Net Process class in an editor script to launch the git command.
In Unity you will find yourself wanting to do some process before you build a game, whether it be Asset Bundles, moving platform specific assets to Streaming Assets or just ensuring the build version information is up to date.