public override void OnInspectorGUI() { EditorSelection myTarget = (EditorSelection)target; base.OnInspectorGUI(); if (GUILayout.Button("Select StoneStuff")) { Selection.objects = myTarget.GetComponentsInChildren <CustomStones>().Select(item => item.gameObject).ToArray(); } if (GUILayout.Button("Select Stones")) { Transform[] stonesStuff = myTarget.GetComponentsInDirectChildren <CustomStones>().Select(item => item.transform).ToArray(); List <Transform> stones = new List <Transform>(); foreach (var item in stonesStuff) { stones.Add(item.GetComponentInDirectChildren <Transform>()); } Selection.objects = stones.ToArray().Select(item => item.gameObject).ToArray(); } }