public override void Setup() { const float yBounds = 0.5f; // Initial bounds must be set before the base.Setup() is called minBounds = new Vector3(MinBounds.x, yBounds, 0.25f); m_CustomStartingBounds = new Vector3(MinBounds.x, yBounds, 0.5f); base.Setup(); ObjectUtils.Instantiate(m_ContentPrefab, m_WorkspaceUI.sceneContainer, false); m_MiniWorldUI = GetComponentInChildren <MiniWorldUI>(); m_GridMaterial = MaterialUtils.GetMaterialClone(m_MiniWorldUI.grid); var resetUI = ObjectUtils.Instantiate(m_RecenterUIPrefab, m_WorkspaceUI.frontPanel, false).GetComponentInChildren <ResetUI>(); resetUI.resetButton.onClick.AddListener(ResetChessboard); foreach (var mb in resetUI.GetComponentsInChildren <MonoBehaviour>()) { this.ConnectInterfaces(mb); } var parent = m_WorkspaceUI.frontPanel.parent; m_LocatePlayerUI = ObjectUtils.Instantiate(m_LocatePlayerPrefab, parent, false).transform; m_PlayerDirectionButton = m_LocatePlayerUI.GetChild(0); foreach (var mb in m_LocatePlayerUI.GetComponentsInChildren <MonoBehaviour>()) { var button = mb as Button; if (button) { button.onClick.AddListener(RecenterOnPlayer); } } m_PlayerDirectionArrow = ObjectUtils.Instantiate(m_PlayerDirectionArrowPrefab, parent, false).transform; // Set up MiniWorld m_MiniWorld = GetComponentInChildren <MiniWorld>(); m_MiniWorld.referenceTransform.position = Vector3.up * k_InitReferenceYOffset * k_InitReferenceScale; m_MiniWorld.referenceTransform.localScale = Vector3.one * k_InitReferenceScale; // Set up Zoom Slider var sliderObject = ObjectUtils.Instantiate(m_ZoomSliderPrefab, m_WorkspaceUI.frontPanel, false); m_ZoomSliderUI = sliderObject.GetComponentInChildren <ZoomSliderUI>(); m_ZoomSliderUI.sliding += OnSliding; m_ZoomSliderUI.zoomSlider.maxValue = Mathf.Log10(k_ZoomSliderMax); m_ZoomSliderUI.zoomSlider.minValue = Mathf.Log10(k_ZoomSliderMin); m_ZoomSliderUI.zoomSlider.direction = Slider.Direction.RightToLeft; // Invert direction for expected ux; zoom in as slider moves left to right m_ZoomSliderUI.zoomSlider.value = Mathf.Log10(k_InitReferenceScale); foreach (var mb in m_ZoomSliderUI.GetComponentsInChildren <MonoBehaviour>()) { this.ConnectInterfaces(mb); } var zoomTooltip = sliderObject.GetComponentInChildren <Tooltip>(); if (zoomTooltip) { zoomTooltip.tooltipText = "Drag the Handle to Zoom the Mini World"; } // Propagate initial bounds OnBoundsChanged(); }
public override void Setup() { // Initial bounds must be set before the base.Setup() is called minBounds = k_MinBounds; m_CustomStartingBounds = k_CustomStartingBounds; base.Setup(); topPanelDividerOffset = k_LeftPaneRatio; // enable & position the top-divider(mask) slightly to the left of workspace center var contentPrefab = ObjectUtils.Instantiate(m_ContentPrefab, m_WorkspaceUI.sceneContainer, false); m_ProjectUI = contentPrefab.GetComponent <ProjectUI>(); var assetGridView = m_ProjectUI.assetGridView; this.ConnectInterfaces(assetGridView); assetGridView.matchesFilter = this.MatchesFilter; assetGridView.data = new List <AssetData>(); var folderListView = m_ProjectUI.folderListView; this.ConnectInterfaces(folderListView); folderListView.folderSelected += OnFolderSelected; folderData = m_FolderData; m_FilterUI = ObjectUtils.Instantiate(m_FilterPrefab, m_WorkspaceUI.frontPanel, false).GetComponent <FilterUI>(); foreach (var mb in m_FilterUI.GetComponentsInChildren <MonoBehaviour>()) { this.ConnectInterfaces(mb); } filterList = m_FilterList; foreach (var button in m_FilterUI.GetComponentsInChildren <WorkspaceButton>()) { button.clicked += OnButtonClicked; button.hovered += OnButtonHovered; } var sliderObject = ObjectUtils.Instantiate(m_SliderPrefab, m_WorkspaceUI.frontPanel, false); m_ZoomSliderUI = sliderObject.GetComponent <ZoomSliderUI>(); m_ZoomSliderUI.zoomSlider.minValue = Mathf.Log10(k_MinScale); m_ZoomSliderUI.zoomSlider.maxValue = Mathf.Log10(k_MaxScale); m_ZoomSliderUI.sliding += Scale; UpdateZoomSliderValue(); foreach (var mb in m_ZoomSliderUI.GetComponentsInChildren <MonoBehaviour>()) { this.ConnectInterfaces(mb); } var zoomTooltip = sliderObject.GetComponentInChildren <Tooltip>(); if (zoomTooltip) { zoomTooltip.tooltipText = "Drag the Handle to Zoom the Asset Grid"; } var scrollHandles = new[] { m_ProjectUI.folderScrollHandle, m_ProjectUI.assetScrollHandle }; foreach (var handle in scrollHandles) { // Scroll Handle shouldn't move on bounds change handle.transform.parent = m_WorkspaceUI.sceneContainer; handle.dragStarted += OnScrollDragStarted; handle.dragging += OnScrollDragging; handle.dragEnded += OnScrollDragEnded; } // Hookup highlighting calls m_ProjectUI.assetScrollHandle.dragStarted += OnAssetGridDragHighlightBegin; m_ProjectUI.assetScrollHandle.dragEnded += OnAssetGridDragHighlightEnd; m_ProjectUI.assetScrollHandle.hoverStarted += OnAssetGridHoverHighlightBegin; m_ProjectUI.assetScrollHandle.hoverEnded += OnAssetGridHoverHighlightEnd; m_ProjectUI.folderScrollHandle.dragStarted += OnFolderPanelDragHighlightBegin; m_ProjectUI.folderScrollHandle.dragEnded += OnFolderPanelDragHighlightEnd; m_ProjectUI.folderScrollHandle.hoverStarted += OnFolderPanelHoverHighlightBegin; m_ProjectUI.folderScrollHandle.hoverEnded += OnFolderPanelHoverHighlightEnd; // Propagate initial bounds OnBoundsChanged(); }