1.修改渲染分辨率
1.修改渲染分辨率
1).Quality等级的预设 a.打开Edit->Project Settings->Quality b.新建High/Medium/Low三个等级,分别设置分辨率缩放(High=1.0、Medium=0.8、Low=0.65)c.记住每个等级的"名称",比如High对应Quality面板里的High,需和代码里的字符串一致2).编写运行时检测设备性能并切换等级的代码usingUnityEngine;usingSystem.Collections;publicclassQualityLevelAutoSwitch:MonoBehaviour{// 游戏启动时优先执行(早于Start)privateIEnumeratorStart(){// 等待1帧,确保系统信息加载完成(避免获取不到GPU信息)yieldreturnnull;// 1. 检测设备性能,返回推荐的Quality等级名称stringrecommendedQuality=DetectDevicePerformance();// 2. 切换到推荐的Quality等级SetQualityLevel(recommendedQuality);// 可选:打印日志,方便调试Debug.Log($"设备性能检测完成,当前Quality等级:{QualitySettings.names[QualitySettings.GetQualityLevel()]}");Debug.Log($"当前分辨率缩放比例:{QualitySettings.resolutionScalingFixedDPIFactor}");}/// <summary>/// 检测设备性能,返回推荐的Quality等级名称(High/Medium/Low)/// </summary>privatestringDetectDevicePerformance(){// 核心检测维度(可根据项目需求调整权重)// 维度1:GPU内存(最核心的性能指标,单位:MB)intgpuMemory=SystemInfo.graphicsMemorySize;// 维度2:处理器核心数intcpuCores=SystemInfo.processorCount;// 维度3:设备是否为移动平台(移动端默认降一档)boolisMobile=Application.isMobilePlatform;// 检测逻辑(可根据项目需求自定义)if(isMobile){// 移动端分级if(gpuMemory>=8192)// 8G及以上GPU内存(高端机:骁龙8Gen3、A17等)return"High";elseif(gpuMemory>=4096)// 4G~8G(中端机:骁龙7+ Gen2、天玑8200等)return"Medium";else// 4G以下(低端机)return"Low";}else{// PC/主机分级if(gpuMemory>=16384)// 16G及以上GPU内存(高端显卡:RTX4070、RX7800XT等)return"High";elseif(gpuMemory>=8192)// 8G~16G(中端显卡:RTX3060、RX6600等)return"Medium";else// 8G以下(低配PC)return"Low";}}/// <summary>/// 切换到指定的Quality等级/// </summary>privatevoidSetQualityLevel(stringqualityName){// 遍历所有Quality等级,找到匹配的名称for(inti=0;i<QualitySettings.names.Length;i++){if(QualitySettings.names[i]==qualityName){QualitySettings.SetQualityLevel(i,true);// true=立即应用break;}}// 兜底:如果没找到匹配的等级,默认设为Mediumif(QualitySettings.names[QualitySettings.GetQualityLevel()]!=qualityName){QualitySettings.SetQualityLevel(QualitySettings.names.Length-2,true);Debug.LogWarning($"未找到{qualityName}等级,默认切换为Medium");}}// 可选:给玩家手动切换等级的接口(比如设置界面的按钮调用)publicvoidManualSwitchQuality(stringqualityName){SetQualityLevel(qualityName);}}