Building games is a time-consuming, complicated, and collaborative process. On massive projects, engineers often build tools like level editors, data visualizers, and automated tasks to enable their teammates to produce a game.
But tools are not just for AAA titles; we can always build small tools throughout the development process to increase productivity and make designing content more fun. One hidden gem of the Unity game engine is the extensibility of its editor. We can use C# scripting, just like our game scripts, to add functionality and graphical interfaces to our Unity workspace.
If you're an engineer or Unity developer, come learn how to make tools that you and your team can use every day in your workflow. If you're an artist, designer, or other non-technical game developer, come learn what kinds of tools you can expect your engineers to be capable of creating!
Serialization is the process of deterministically formatting data so that it can be stored or transmitted. Deserialization is the opposite process.
- Warcraft 3 World Editor
- Starcraft 2 Editor
- TexturePacker
- Easy Feedback
- Chevy Ray
- Stephan Hövelbrinks
- Automate something
- Add technical support (debugging, QA, etc.)
- Tweak the engine's default functionality
- Create an interface for designing content
- Use attributes to add quick and dirty utilities to the editor: Attributes Tutorial
- Create a menu item: Menu Items Tutorial
- Create an asset for a ScriptableObject type: ScriptableObjects Tutorial
- Making a field serializable: Serializable Reference
- Tweak the way fields are exposed to designers: Range Tutorial
- Assign icons to types in the editor: Assigning Icons Tutorial
- Extend or replace Unity inspector GUIs: Building a Custom Inspector Tutorial
- Change the way a serialized type is displayed across the editor: Property Drawers Manual
- Create a custom window for a standalone tool in Unity: Editor Windows Manual