更改游戏分辨率
验证环境
- 窗户
-
- 窗户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
。
运行并验证
我想你可以看到,单击每个按钮会改变分辨率(+窗口大小)。