예제 #1
0
        void SetupCategoryFilterUI()
        {
            m_CategoryFilterUI = EditorXRUtils.Instantiate(m_FilterUIPrefab, m_WorkspaceUI.frontPanel, false).GetComponent <FilterUI>();
            m_CategoryFilterUI.transform.localPosition += Vector3.right * k_FilterUIWidth * 3;
            foreach (var mb in m_CategoryFilterUI.GetComponentsInChildren <MonoBehaviour>())
            {
                this.ConnectInterfaces(mb);
            }

            m_CategoryFilterUI.filterChanged += () =>
            {
                var gridView    = m_PolyUI.gridView;
                var searchQuery = m_CategoryFilterUI.searchQuery;
                if (string.IsNullOrEmpty(searchQuery))
                {
                    gridView.category = PolyCategory.UNSPECIFIED;
                }
                else
                {
                    gridView.category = (PolyCategory)Enum.Parse(typeof(PolyCategory), searchQuery.ToUpper());
                }

                gridView.RequestAssetList();
                UpdateComplexityFilterUI();
            };

            m_CategoryFilterUI.buttonClicked += handle =>
            {
                m_SortingUI.SetListVisibility(false);
                m_FormatFilterUI.SetListVisibility(false);
                m_ComplexityFilterUI.SetListVisibility(false);
            };

            var categoryList = new List <string>();
            var textInfo     = Thread.CurrentThread.CurrentCulture.TextInfo;

            foreach (var category in Enum.GetNames(typeof(PolyCategory)))
            {
                if (category == "UNSPECIFIED")
                {
                    continue;
                }

                categoryList.Add(textInfo.ToTitleCase(category.ToLower()));
            }

            m_CategoryFilterUI.filterList = categoryList;

            m_CategoryFilterUI.GetComponentInChildren <Tooltip>().tooltipText = "Filter by Category";

            UpdateCategoryFilterUI();
        }
예제 #2
0
        void SetupFormatFilterUI()
        {
            m_FormatFilterUI = EditorXRUtils.Instantiate(m_FilterUIPrefab, m_WorkspaceUI.frontPanel, false).GetComponent <FilterUI>();
            m_FormatFilterUI.transform.localPosition += Vector3.right * k_FilterUIWidth;
            foreach (var mb in m_FormatFilterUI.GetComponentsInChildren <MonoBehaviour>())
            {
                this.ConnectInterfaces(mb);
            }

            m_FormatFilterUI.filterChanged += () =>
            {
                var gridView = m_PolyUI.gridView;
                switch (m_FormatFilterUI.searchQuery)
                {
                case k_Blocks:
                    gridView.format = PolyFormatFilter.BLOCKS;
                    break;

                case k_TiltBrush:
                    gridView.format = PolyFormatFilter.TILT;
                    break;

                default:
                    gridView.format = null;
                    break;
                }

                gridView.RequestAssetList();
                UpdateFormatFilterUI();
            };

            m_FormatFilterUI.buttonClicked += handle =>
            {
                m_SortingUI.SetListVisibility(false);
                m_ComplexityFilterUI.SetListVisibility(false);
                m_CategoryFilterUI.SetListVisibility(false);
            };

            m_FormatFilterUI.filterList = new List <string>
            {
                k_Blocks,
                k_TiltBrush
            };

            m_FormatFilterUI.GetComponentInChildren <Tooltip>().tooltipText = "Filter by Format";

            UpdateFormatFilterUI();
        }
예제 #3
0
        void SetupComplextyFilterUI()
        {
            m_ComplexityFilterUI = EditorXRUtils.Instantiate(m_FilterUIPrefab, m_WorkspaceUI.frontPanel, false).GetComponent <FilterUI>();
            m_ComplexityFilterUI.transform.localPosition += Vector3.right * k_FilterUIWidth * 2;
            foreach (var mb in m_ComplexityFilterUI.GetComponentsInChildren <MonoBehaviour>())
            {
                this.ConnectInterfaces(mb);
            }

            m_ComplexityFilterUI.filterChanged += () =>
            {
                var gridView = m_PolyUI.gridView;
                switch (m_ComplexityFilterUI.searchQuery)
                {
                case k_Medium:
                    gridView.complexity = PolyMaxComplexityFilter.MEDIUM;
                    break;

                case k_Simple:
                    gridView.complexity = PolyMaxComplexityFilter.SIMPLE;
                    break;

                default:
                    gridView.complexity = PolyMaxComplexityFilter.UNSPECIFIED;
                    break;
                }

                gridView.RequestAssetList();
                UpdateComplexityFilterUI();
            };

            m_ComplexityFilterUI.buttonClicked += handle =>
            {
                m_SortingUI.SetListVisibility(false);
                m_FormatFilterUI.SetListVisibility(false);
                m_CategoryFilterUI.SetListVisibility(false);
            };

            m_ComplexityFilterUI.filterList = new List <string>
            {
                k_Medium,
                k_Simple
            };

            m_ComplexityFilterUI.GetComponentInChildren <Tooltip>().tooltipText = "Filter by Complexity";

            UpdateComplexityFilterUI();
        }
예제 #4
0
        void SetupSortingUI()
        {
            m_SortingUI = EditorXRUtils.Instantiate(m_FilterUIPrefab, m_WorkspaceUI.frontPanel, false).GetComponent <FilterUI>();
            foreach (var mb in m_SortingUI.GetComponentsInChildren <MonoBehaviour>())
            {
                this.ConnectInterfaces(mb);
            }

            m_SortingUI.filterChanged += () =>
            {
                var gridView = m_PolyUI.gridView;
                switch (m_SortingUI.searchQuery)
                {
                case k_Featured:
                    gridView.sorting = PolyOrderBy.BEST;
                    break;

                case k_Newest:
                    gridView.sorting = PolyOrderBy.NEWEST;
                    break;
                }

                gridView.RequestAssetList();
                UpdateSortingUI();
            };

            m_SortingUI.buttonClicked += handle =>
            {
                m_FormatFilterUI.SetListVisibility(false);
                m_ComplexityFilterUI.SetListVisibility(false);
                m_CategoryFilterUI.SetListVisibility(false);
            };

            m_SortingUI.addDefaultOption = false;
            m_SortingUI.filterList       = new List <string>
            {
                k_Featured,
                k_Newest
            };

            m_SortingUI.GetComponentInChildren <Tooltip>().tooltipText = "Change sorting";

            UpdateSortingUI();
        }