Як змінити роздільну здатність екрана в грі 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, який містить спадний елемент інтерфейсу користувача (компонент «Dropdown»). Потім призначте спадне меню та посилання на сценарій 'ResolutionManager' у редакторі Unity.

Висновок

Дотримуючись цих кроків і включивши надані приклади коду, ви зможете легко впроваджувати динамічні зміни роздільної здатності екрана у своїй грі Unity, надаючи гравцям гнучкість і покращуючи їхній загальний досвід гри.

Рекомендовані статті
Unity Як створити шейдер
Як зробити так, щоб об’єкт слідував за курсором миші в Unity
Як додати ефект снайперського прицілу в Unity
Створення GrabPack в Unity за мотивами Poppy Playtime
Створення ефекту Bullet Time в Unity
Створення турельного контролера в Unity
Як відтворювати відеофайли в Unity