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

Unity中修改分辨率后相机偏移、物体不可见问题求助

Unity修改分辨率导致相机拉近、物体不可见的解决方案

针对修改分辨率后相机视角拉近、场景物体大量不可见且全场景存在该问题的情况,排除Canvas与Sprite设置问题后,可从以下方向排查解决:

1. 检查正交相机的Size适配(若使用正交相机)

正交相机的Orthographic Size直接决定可视范围,分辨率变化时若未动态适配,会导致显示区域缩小。可添加如下脚本实现自动适配:

using UnityEngine;

[RequireComponent(typeof(Camera))]
public class OrthoCameraResizer : MonoBehaviour
{
    // 设计时的基准分辨率
    public Vector2 referenceResolution = new Vector2(1920, 1080);
    private Camera _orthoCamera;

    void Start()
    {
        _orthoCamera = GetComponent<Camera>();
        AdjustCameraSize();
    }

    void AdjustCameraSize()
    {
        float heightRatio = Screen.height / referenceResolution.y;
        _orthoCamera.orthographicSize = referenceResolution.y / 2f * heightRatio;
    }

    // 窗口尺寸变化时重新适配
    void OnRectTransformDimensionsChange()
    {
        AdjustCameraSize();
    }
}

将脚本挂载到主相机上,运行后相机可视范围会随分辨率自动调整。

2. 调整项目分辨率适配设置

打开Edit > Project Settings > Player,在分辨率与展示面板中:

  • 将宽高比从固定宽高比改为匹配宽度或高度,并根据需求选择优先匹配方向(如优先匹配高度);
  • 尝试切换全屏模式为无边框窗口或窗口化,排查独占全屏模式下的适配冲突。

3. 排查全局分辨率适配脚本

搜索项目中调用Screen.SetResolution或监听Screen.resolutionChanged事件的脚本,检查是否存在强制锁定宽高比、修改相机FOV/Size的逻辑,这类脚本可能导致分辨率变化时画面强制裁剪。

4. 验证相机基础设置

  • 检查相机的近裁剪面与远裁剪面参数,确保场景物体处于视锥体范围内;
  • 确认相机的剔除遮罩未误隐藏场景物体所在层级。

补充截图说明

  • 错误尺寸画面:画面聚焦中心,仅显示局部场景,多数物体超出视野
  • 游戏正确尺寸:完整展示全部场景内容
  • Canvas设置:Canvas渲染模式为屏幕空间 - 覆盖,UI缩放模式为随屏幕尺寸缩放,参考分辨率1920x1080,匹配方式为匹配宽度或高度(匹配值0.5)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 08:30:05