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(); EditorXRUtils.Instantiate(m_ContentPrefab, m_WorkspaceUI.sceneContainer, false); m_MiniWorldUI = GetComponentInChildren <MiniWorldUI>(); m_GridMaterial = MaterialUtils.GetMaterialClone(m_MiniWorldUI.grid); var resetUI = EditorXRUtils.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 = EditorXRUtils.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 = EditorXRUtils.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 = EditorXRUtils.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 = minBounds; base.Setup(); var content = EditorXRUtils.Instantiate(m_ContentPrefab, m_WorkspaceUI.sceneContainer, false); m_PolyUI = content.GetComponent <PolyUI>(); foreach (var behavior in content.GetComponentsInChildren <MonoBehaviour>(true)) { this.InjectFunctionalitySingle(behavior); } var gridView = m_PolyUI.gridView; this.ConnectInterfaces(gridView); assetData = new List <PolyGridAsset>(); var sliderObject = EditorXRUtils.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); } SetupCategoryFilterUI(); SetupComplextyFilterUI(); SetupFormatFilterUI(); SetupSortingUI(); var zoomTooltip = sliderObject.GetComponentInChildren <Tooltip>(); if (zoomTooltip) { zoomTooltip.tooltipText = "Drag the Handle to Zoom the Asset Grid"; } var scrollHandle = m_PolyUI.scrollHandle; var scrollHandleTransform = scrollHandle.transform; scrollHandleTransform.SetParent(m_WorkspaceUI.topFaceContainer); scrollHandleTransform.localScale = k_ScrollHandleScale; scrollHandleTransform.localPosition = k_ScrollHandlePosition; scrollHandle.pointerDown += OnScrollPointerDown; scrollHandle.dragging += OnScrollDragging; scrollHandle.pointerUp += OnScrollPointerUp; m_PolyUI.scrollHandle.hoverStarted += OnScrollHoverStarted; m_PolyUI.scrollHandle.hoverEnded += OnScrollHoverEnded; // 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 content = EditorXRUtils.Instantiate(m_ContentPrefab, m_WorkspaceUI.sceneContainer, false); m_ProjectUI = content.GetComponent <ProjectUI>(); foreach (var behavior in content.GetComponentsInChildren <MonoBehaviour>(true)) { this.InjectFunctionalitySingle(behavior); } 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 = EditorXRUtils.Instantiate(m_FilterPrefab, m_WorkspaceUI.frontPanel, false).GetComponent <FilterUI>(); foreach (var mb in m_FilterUI.GetComponentsInChildren <MonoBehaviour>()) { this.ConnectInterfaces(mb); this.InjectFunctionalitySingle(mb); } filterList = m_FilterList; foreach (var button in m_FilterUI.GetComponentsInChildren <WorkspaceButton>()) { button.clicked += OnButtonClicked; button.hovered += OnButtonHovered; } var sliderObject = EditorXRUtils.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); this.InjectFunctionalitySingle(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.pointerDown += OnScrollPointerDown; handle.dragging += OnScrollDragging; handle.pointerUp += OnScrollPointerUp; } // Hookup highlighting calls m_ProjectUI.assetScrollHandle.pointerDown += OnAssetGridDragHighlightBegin; m_ProjectUI.assetScrollHandle.pointerUp += OnAssetGridDragHighlightEnd; m_ProjectUI.assetScrollHandle.hoverStarted += OnAssetGridHoverHighlightBegin; m_ProjectUI.assetScrollHandle.hoverEnded += OnAssetGridHoverHighlightEnd; m_ProjectUI.folderScrollHandle.pointerDown += OnFolderPanelDragHighlightBegin; m_ProjectUI.folderScrollHandle.pointerUp += OnFolderPanelDragHighlightEnd; m_ProjectUI.folderScrollHandle.hoverStarted += OnFolderPanelHoverHighlightBegin; m_ProjectUI.folderScrollHandle.hoverEnded += OnFolderPanelHoverHighlightEnd; // Propagate initial bounds OnBoundsChanged(); }