Thursday, July 19, 2018

Chicken Assassin Reloaded available on Switch!



We helped bring Chicken Assassin Reloaded to the Switch, working with Akupara Games!  This is a crazy role-playing-clicker with a super insane art style.  Well worth checking out!

Image result for chicken assassin

Tuesday, June 19, 2018

INK now available on Switch!

We handled porting this fun and challenging platform game, where you splat invisible walls with ink to discover the level!  Plus we added cooperative play in the process, for pretty sweet couch multiplayer.  Check it out!




Tuesday, May 22, 2018

Unity3D Default Script Properties

I get the impression a lot of people aren't aware that Unity lets you set the default properties for any script file with serialized fields.  This means when you add that script as a component to a GameObject, those defaults will be applied upon creation.

This is something that doesn't matter that often, but in the right situation can be very useful.  For example, I just completed a task in which I needed to apply a component that plays appropriate selection/activation sounds for a button.  This component requires that I set an audio mixer channel, and fill in lists of which sounds to play.  Since the menu has dozens of button objects, many of which do not have a prefab, these assignments would need to be manually done dozens of times.

This is obviously a chore, and beyond that there's a lot of room to accidentally miss a couple of fields as I went through and did them all.  Using default properties, however, I could avoid those problems. I can simply select the script file, fill in the defaults for those fields, then whenever I added the component the standard sounds and channel were filled in automatically.

For reference, when selecting a script file look for a section at the top of the inspector panel, like so:


Friday, January 12, 2018

A Useful Feature of Unity's Debug.Log

This really isn't hidden, but somehow we've been using Unity for years without ever realizing.  Debug.Log (and related methods) actually have a second argument you can fill in.   Pass it an Object as a second argument, like so:

Debug.Log( "Some sort of problem!", myGameObject );

This will print to the Unity console as normal, but filling in the object means clicking on the log entry will take you to that object in the hierarchy.

Friday, October 13, 2017

What level does "Force Anisotropic" in Unity force it to?

Unity3D's quality settings have a drop-down for "Anisotropic Filtering", and one of those settings is "Forced On".  But what level of anisotropy does it force to?

Experimentation tells me that it forces to 8x.  If your texture is already set to use anisotropic filtering at a level above 8x, it will remain at that level rather than being downgraded.

This was tested with Unity 5.6.2p4.

Tuesday, October 3, 2017

Unity3D Matrix Layout

I had trouble finding a reference for this, so I wanted to post a table of the Unity matrix component layout.  The member names don't go the obvious direction for XY coordinates.

m00  m01  m02  m03
m10  m11  m12  m13
m20  m21  m22  m23
m30  m31  m32  m33

03, 13, 23 = Translation X, Y, Z
00, 11, 22 = Scale X, Y, Z