You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中如何实现不同屏幕尺寸下的UI自适应适配?

问题

我希望游戏中的按钮和UI能够随游戏运行的屏幕尺寸自动调整大小,请问该如何实现这一效果?
以下是我当前Canvas上的配置情况:
Canvas

回答

要实现UGUI全分辨率自适应,按下面的步骤配置就能覆盖90%以上的使用场景,不需要写复杂的适配逻辑:

1. 调整Canvas Scaler组件参数

你的Canvas上默认挂载了Canvas Scaler组件,按如下规则修改配置:

  • 将UI Scale Mode从默认的Constant Pixel Size切换为Scale With Screen Size
  • Reference Resolution填写你制作UI时参照的基准分辨率:横屏项目如果是按1920×1080设计就填X=1920、Y=1080,竖屏手游按1080×1920设计就填对应数值
  • Screen Match Mode选择Match Width Or Height,下方Match滑块根据项目类型调整:
    • 横屏项目拉到0(匹配宽度):所有屏幕下UI宽度始终和参考分辨率一致,上下区域自动适配,不会出现左右裁切
    • 竖屏项目拉到1(匹配高度):所有屏幕下UI高度始终和参考分辨率一致,左右区域自动适配,不会出现上下裁切
    • 不想留适配黑边就拉到0.5,UI会等比缩放适配当前屏幕宽高
  • 新手不要随便选Expand/Shrink模式,这俩的适配逻辑容易出现UI过大/过小的问题,等摸透适配规则后再按需使用。

2. 给单个UI元素设置对应锚点

只改Canvas Scaler不够,单个UI元素锚点设错依然会错位飘移,按元素的功能位置设置锚点即可:

  • 全屏背景、底部操作栏这类需要贴边拉伸的元素:按住Alt键,点锚点预设里的「拉伸铺满父项」选项,锚点会自动对齐父节点四个角,元素会随屏幕尺寸自动拉伸
  • 角落固定按钮(比如左上角返回键、右上角设置键):锚点锚到对应角落,比如返回键锚点设为左上角,之后不管屏幕尺寸怎么变,按钮和左上角的相对距离永远固定
  • 居中弹窗、主操作按钮:锚点设为屏幕中心,保证永远显示在屏幕中间位置
  • 按钮组、信息列表这类排列类UI,别手动拖拽定位,添加Horizontal Layout Group/Vertical Layout Group/Grid Layout Group组件,让组件自动计算位置排列,适配性远好于手动排布。

补充适配技巧

  • 尽量不要给UI元素写死固定宽高,能靠锚点、布局组件撑开尺寸就别写死像素值
  • 适配测试直接在编辑器Game视图切换不同分辨率预设,覆盖4:3老屏、16:9常规屏、21:9带鱼屏、移动端不同竖屏比例,看到错位直接调整对应元素的锚点即可
  • 如果需要对特殊比例屏幕做字号、位置微调,可以挂个简单脚本在启动时根据当前屏幕宽高比调整,示例代码:
using UnityEngine;
using UnityEngine.UI;

public class UISizeAdapter : MonoBehaviour
{
    private void Start()
    {
        // 以1920*1080的基准分辨率为例
        float standardAspect = 1920f / 1080f;
        float currentAspect = (float)Screen.width / Screen.height;
        
        // 超宽屏适当缩小文字字号避免内容溢出
        if (currentAspect > standardAspect)
        {
            Text targetText = GetComponent<Text>();
            if (targetText != null)
            {
                targetText.fontSize = Mathf.RoundToInt(targetText.fontSize * standardAspect / currentAspect);
            }
        }
    }
}

内容的提问来源于stack exchange,提问作者Jerry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 12:48:15