Posts
-
Apr 14, 2015
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.
-
Mar 22, 2015
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. -
Mar 2, 2015
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.
-
Oct 10, 2013
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.
-
Sep 18, 2013
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.
-
Apr 30, 2013
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.
-
Feb 2, 2013
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.
-
Aug 3, 2012
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.
-
Jul 29, 2012
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.
-
Jul 16, 2012
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…