Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using UnityEngine.Rendering;
- using UnityEngine.Rendering.Universal;
- public static class PerformanceOptimizer
- {
- // Futtatás minden indításkor (Editor Play és build)
- [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
- private static void ApplyPerformanceSettings()
- {
- // 1) VSync off
- QualitySettings.vSyncCount = 0;
- // 2) Cél fps
- Application.targetFrameRate = -1;
- // 3) Leggyorsabb Quality szint megkeresése (Low/Performance)
- TrySetLowestQualityLevel();
- // 4) URP asset finomhangolás
- var urpAsset = GraphicsSettings.currentRenderPipeline as UniversalRenderPipelineAsset;
- if (urpAsset != null)
- {
- urpAsset.renderScale = 1.0f; // natív felbontás
- urpAsset.msaaSampleCount = 1; // MSAA off
- }
- // 5) Log
- string qualityName = QualitySettings.names[QualitySettings.GetQualityLevel()];
- if (urpAsset != null)
- {
- string msaaText = urpAsset.msaaSampleCount <= 1 ? "Off" : (urpAsset.msaaSampleCount + "x");
- Debug.Log("[PerformanceOptimizer] Beállítva: " +
- $"VSync off, targetFrameRate = {Application.targetFrameRate} fps, " +
- $"Quality = {qualityName}, URP RenderScale = {urpAsset.renderScale}, MSAA = {msaaText}");
- }
- else
- {
- Debug.Log("[PerformanceOptimizer] Beállítva: " +
- $"VSync off, targetFrameRate = {Application.targetFrameRate} fps, " +
- $"Quality = {qualityName}");
- }
- }
- // Segédfüggvény: a leggyorsabb quality szint kiválasztása
- private static void TrySetLowestQualityLevel()
- {
- int currentLevel = QualitySettings.GetQualityLevel();
- int chosen = currentLevel;
- string[] levels = QualitySettings.names;
- for (int i = 0; i < levels.Length; i++)
- {
- string q = levels[i].ToLower();
- if (q.Contains("low") || q.Contains("performance"))
- {
- chosen = i;
- break; // első találat elég
- }
- }
- if (chosen != currentLevel)
- QualitySettings.SetQualityLevel(chosen);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment