更改遊戲解析度
驗證環境
- 窗戶
-
- 窗戶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
。
運行並驗證
我想你可以看到,按兩下每個按鈕會改變解析度(+視窗大小)。