Screen.SetResolution
Declaration
public static void SetResolution(int width, int height, bool fullscreen);public static void SetResolution(int width, int height, FullScreenMode fullscreenMode);public static void SetResolution(int width, int height, FullScreenMode fullscreenMode, RefreshRate preferredRefreshRate);Описание
Переключается разрешение экрана и частота обновления, если поддерживается.
Используется разрешение width по height. Если не поддерживается соответствующее разрешение, устанавливается ближайшее.
Если параметр preferredRefreshRate указан, но не поддерживается соответствующая частота обновления, устанавливается самая высокая доступная частота обновления. Изменение частоты обновления поддерживается только при использовании эксклюзивного полноэкранного режима.
Android:
- Android 10 и старше: Параметр
fullscreenуправляет флагамиSYSTEM_UI_FLAG_IMMERSIVE_STICKY,SYSTEM_UI_FLAG_LAYOUT_STABLE,SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN,SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION,SYSTEM_UI_FLAG_HIDE_NAVIGATIONиSYSTEM_UI_FLAG_FULLSCREENс помощью метода View.setSystemUiVisibility. - Android 11 и более поздние версии: Когда
fullscreenимеет значение true, вызываетсяWindowInsetsController.hide(WindowInsets.Type.navigationBars()), а когдаfullscreenимеет значение false, вызываетсяWindowInsetsController.show(WindowInsets.Type.navigationBars()). Дополнительную информацию см. в документации Android по WindowInsetsController.
Детали использования:
- Чтобы установить определенный полноэкранный режим на платформе рабочего стола, используйте метод overload, который принимает параметр
FullScreenMode. Эксклюзивный полноэкранный режим поддерживается только на автономном проигрывателе Windows. - Если вы используете мульти-монитор, вы можете использовать только
Screen.SetResolutionдля установки разрешения основного экрана. - Изменение разрешения применяется в конце текущего кадра, а не немедленно.
- В Редакторе это влияет только на разрешение представления Game.
Примеры:
using UnityEngine;
public class ExampleScript : MonoBehaviour { void Start() { // Switch to 640 x 480 full-screen Screen.SetResolution(640, 480, true); } }
using UnityEngine;
public class ExampleScript : MonoBehaviour { void Start() { // Switch to 640 x 480 full-screen at 60 hz Screen.SetResolution(640, 480, FullScreenMode.ExclusiveFullScreen, new RefreshRate() { numerator = 60, denominator = 1 }); } }
using UnityEngine;
public class ExampleScript : MonoBehaviour { void Start() { // Switch to 800 x 600 windowed Screen.SetResolution(800, 600, false); } }
Дополнительные ресурсы: resolutions свойства.