Как изменить разрешение экрана в игре Unity

Изменение разрешения экрана в игре Unity после ее создания — полезная функция для улучшения пользовательского опыта и совместимости на различных устройствах. Unity предоставляет методы для динамической настройки разрешения экрана во время выполнения. В этом уроке мы покажем вам процесс изменения разрешения экрана в вашей игре Unity и получения доступных разрешений экрана.

Изменение разрешения экрана во время выполнения

Unity предоставляет простой API для изменения разрешения экрана во время игры. Вы можете использовать следующий фрагмент кода, чтобы изменить разрешение экрана:

using UnityEngine;

public class ResolutionManager : MonoBehaviour
{
    // Method to change screen resolution
    public void ChangeResolution(int width, int height, bool fullscreen)
    {
        Screen.SetResolution(width, height, fullscreen);
    }
}

Чтобы вызвать этот метод и изменить разрешение, вы можете присоединить скрипт 'ResolutionManager' к GameObject в вашей сцене и вызвать метод 'ChangeResolution' с желаемыми параметрами ширины, высоты и полноэкранного режима.

Получение доступных разрешений экрана

Прежде чем разрешить игрокам изменять разрешение экрана, полезно предоставить им список доступных разрешений. Вы можете получить доступные разрешения экрана, используя следующий код:

using UnityEngine;

public class ResolutionManager : MonoBehaviour
{
    // Method to get available screen resolutions
    public Resolution[] GetAvailableResolutions()
    {
        return Screen.resolutions;
    }
}

Затем вы можете использовать этот метод для заполнения раскрывающегося меню или элемента списка пользовательского интерфейса в меню настроек вашей игры, позволяя игрокам выбирать предпочтительное разрешение.

'ResolutionUI.cs'

using UnityEngine;
using UnityEngine.UI;

public class ResolutionUI : MonoBehaviour
{
    public Dropdown resolutionDropdown;
    public ResolutionManager resolutionManager;

    void Start()
    {
        // Populate dropdown with available resolutions
        Resolution[] resolutions = resolutionManager.GetAvailableResolutions();
        resolutionDropdown.ClearOptions();
        
        List<string> options = new List<string>();
        foreach (Resolution res in resolutions)
        {
            options.Add(res.width + "x" + res.height);
        }
        resolutionDropdown.AddOptions(options);
    }

    // Method to handle resolution change from UI
    public void OnResolutionChanged(int index)
    {
        Resolution[] resolutions = resolutionManager.GetAvailableResolutions();
        Resolution selectedResolution = resolutions[index];
        resolutionManager.ChangeResolution(selectedResolution.width, selectedResolution.height, true);
    }
}
  • Прикрепите скрипт 'ResolutionUI' к GameObject, который содержит элемент раскрывающегося списка пользовательского интерфейса (компонент «Выпадающий список»). Затем назначьте раскрывающийся список и ссылки на скрипты 'ResolutionManager' в редакторе Unity.

Заключение

Выполнив эти шаги и включив предоставленные примеры кода, вы сможете легко реализовать динамические изменения разрешения экрана в своей Unity игре, предоставив игрокам гибкость и улучшив общий игровой опыт.

Рекомендуемые статьи
Как добавить эффект снайперского прицела в Unity
Как создать шейдер
Реализация таймеров в Unity
Как заставить объект следовать за курсором мыши в Unity
Создание GrabPack в Unity, вдохновленное Poppy Playtime
Как воспроизводить видеофайлы в Unity
Создание пошаговых игр в Unity