Hvordan endre skjermoppløsning i Unity Game

Å endre skjermoppløsningen i et Unity-spill etter at det er bygget, er en nyttig funksjon for å forbedre brukeropplevelsen og kompatibiliteten på tvers av forskjellige enheter. Unity gir metoder for dynamisk å justere skjermoppløsningen under kjøring. I denne opplæringen vil vi veilede deg gjennom prosessen med å endre skjermoppløsningen i Unity-spillet ditt og skaffe tilgjengelige skjermoppløsninger.

Endre skjermoppløsning under kjøretid

Unity gir en enkel API for å endre skjermoppløsning under spilling. Du kan bruke følgende kodebit for å endre skjermoppløsningen:

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

For å kalle denne metoden og endre oppløsningen, kan du feste 'ResolutionManager'-skriptet til et GameObject i scenen din og påkalle 'ChangeResolution'-metoden med ønsket bredde, høyde og fullskjermmodusparametere.

Få tilgjengelige skjermoppløsninger

Før du lar spillere endre skjermoppløsningen, er det fordelaktig å gi dem en liste over tilgjengelige oppløsninger. Du kan hente de tilgjengelige skjermoppløsningene ved å bruke følgende kode:

using UnityEngine;

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

Du kan deretter bruke denne metoden til å fylle ut en rullegardinmeny eller liste UI-element i spillets innstillingsmeny, slik at spillerne kan velge sin foretrukne oppløsning.

'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);
    }
}
  • Fest 'ResolutionUI'-skriptet til et GameObject som inneholder et UI-rullegardinelement ('Dropdown'-komponent). Deretter tilordner du rullegardinmenyen og 'ResolutionManager' skriptreferanser i Unity Editor.

Konklusjon

Ved å følge disse trinnene og inkludere kodeeksemplene som følger med, kan du sømløst implementere dynamiske skjermoppløsningsendringer i Unity-spillet ditt, noe som gir spillerne fleksibilitet og forbedrer deres generelle spillopplevelse.

Foreslåtte artikler
Hvordan legge til Sniper Scope Effect i Unity
Hvordan bli en bedre programmerer i Unity
Hvordan lage et objekt Følg musepekeren i Unity
Lag et Pac-Man-inspirert spill i Unity
Opprette en trafikksimulator i Unity
Samhandle med objekter i Unity Game
Implementering av tilpasset oppdateringshastighet i Unity