Unity设置Canvas按屏幕尺寸缩放时Text组件分辨率变化尺寸异常问题
问题根因
你场景中的文本尺寸随分辨率异常变化,是UGUI的动态字号适配逻辑和Canvas Scaler的全局缩放逻辑叠加导致的,准星、血条属于图片类UI,不受字体渲染逻辑影响,因此适配效果正常。
修复步骤
- 选中所有名字标识的Text组件,取消勾选
Best Fit(动态适配字号)选项,手动设置固定字号即可。动态字号会根据当前渲染分辨率自动调整字号大小,叠加Canvas的分辨率缩放后,就会出现4K下字号偏大、低分辨率下字号偏小的问题。 - 检查Canvas上的Canvas Scaler组件参数:确认
Reference Resolution设置为你开发时使用的基准分辨率(例如1920*1080),Screen Match Mode选择Match Width Or Height,根据你的适配需求设置匹配宽度/高度/宽高各占0.5,保证全局Canvas缩放倍率计算逻辑统一。 - 如果你使用的是Text Mesh Pro组件代替原生UGUI Text,需要关闭组件的
Auto Size选项,设置固定字号,同时确认TMP全局设置中的字体默认DPI和开发环境的系统DPI一致。 - 修复完成后,在Unity编辑器的Game视图切换不同分辨率测试,确认文本和准星、血条的相对大小在不同分辨率下保持一致即可。
内容的提问来源于stack exchange,提问作者Rararat
相关产品推荐
相关产品推荐

