The following blog post, unless otherwise noted, was written by a member of Gamasutras community.

The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.

Here’s part 2 of my must-have Unity3D plugins series. Once again, I’ll share some plugins I’m using on my game projects and that I recommend you.

In case you missed it, part 1 is available here.

Touch Console Pro

https://www.assetstore.unity3d.com/en/#!/content/25559

I discovered this one only recently but I’m already in love with it. Three main reasons for that:

In-game console

Yes, it allows you to have an interactive console inside your game!

OK, it may not seem much said that way but believe me, that’s a “game changer” (huhu) when you make mobile games. Yes, you can access device logs but let’s admit it, it’s not very user friendly…

Logs can be filtered by type (debug/warning/error/exception/assert) and by content (using key words or regular expressions), you can see full stacktrace by clicking on it and the console pops up automatically when an exception is raised (optional).

Console commands

The plugin also offers the possibility to execute “quake-like” console commands while playing your game, which is very practical for testing.

You can obviously implement your own custom commands using a very simple API allowing commands with parameters, command helpers, etc.

I personally use it mainly for cheats (unlocking missions, adding life, toggling god mode, etc) and to enable debug mode (displaying additional information in game view, being able to control CPU characters, etc) but you can be more creative with it.

Bug report

But there’s another feature that is priceless to me: the bug report tool. Your players (or testers!) can use it to send you a complete bug report by email!

This include your logs (in sexy colored interactive HTML), device information (hardware details, game version, etc), a screenshot of the game and even a game save if you implement it!

TL;DR

Long story short, your life (and the life or your testers) will be much easier with this plugin if you work on mobile platforms.

You could go with your in-house solution (I actually started implementing my own before trying it) but you will only get this level of polish if you give it weeks of your precious dev time.

Maintainer

https://www.assetstore.unity3d.com/en/#!/content/32199

As perfectly described in its asset store page, Maintainer is your project “housekeeping assistant”. It helps check potential issues related to:

Components (missing, duplicate or with incomplete properties)

(missing, duplicate or with incomplete properties) Prefabs (disconnected instances, missing prefab)

(disconnected instances, missing prefab) Other “neatness” constraints

The awesome part is it checks all your scenes and assets!

It also presents the found issues in a very practical list with the ability to focus on the associated assets or game objects.

It could have more options like customizable scene check list or a component ignore list but it’s already a great tool to detect potential bugs and refactoring needs early on.

By the way, use it as soon as possible in your development process, you will once again save yourself some precious dev time!

Heavy-Duty Inspector

https://www.assetstore.unity3d.com/en/#!/content/14472

Time, time, time, oh precious time…

Isn’t game development all about optimizing time spent on gameplay instead of boring stuff?

Isn’t life all about optimizing time spent on gameplay instead of boring stuff? …OK maybe not >_>

Tools are as important as boring to implement. You should must not work without good tools.

Good tools make your (team) daily tasks easier and help you focus on what’s really important for your game. They are a huge time saver in the long term but they need a significant initial investment.

What if you could drastically reduce this investment and only get the best part of it?

Unity editor can be extended with custom windows, menus and inspectors so it’s a great place to implement your tools. One of the most powerful features of its API is the Property Drawers system. It allows to define how the way your components (or scriptable objects) properties are displayed in the inspector. The problem is it needs a lot of code to do simple things.

Heavy Duty Inspector does the coding for you and gives you access to it via custom Attributes. So with a single line of code (really), you can now:

Add colors and names to you components (handy when you have several instances of the same component on a single game object)

Easily duplicate, insert or move elements of your lists

Add an interactive button in the inspector to execute a specific method

in the inspector to execute a specific method Add comments above properties (really useful when working with non technical guys always wondering what is this property for or what is the expected value format)

above properties (really useful when working with non technical guys always wondering what is this property for or what is the expected value format) Hide properties based on another property value (priceless when dealing with complex scriptable objects)

based on another property value (priceless when dealing with complex scriptable objects) Mark properties as layer or tag to display the corresponding prefilled drop list

or to display the corresponding prefilled drop list Serialize unsupported types like unsigned 64 bits integers

Dictionaries are also exposable in the inspector but need several lines of rather unintuitive code.

No more excuses now, you can make awesome tools in no time!

That concludes part 2! I hope you liked it.

Don’t forget to check the asset store before implementing something new and to leave a review once you bought something. By the way…