更改遊戲解析度

更新頁 :
頁面創建日期 :

驗證環境

窗戶
  • 窗戶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

運行並驗證

我想你可以看到,按兩下每個按鈕會改變解析度(+視窗大小)。