A game about forced loneliness, made by TACStudios
1using System; 2using System.Runtime.Serialization; 3using Unity.PerformanceTesting.Runtime; 4 5namespace Unity.PerformanceTesting.Data 6{ 7 /// <summary> 8 /// Settings store 9 /// @TODO make it public along with guidelines of how and when to use 10 /// @TODO add a property bag 11 /// </summary> 12 [Serializable] 13 internal class RunSettings : IDeserializationCallback 14 { 15 public RunSettings(params string[] args) 16 { 17 if (int.TryParse(Utils.GetArg(args, "-performance-measurement-count"), out var measurementMultiplier)) 18 { 19 MeasurementCount = measurementMultiplier; 20 } 21 } 22 23 private static RunSettings m_Instance; 24 25 /// <summary> 26 /// Singleton instance of settings. 27 /// </summary> 28 public static RunSettings Instance 29 { 30 get 31 { 32 if (m_Instance == null) 33 { 34 m_Instance = ResourcesLoader.Load<RunSettings>(Utils.RunSettings, Utils.PlayerPrefKeySettingsJSON); 35 } 36 37 return m_Instance; 38 } 39 set { m_Instance = value; } 40 } 41 42 /// <summary> 43 /// Measurement counts will be overriden by specified value when using Measure.Method and Measure.Frames. 44 /// </summary> 45 public int MeasurementCount = -1; 46 47 /// <summary> 48 /// Validates the deserialized object. 49 /// </summary> 50 /// <param name="sender">The object that initiated the deserialization process.</param> 51 public void OnDeserialization(object sender) 52 { 53 if (MeasurementCount < -1) 54 { 55 throw new SerializationException("MeasurementCount cannot be negative, except for the initial value of -1."); 56 } 57 } 58 } 59}