Example of custom tools developed for use in Unity Editor.
Work showcases custom editor window-based tools, but I have experience also developing custom editors scripts and other utilities.
Tool 1:
Level Asset Placement Tool
Purpose:
Place objects on Terrain without use of Terrain System’s Tree/Decorator systems
Organize prefabs into collections according to directory hierarchy
Support familiar workflow to Unity’s native workflow with features to further optimize workflow
Organize instances in scene according to level design systems’ conventions and requirements
Reasons:
Optimization - Unity’s Terrain component-based Tree-Decorator systems is very resource intensive
Custom Feature Support - Custom object placement tool allows for custom placement workflows (specifics below)
Bespoke Workflow - Support placement features that better aligns with specific game design’s level design needs
Features:
Simple backend workflow to support new collections categories
Automatic collection inventory and previews
Automatic (policy-based) instance markups (name, hierarchy, extra components, component configuration, tags, layers, etc.)
In-Scene placement preview
Fully supports default undo/redo hotkeys
Nuanced placement configuration
Randomize seed after each placement
Orientation Options: upright, normal to surface, and orientationless
Scaling Options: maintain proportions, independent axes scaling
Randomized scaling bracketing
Instances per placement
Radius
Roundness/Squareness
Placement Depth/Offset
Input overrides
Uses editor input events to allow for modifier + mouse wheel inputs to change most common parameters
Maintains expected zoom functionality by default
Right-click to exit “placement mode”
Automatically tracks previously used assets
Tool 2:
Scene Camera Controller
Purpose:
Place objects on Terrain without use of Terrain System’s Tree/Decorator systems
Organize prefabs into collections according to directory hierarchy
Support familiar workflow to Unity’s native workflow with features to further optimize workflow
Organize instances in scene according to level design systems’ conventions and requirements
Reasons:
Optimization - Unity’s Terrain component-based Tree-Decorator systems is very resource intensive
Custom Feature Support - Custom object placement tool allows for custom placement workflows (specifics below)
Bespoke Workflow - Support placement features that better aligns with specific game design’s level design needs
Tool 3:
Level Design Support Tools
Purpose:
Create a centralized palette of tools for level designers
Integrate QC / System requirement aids
Reason:
Designers unfamiliar with Unity’s new navigation tool set required support in configuring and baking nav meshes for testing
Based on level designer work, several excessive and repeated operations were identified that could be eliminated with editor instructions
Based on systems designer feedback, errors in object conventions were a consistent source of bugs
Features:
Quick lighting controls to aid level design decision making across different lighting conditions
Control main directional light (realtime GI source and lighting source)
Create/manage spotlight configured like character flashlights
Initialize and configure new level settings
Adjust GI, environmental lighting, and fog settings
Adjust camera settings including FOV, clear flags, and various markups
One-button Nav Mesh creation/configuration/baking
Tracks which operations are required so designers can just spam a single button
Advanced Navigation Component configuration (Unity’s Navigation Package component features)
QA button
Checks scene to make sure that expected objects exist
Existing object follow markup conventions and have expected components and configurations
Identifies procedural objects that have yet to be baked
Validates minimum expected components are present for level to be playable (systems policies)