Unity Assembly Definitions and Editor Folders

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.

AR world dissolve effect in Unity

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.

Android Auto Rotate in Unity

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.

Checking for Android Tv in Unity

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 Property Drawers, Scene & Enum

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.

Git Commands From 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.

Unity IPreprocessBuild & IPostprocessBuild

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.