Cum să schimbați rezoluția ecranului în Unity Game

Schimbarea rezoluției ecranului într-un joc Unity după ce acesta a fost creat este o caracteristică utilă pentru îmbunătățirea experienței utilizatorului și a compatibilității pe diferite dispozitive. Unity oferă metode de ajustare dinamică a rezoluției ecranului în timpul rulării. În acest tutorial, vă vom ghida prin procesul de modificare a rezoluției ecranului în jocul dvs. Unity și de obținere a rezoluțiilor de ecran disponibile.

Modificarea rezoluției ecranului în timpul rulării

Unity oferă un API simplu pentru modificarea rezoluției ecranului în timpul jocului. Puteți folosi următorul fragment de cod pentru a modifica rezoluția ecranului:

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);
    }
}

Pentru a apela această metodă și a modifica rezoluția, puteți atașa scriptul 'ResolutionManager' la un GameObject din scena dvs. și invocați metoda 'ChangeResolution' cu parametrii de lățime, înălțime și modul ecran complet doriti.

Obținerea rezoluțiilor de ecran disponibile

Înainte de a permite jucătorilor să schimbe rezoluția ecranului, este benefic să le oferiți o listă de rezoluții disponibile. Puteți prelua rezoluțiile de ecran disponibile folosind următorul cod:

using UnityEngine;

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

Puteți utiliza apoi această metodă pentru a completa un meniu derulant sau pentru a enumera un element UI în meniul de setări al jocului dvs., permițând jucătorilor să aleagă rezoluția preferată.

'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);
    }
}
  • Atașați scriptul 'ResolutionUI' la un GameObject care conține un element dropdown UI (componenta „Dropdown”). Apoi, atribuiți meniul derulant și referințele de script 'ResolutionManager' în Editorul Unity.

Concluzie

Urmând acești pași și încorporând exemplele de cod furnizate, puteți implementa fără probleme modificări dinamice ale rezoluției ecranului în jocul dvs. Unity, oferind jucătorilor flexibilitate și îmbunătățind experiența lor generală de joc.