public static UiFrame CreateDefaultUIFrame() { GameObject uiFrame = new GameObject("UI Frame"); UiFrame result = uiFrame.AddComponent <UiFrame>(); Camera camera = CreateCamera(); camera.transform.SetParent(uiFrame.transform); EventSystem eventSystem = CreateEventSystem(); eventSystem.transform.SetParent(uiFrame.transform); Canvas mainCanvas = CreateCanvas(camera); mainCanvas.transform.SetParent(uiFrame.transform); PanelLayer panelLayer = CreatePanelLayer(); panelLayer.transform.SetParent(mainCanvas.transform, false); WindowLayer windowLayer = CreateWindowLayer(); windowLayer.transform.SetParent(mainCanvas.transform, false); GameObject priorityPanelLayer = CreateUIObject("Priority Panel Layer"); priorityPanelLayer.transform.SetParent(mainCanvas.transform, false); WindowParaLayer priorityWindowLayer = CreatePriorityWindowLayer(); priorityWindowLayer.transform.SetParent(mainCanvas.transform, false); windowLayer.SetPriorityLayer(priorityWindowLayer); GameObject overlayPanelLayer = CreateUIObject("Overlay Panel Layer"); overlayPanelLayer.transform.SetParent(mainCanvas.transform, false); GameObject tutorialPanelLayer = CreateUIObject("Tutorial Panel Layer"); tutorialPanelLayer.transform.SetParent(mainCanvas.transform, false); GameObject blockerPanelLayer = CreateUIObject("Blocker Panel Layer"); blockerPanelLayer.transform.SetParent(mainCanvas.transform, false); panelLayer.PriorityLayers = new PanelPriorityLayerList(new List <PanelPriorityLayerListEntry> { new PanelPriorityLayerListEntry(PanelPriority.Prioritary, priorityPanelLayer.transform), new PanelPriorityLayerListEntry(PanelPriority.Overlay, overlayPanelLayer.transform), new PanelPriorityLayerListEntry(PanelPriority.Tutorial, tutorialPanelLayer.transform), new PanelPriorityLayerListEntry(PanelPriority.Blocker, blockerPanelLayer.transform) }); return(result); }
public virtual void Initialize() { if (panelLayer == null) { panelLayer = GetComponentInChildren <PanelLayer>(); if (panelLayer == null) { Debug.LogError("UI Frame lacks Panel Layer!"); } else { panelLayer.Initialize(this); } } if (windowLayer == null) { windowLayer = GetComponentInChildren <WindowLayer>(); if (windowLayer == null) { Debug.LogError("UI Frame lacks Window Layer!"); } else { windowLayer.Initialize(this); windowLayer.CurrentWindowChanged += OnCurrentWindowChanged; } } GameObject blockingTrackerTarget = MainCanvas ? MainCanvas.gameObject : gameObject; mainBlockingTracker = blockingTrackerTarget.GetOrAddComponent <InteractionBlockingTracker>(); mainBlockingTracker.IsInteractableChanged += OnIsInteractableChanged; }