/// <summary> /// Iterates over all Quality Settings and saves relevant settings to a RenderSettingsItem. /// This will also create the required information for the Render Pipeline Converter UI. /// </summary> /// <param name="context">Converter context to add elements to.</param> private void GatherQualityLevels(ref InitializeConverterContext context) { var currentQuality = QualitySettings.GetQualityLevel(); var id = 0; foreach (var levelName in QualitySettings.names) { QualitySettings.SetQualityLevel(id); var projectSettings = new RenderSettingItem { Index = id, LevelName = levelName, PixelLightCount = QualitySettings.pixelLightCount, MSAA = QualitySettings.antiAliasing, Shadows = QualitySettings.shadows, ShadowResolution = QualitySettings.shadowResolution, ShadowDistance = QualitySettings.shadowDistance, ShadowCascadeCount = QualitySettings.shadowCascades, CascadeSplit2 = QualitySettings.shadowCascade2Split, CascadeSplit4 = QualitySettings.shadowCascade4Split, SoftParticles = QualitySettings.softParticles, }; m_SettingsItems.Add(projectSettings); var setting = QualitySettings.GetRenderPipelineAssetAt(id); var item = new ConverterItemDescriptor { name = $"Quality Level {id}: {levelName}" }; if (setting != null) { item.warningMessage = setting.GetType() == typeof(UniversalRenderPipelineAsset) ? "Contains URP Asset, will override existing asset." : "Contains SRP Asset, will override existing asset with URP asset."; } context.AddAssetToConvert(item); id++; } QualitySettings.SetQualityLevel(currentQuality); }
private void AddSearchItemsAsConverterAssetEntries(ISearchList searchItems, InitializeConverterContext context) { foreach (var searchItem in searchItems) { if (searchItem == null || !GlobalObjectId.TryParse(searchItem.id, out var globalId)) { continue; } var description = searchItem.provider.fetchDescription(searchItem, searchItem.context); var item = new ConverterItemDescriptor() { name = description.Split('/').Last().Split('.').First(), info = $"{ReturnType(globalId)}", }; guids.Add(globalId.ToString()); context.AddAssetToConvert(item); } }
public override void OnInitialize(InitializeConverterContext ctx, Action callback) { var context = Search.SearchService.CreateContext("asset", "urp:convert-readonly"); Search.SearchService.Request(context, (c, items) => { // we're going to do this step twice in order to get them ordered, but it should be fast var orderedRequest = items.OrderBy(req => { GlobalObjectId.TryParse(req.id, out var gid); return(gid.assetGUID); }); foreach (var r in orderedRequest) { if (r == null || !GlobalObjectId.TryParse(r.id, out var gid)) { continue; } var label = r.provider.fetchLabel(r, r.context); var description = r.provider.fetchDescription(r, r.context); var item = new ConverterItemDescriptor() { name = description.Split('/').Last().Split('.').First(), info = $"{label}", }; guids.Add(gid.ToString()); ctx.AddAssetToConvert(item); } callback.Invoke(); }); context?.Dispose(); }