void CreateDefaultTools() { m_DefaultTools.Clear(); for (int i = 0; i < (int)Tool.Custom; i++) { var button = new ToolButton((Tool)i); button.displayChanged += () => EditorToolbarUtility.SetupChildrenAsButtonStrip(m_DefaultTools); m_DefaultTools.Add(button); } foreach (var type in EditorToolManager.activeToolContext.GetAdditionalToolTypes()) { if (!typeof(EditorTool).IsAssignableFrom(type)) { Debug.LogError($"{type} must be assignable to EditorTool, and not abstract."); continue; } var addl = EditorToolManager.GetSingleton(type) as EditorTool; var button = new ComponentToolButton <EditorTool>(addl); m_DefaultTools.Add(button); } EditorToolbarUtility.SetupChildrenAsButtonStrip(m_DefaultTools); }