A game about forced loneliness, made by TACStudios
1#if UNITY_2022_2_OR_NEWER 2using System; 3#endif 4using UnityEditor.Build; 5using UnityEngine; 6 7namespace UnityEditor.TestTools.TestRunner.UnityTestProtocol 8{ 9 internal static class UtpMessageBuilder 10 { 11 internal static ScreenSettingsMessage BuildScreenSettings() 12 { 13#if UNITY_2022_2_OR_NEWER 14 // casting to int and rounding to ensure backwards compatibility with older package versions 15 var screenRefreshRate = (int)Math.Round(Screen.currentResolution.refreshRateRatio.value); 16#else 17 var screenRefreshRate = Screen.currentResolution.refreshRate; 18#endif 19 20 var screenSettingsMessage = new ScreenSettingsMessage() 21 { 22 ScreenSettings = new ScreenSettings(Screen.currentResolution.width, Screen.currentResolution.height, screenRefreshRate, Screen.fullScreen) 23 }; 24 25 return screenSettingsMessage; 26 } 27 28 public static QualitySettingsMessage BuildQualitySettings() 29 { 30 var qualitySettingsMessage = new QualitySettingsMessage() 31 { 32 QualitySettings = new QualitySettings( 33 UnityEngine.QualitySettings.vSyncCount, 34 UnityEngine.QualitySettings.antiAliasing, 35 UnityEngine.QualitySettings.activeColorSpace.ToString(), 36 UnityEngine.QualitySettings.anisotropicFiltering.ToString(), 37 UnityEngine.QualitySettings.skinWeights.ToString() 38 ), 39 }; 40 return qualitySettingsMessage; 41 } 42 43 internal static PlayerSystemInfoMessage BuildPlayerSystemInfo() 44 { 45 var xrDevice = string.Empty; 46 var XrModel = string.Empty; 47#if ENABLE_XR 48 xrDevice = UnityEngine.XR.XRSettings.loadedDeviceName; 49 XrModel = UnityEngine.XR.XRDevice.model; 50#endif 51 52 var playerSystemInfoMessage = new PlayerSystemInfoMessage() 53 { 54 PlayerSystemInfo = new PlayerSystemInfo( 55 SystemInfo.operatingSystem, 56 SystemInfo.deviceModel, 57 SystemInfo.deviceName, 58 SystemInfo.processorType, 59 SystemInfo.processorCount, 60 SystemInfo.graphicsDeviceName, 61 SystemInfo.systemMemorySize, 62 XrModel, 63 xrDevice 64 ), 65 }; 66 return playerSystemInfoMessage; 67 } 68 69 internal static PlayerSettingsMessage BuildPlayerSettings() 70 { 71 var scriptingBackend = string.Empty; 72#if UNITY_2021_2_OR_NEWER 73 scriptingBackend = 74 UnityEditor.PlayerSettings.GetScriptingBackend(NamedBuildTarget.FromBuildTargetGroup(EditorUserBuildSettings.selectedBuildTargetGroup)).ToString(); 75#else 76 scriptingBackend = UnityEditor.PlayerSettings.GetScriptingBackend(EditorUserBuildSettings.selectedBuildTargetGroup).ToString(); 77#endif 78 79 var playerSettingsMessage = new PlayerSettingsMessage() 80 { 81 PlayerSettings = new PlayerSettings( 82 scriptingBackend, 83 UnityEditor.PlayerSettings.gpuSkinning, 84 string.Empty, 85 UnityEditorInternal.InternalEditorUtility.inBatchMode.ToString(), 86 UnityEditor.PlayerSettings.stereoRenderingPath.ToString(), 87 UnityEditor.PlayerSettings.graphicsJobs ? "GraphicsJobs" : UnityEditor.PlayerSettings.MTRendering ? "MultiThreaded" : "SingleThreaded", 88 UnityEditor.PlayerSettings.Android.targetSdkVersion.ToString(), 89 UnityEditor.PlayerSettings.Android.minSdkVersion.ToString(), 90 UnityEditor.PlayerSettings.graphicsJobs, 91 UnityEditor.PlayerSettings.MTRendering 92 ), 93 }; 94 95 return playerSettingsMessage; 96 } 97 98 internal static BuildSettingsMessage BuildBuildSettings() 99 { 100 var buildSettingsMessage = new BuildSettingsMessage() 101 { 102 BuildSettings = new BuildSettings( 103 Application.platform.ToString(), 104 EditorUserBuildSettings.activeBuildTarget.ToString(), 105 EditorUserBuildSettings.development, 106 EditorUserBuildSettings.androidBuildSystem.ToString() 107 ) 108 }; 109 110 return buildSettingsMessage; 111 } 112 } 113}