// UnityEditor.UI.MenuOptions public static GameObject GetOrCreateCanvasGameObject() { GameObject activeGameObject = Selection.activeGameObject; Canvas canvas = (!(activeGameObject != null)) ? null : activeGameObject.GetComponentInParent <Canvas>(); GameObject result; if (SpringGUIMenuOptions.IsValidCanvas(canvas)) { result = canvas.gameObject; } else { Canvas[] array = StageUtility.GetCurrentStageHandle().FindComponentsOfType <Canvas>(); for (int i = 0; i < array.Length; i++) { if (SpringGUIMenuOptions.IsValidCanvas(array[i])) { result = array[i].gameObject; return(result); } } result = SpringGUIMenuOptions.CreateNewUI(); } return(result); }
// UnityEditor.UI.MenuOptions public static GameObject CreateNewUI() { GameObject gameObject = new GameObject("Canvas"); gameObject.layer = LayerMask.NameToLayer("UI"); Canvas canvas = gameObject.AddComponent <Canvas>(); canvas.renderMode = RenderMode.ScreenSpaceOverlay; gameObject.AddComponent <CanvasScaler>(); gameObject.AddComponent <GraphicRaycaster>(); StageUtility.PlaceGameObjectInCurrentStage(gameObject); bool flag = false; PrefabStage currentPrefabStage = PrefabStageUtility.GetCurrentPrefabStage(); if (currentPrefabStage != null) { gameObject.transform.SetParent(currentPrefabStage.prefabContentsRoot.transform, false); flag = true; } Undo.RegisterCreatedObjectUndo(gameObject, "Create " + gameObject.name); if (!flag) { SpringGUIMenuOptions.CreateEventSystem(false); } return(gameObject); }
// UnityEditor.UI.MenuOptions private static void PlaceUIElementRoot(GameObject element, MenuCommand menuCommand) { GameObject gameObject = menuCommand.context as GameObject; bool flag = true; if (gameObject == null) { gameObject = SpringGUIMenuOptions.GetOrCreateCanvasGameObject(); flag = false; PrefabStage currentPrefabStage = PrefabStageUtility.GetCurrentPrefabStage(); if (currentPrefabStage != null && !currentPrefabStage.IsPartOfPrefabContents(gameObject)) { gameObject = currentPrefabStage.prefabContentsRoot; } } if (gameObject.GetComponentInParent <Canvas>() == null) { GameObject gameObject2 = SpringGUIMenuOptions.CreateNewUI(); gameObject2.transform.SetParent(gameObject.transform, false); gameObject = gameObject2; } SceneManager.MoveGameObjectToScene(element, gameObject.scene); Undo.RegisterCreatedObjectUndo(element, "Create " + element.name); if (element.transform.parent == null) { Undo.SetTransformParent(element.transform, gameObject.transform, "Parent " + element.name); } GameObjectUtility.EnsureUniqueNameForSibling(element); Undo.SetCurrentGroupName("Create " + element.name); GameObjectUtility.SetParentAndAlign(element, gameObject); if (!flag) { SpringGUIMenuOptions.SetPositionVisibleinSceneView(gameObject.GetComponent <RectTransform>(), element.GetComponent <RectTransform>()); } Selection.activeGameObject = element; }
private static void CreateEventSystem(bool select) { SpringGUIMenuOptions.CreateEventSystem(select, null); }
public static void CreateEventSystem(MenuCommand menuCommand) { GameObject parent = menuCommand.context as GameObject; SpringGUIMenuOptions.CreateEventSystem(true, parent); }