更改游戏分辨率

更新页 :
页面创建日期 :

验证环境

窗户
  • 窗户11
Unity 编辑器
  • 2021.3.1f1
输入系统包
  • 1.3.0

此提示的先决条件

以下设置已预先配置为解释这些提示的先决条件。

在游戏开始时指定分辨率

您可以在游戏开始时从项目设置中设置分辨率。 但是,存在窗口模式假设等限制,因此,如果要可靠地设置它,我认为后面描述的程序的设置更可靠。

为此,请从菜单中选择“编辑”->“项目设置”。

从左侧菜单中选择“播放器”。

在底部,您可以找到每个环境的设置。 例如,如果最左侧的显示图标是 Windows 等 PC 环境的设置。

“分辨率和显示”在里面折叠,因此单击以将其展开,然后从分辨率组中的“全屏模式”中选择“窗口化”。

然后将显示“默认屏幕宽度”和“默认屏幕高度”,因此您可以在此处设置分辨率(=屏幕尺寸)。 此设置只能在窗口模式下设置。

其他环境中也有设置,因此请检查它们。 下图显示了 WebGL 中的配置。 分辨率 = 画布的大小。

运行并验证

即使我在 Unity 编辑器中运行它,我也无法检查它是否正确,所以我将输出游戏并检查它。 有关详细说明,请参阅游戏输出提示

确保它显示在指定的屏幕尺寸上。

但是,即使更改大小值,大小也可能不会更改。 这是因为游戏本身会记住之前的分辨率。 如果要确保显示器处于指定的分辨率,则使用下面描述的程序进行更改会更可靠。

从程序更改分辨率

在这里,我想准备以下屏幕并以编程方式对其进行控制,以便在单击每个按钮时分辨率发生变化。 有关如何处理 UI 和按钮的详细信息,请参阅 UI 提示

单击每个按钮时会发生什么情况:

using UnityEngine;

public class ButtonEvent : MonoBehaviour
{
  public void OnClick_960x540()
  {
    // 横幅 pixel、縦幅 pixel、ウィンドウモード、リフレッシュレート(Hz) を指定
    // ウィンドウモードの場合、ウィンドウサイズも変わる
    Screen.SetResolution(960, 540, FullScreenMode.Windowed, 60);
  }
  public void OnClick_1280x720()
  {
    // 横幅 pixel、縦幅 pixel、ウィンドウモード、リフレッシュレート(Hz) を指定
    // ウィンドウモードの場合、ウィンドウサイズも変わる
    Screen.SetResolution(1280, 720, FullScreenMode.Windowed, 60);
  }
  public void OnClick_1600x900()
  {
    // 横幅 pixel、縦幅 pixel、ウィンドウモード、リフレッシュレート(Hz) を指定
    // ウィンドウモードの場合、ウィンドウサイズも変わる
    Screen.SetResolution(1600, 900, FullScreenMode.Windowed, 60);
  }
}

对于底部的两种方法,唯一的区别是分辨率数。

Screen.SetResolution 您可以通过在方法参数中分别指定“分辨率宽度 (px)”、“分辨率高度 (px)”、“全屏模式”和“刷新率 (Hz)”来更改分辨率。

这一次,它将在窗口模式下进行设置,但在全屏模式下可以以相同的方式进行设置。

如果你想在游戏开始时强制设置它,我认为你可以用一个脚本方法处理它,该脚本方法附加到第一个场景中的某个对象 awake

运行并验证

我想你可以看到,单击每个按钮会改变分辨率(+窗口大小)。