protected static ChildrenChangeMode AskChangeModeIfNecessary(List <GameObject> objs, ChildrenChangeMode reference, string title, string message) { var controlPressed = Event.current.control || Event.current.command; switch (reference) { case ChildrenChangeMode.ObjectOnly: return(controlPressed ? ChildrenChangeMode.ObjectAndChildren : ChildrenChangeMode.ObjectOnly); case ChildrenChangeMode.ObjectAndChildren: return(controlPressed ? ChildrenChangeMode.ObjectOnly : ChildrenChangeMode.ObjectAndChildren); default: for (var i = 0; i < objs.Count; i++) { if (objs[i] && objs[i].transform.childCount > 0) { try { return((ChildrenChangeMode)EditorUtility.DisplayDialogComplex(title, message, "Yes, change children", "No, this object only", "Cancel")); } finally { //Unity bug, DisplayDialogComplex makes the unity partially lose focus if (EditorWindow.focusedWindow) { EditorWindow.focusedWindow.Focus(); } } } } return(ChildrenChangeMode.ObjectOnly); } }
public static ChildrenChangeMode AskChangeModeIfNecessary(List <GameObject> objs, ChildrenChangeMode reference, string title, string message) { if (reference != ChildrenChangeMode.Ask) { return(reference); } foreach (var obj in objs) { if (obj && obj.transform.childCount > 0) { return((ChildrenChangeMode)EditorUtility.DisplayDialogComplex(title, message, "Yes, change children", "No, this object only", "Cancel")); } } return(ChildrenChangeMode.ObjectOnly); }