Lately I have been working on an extension for Unity3D.
I tried to make a 2D platformer game and I quickly became frustrated with the amount of effort necessary to connect objects.
Here’s a few gifs to express my main issues:
- When you create a joint, you need to tweak the values in the inspector before being able to use the handles:
- You need to move the connected anchor manually by hand to align it with the main anchor:
- There’s no visual feedback regarding when you can interact with the interface, unless you click:
- And so on…
In order to prevent myself from going crazy, I decided to get rid of these problems. Then I would be able to work on the game itself!
My main goal is to better the user experience of game developers (including myself).
I have taken Nielsen’s 10 usability heuristics for user interface design as a guide to help me develop the extension.
The improvements I have made are as follows:
- Dynamic cursor icons and tooltips:
- This is one of the most useful additions I have done, as it reduces a lot of uncertainty about the system status.
- You now know when you can interact with the interface, and what they will do.
- The cursor changes to a move symbol when your actions will move the handle, or a rotation symbol when your actions will rotate the handle.
- When you start dragging, the icon changes slightly, that’s great instant feedback!
- I also highlight which area is interactive.
- Context menus:
- When you right-click a handle, a context menu pops up, and lists relevant options, depending on the Joint type.
- Anchor Locking
- Joints have anchors on the bodies that they want to connect
- Sometimes, when you move one anchor around, the other anchor, or some other property of the joint needs to be configured
- Anchor locking automates the unnecessary repetition in this process
- Customizable visual handles:
- The user can customize the size of the handles, making them larger or smaller, depending on their preferences
- The graphics of the handles can be easily replaced
- And more:
- Drag-drop object references onto the handles to connect
- Hold shift to show anchor locking buttons
- Hold control or command to have the anchor snap to points of interest
- And even more! But I’ll let you discover the rest 😉
Here’s the GitHub repository for it: https://github.com/toxicFork/Unity-2D-Joint-Editors