private void triggerSearch() { if (framesSinceLastSearch < nbFrameSearchCooldown) { return; } if (_skfbWin != null) { _skfbWin.Close(); } string licenseSmug; switch (_licenseIndex) { case 0: licenseSmug = ""; break; case 1: licenseSmug = "by"; break; case 2: licenseSmug = "by-sa"; break; case 3: licenseSmug = "by-nd"; break; case 4: licenseSmug = "by-nc"; break; case 5: licenseSmug = "by-nc-sa"; break; case 6: licenseSmug = "by-nc-nd"; break; case 7: licenseSmug = "cc0"; break; default: licenseSmug = ""; break; } SORT_BY sort; switch (_sortByIndex) { case 0: sort = SORT_BY.RELEVANCE; break; case 1: sort = SORT_BY.LIKES; break; case 2: sort = SORT_BY.VIEWS; break; case 3: sort = SORT_BY.RECENT; break; default: sort = SORT_BY.RELEVANCE; break; } // Point clouds are not supported in Unity so check that polycount is not 0 // here. It won't prevent model that are parially point clouds but it's better // than nothing string _minFaceCount = "1"; string _maxFaceCount = ""; switch (_polyCountIndex) { case 0: break; case 1: _maxFaceCount = "10000"; break; case 2: _minFaceCount = "10000"; _maxFaceCount = "50000"; break; case 3: _minFaceCount = "50000"; _maxFaceCount = "100000"; break; case 4: _minFaceCount = "100000"; _maxFaceCount = "250000"; break; case 5: _minFaceCount = "250000"; break; } SEARCH_ENDPOINT endpoint = SEARCH_ENDPOINT.DOWNLOADABLE; switch (_searchInIndex) { case SEARCH_IN.MY_MODELS: endpoint = SEARCH_ENDPOINT.MY_MODELS; break; case SEARCH_IN.MY_STORE_PURCHASES: endpoint = SEARCH_ENDPOINT.STORE_PURCHASES; break; default: endpoint = SEARCH_ENDPOINT.DOWNLOADABLE; break; } _browserManager.search(_query, _staffpicked, _animated, _categoryName, licenseSmug, _maxFaceCount, _minFaceCount, endpoint, sort); framesSinceLastSearch = 0.0f; }
public void search(string query, bool staffpicked, bool animated, string categoryName, string licenseSmug, string maxFaceCount = "", string minFaceCount = "", SEARCH_ENDPOINT endpoint = SEARCH_ENDPOINT.DOWNLOADABLE, SORT_BY sortBy = SORT_BY.RECENT) { reset(); string searchQuery = ""; switch (endpoint) { case SEARCH_ENDPOINT.DOWNLOADABLE: searchQuery = SketchfabPlugin.Urls.searchEndpoint; break; case SEARCH_ENDPOINT.MY_MODELS: searchQuery = SketchfabPlugin.Urls.ownModelsSearchEndpoint; break; case SEARCH_ENDPOINT.STORE_PURCHASES: searchQuery = SketchfabPlugin.Urls.storePurchasesModelsSearchEndpoint; break; } if (endpoint != SEARCH_ENDPOINT.STORE_PURCHASES) { // Apply default filters searchQuery = searchQuery + "type=models&downloadable=true"; } if (query.Length > 0) { if (endpoint != SEARCH_ENDPOINT.STORE_PURCHASES) { searchQuery = searchQuery + "&"; } searchQuery = searchQuery + "q=" + query; } // Search filters are not available for store purchases if (endpoint != SEARCH_ENDPOINT.STORE_PURCHASES) { searchQuery = applySearchFilters(searchQuery, staffpicked, animated, categoryName, licenseSmug, maxFaceCount, minFaceCount); switch (sortBy) { case SORT_BY.RECENT: searchQuery = searchQuery + "&sort_by=" + "-publishedAt"; break; case SORT_BY.VIEWS: searchQuery = searchQuery + "&sort_by=" + "-viewCount"; break; case SORT_BY.LIKES: searchQuery = searchQuery + "&sort_by=" + "-likeCount"; break; } } _lastQuery = searchQuery; startSearch(); _isFetching = true; }