예제 #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 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();
        }