#if UNITY_EDITOR using System; using System.Collections.Generic; using System.IO; namespace UnityEngine.Rendering { internal static partial class RenderPipelineGraphicsSettingsStripper { public class Report : IDisposable { internal static string k_OutputPath = "Temp/graphics-settings-stripping.json"; [Serializable] class SettingsStrippingInfo { public string type; public bool isAvailableInPlayerBuild; public bool strippersDefined; } [Serializable] class Export { public uint totalSettings = 0; public uint totalSettingsOnPlayer = 0; public List settings = new(); } public Report() { try { if (File.Exists(k_OutputPath)) File.Delete(k_OutputPath); } catch (Exception e) { Debug.LogException(e); } } Export m_Data = new(); public void AddStrippedSetting(Type settingsType, bool isAvailableInPlayerBuild, bool strippersDefined) { m_Data.totalSettings++; if (isAvailableInPlayerBuild) { m_Data.totalSettingsOnPlayer++; } m_Data.settings.Add(new SettingsStrippingInfo() { type = settingsType.AssemblyQualifiedName, isAvailableInPlayerBuild = isAvailableInPlayerBuild, strippersDefined = strippersDefined }); } static void ExportStrippingInfo(string path, Export data) { try { File.WriteAllText(path, JsonUtility.ToJson(data, true)); } catch (Exception e) { Debug.LogException(e); } } public void Dispose() { ExportStrippingInfo(k_OutputPath, m_Data); } } } } #endif