Posts

  • Automatically updating assembly version from git

    Originally when I started developing Rotorz Tile System I would update the version number of the assembly manually with each update. Despite the simplicity of this approach there were a couple of occasions where I would forget to bump to version in the “AssemblyInfo.cs” files or in the readme file. I improved this workflow by automating the updating of these version numbers from the most recent semver encoded git tag along with the hash of the most recent commit.

    Continue reading...

  • Designer friendly component scripts with Unity events

    Unity recently introduced a serializable UnityEvent class which allows scripts to expose events in the inspector allowing designers to wire up handlers without coding. This is a really powerful feature because it allows developers to implement components that can now be assembled much more freely by designers… almost like a basic form of visual scripting.

    Continue reading...

  • Pixel perfection in 2D game projects

    Pixel perfection can be a little more complicated to achieve when using a 3D game engine than one might initially think. There are many small contributing factors to unwanted side effects such as edge bleeding, fuzziness, flickering edges, non-uniformly shaped pixels, inconsistently shaped pixels, etc. To make things harder the solutions and workarounds often vary on a case by case basis.

    Continue reading...

  • Adding reorderable lists to editor interfaces in Unity

    Often I find myself in need of reorderable list functionality in my various custom editor interfaces, and so I decided to create a generalized implementation which works with generic lists List<T> and with SerializedProperty.

    Continue reading...

  • Initialization at runtime from a configuration asset

    Often when working with Unity I have the need to automatically initialize “controller” objects which live across scenes. In the past I have typically created an initialization scene and used DontDestroyOnLoad. Whilst this works it makes debugging scenes a lot tricky since you cannot just hit the “Play” button.

    Continue reading...

  • Adding the little padlock button to your EditorWindow!

    One of the less well known features of Unity is the little padlock button that lives in the upper-right corner of the Inspector window. This button is fantastic because it causes the inspector to ignore future selections and thus allowing you to select other objects without affecting the contents of the inspector.

    Continue reading...

  • Syntax highlighting with DITA

    Syntax highlighting is something that I like in user documentation because I feel that it helps make source listings easier for people to understand.

    Continue reading...

  • Working with DITA topic identifiers

    When writing my new user documentation using DITA I have found myself attempting to maintain a consistent naming convention for my unique topic IDs. The problem with this approach (to me at least) is that it would be fairly easy to inadvertently reuse the same “unique” identifier for two separate topics.

    Continue reading...

  • Choosing a documentation solution

    For a while I have been using Microsoft Word to author user guides and to be fair this has been a good solution up until now. Since beginning work on Rotorz Tile System there have been a number of product updates which have required multiple updates of the user documentation. Despite using style presets the process of maintaining consistent formatting and updating illustrations is extremely time consuming. I also feel that there is a need for a web based version of the documentation to make it easier for people to find their way around.

    Continue reading...

  • Possibility of reusing custom editors in a custom window?

    Several weeks ago I had some ideas that would add lots of flexibility to my custom editor window. In a nutshell the idea was to add, modify and remove certain components. To be honest I thought that this would be relatively easy because this functionality is already available within Unity inspector windows. I remembered seeing EditorGUILayout.PropertyField and I foolishly assumed that would do the trick, but I was wrong…

    Continue reading...