Tool groups place logically similar tools under a single header in the Tools Overlay.
Use Tool groups when tools that have different ToolAttribute.targetType need to stay together in the Tools Overlay. Otherwise, they're grouped by their scope: built-in, additional built-in, global, and component.
using UnityEngine;
using UnityEditor.EditorTools;
namespace ToolGroupsExample
{
// Group A
[Icon("Assets/ToolGroupA.png")]
public class ToolGroup_A {}
[EditorTool("Tool A (Group A)", typeof(Transform), group = typeof(ToolGroup_A))]
public class ToolA_GroupA : EditorTool {}
[EditorTool("Tool B (Group A)", typeof(BoxCollider), group = typeof(ToolGroup_A))]
public class ToolB_GroupA : EditorTool {}
// Group B
[Icon("Assets/ToolGroupB.png")]
public class ToolGroup_B {}
[EditorTool("Tool A (Group B)", typeof(MeshRenderer), group = typeof(ToolGroup_B))]
public class ToolA_GroupB : EditorTool {}
[EditorTool("Tool B (Group B)", typeof(SphereCollider), group = typeof(ToolGroup_B))]
public class ToolB_GroupB : EditorTool {}
// Global
[EditorTool("Tool C (Global - Ungrouped)")]
public class ToolC_Global : EditorTool {}
// Component
[EditorTool("Tool D (Component - Ungrouped)", typeof(Transform))]
public class ToolD_Ungrouped : EditorTool {}
}