Hoe de schermresolutie in Unity Game te veranderen

Het wijzigen van de schermresolutie binnen een Unity-game nadat deze is gebouwd, is een handige functie om de gebruikerservaring en compatibiliteit op verschillende apparaten te verbeteren. Unity biedt methoden om de schermresolutie tijdens runtime dynamisch aan te passen. In deze tutorial begeleiden we je door het proces van het wijzigen van de schermresolutie in je Unity-game en het verkrijgen van beschikbare schermresoluties.

Schermresolutie wijzigen tijdens runtime

Unity biedt een eenvoudige API voor het wijzigen van de schermresolutie tijdens het spelen. U kunt het volgende codefragment gebruiken om de schermresolutie te wijzigen:

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

Om deze methode aan te roepen en de resolutie te wijzigen, kun je het script 'ResolutionManager' bijvoegen aan een GameObject in je scène en de methode 'ChangeResolution' aanroepen met de gewenste breedte en hoogte en parameters voor de modus Volledig scherm.

Beschikbare schermresoluties verkrijgen

Voordat spelers de schermresolutie kunnen wijzigen, is het nuttig om hen een lijst met beschikbare resoluties te geven. Met de volgende code kunt u de beschikbare schermresoluties opvragen:

using UnityEngine;

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

Je kunt deze methode vervolgens gebruiken om een ​​vervolgkeuzemenu in te vullen of een UI-element weer te geven in het instellingenmenu van je game, zodat spelers de gewenste resolutie kunnen kiezen.

'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);
    }
}
  • Voeg het 'ResolutionUI'-script toe aan een GameObject dat een UI-dropdown-element bevat ('Dropdown'-component). Wijs vervolgens de vervolgkeuzelijst en 'ResolutionManager' scriptverwijzingen toe in de Unity Editor.

Conclusie

Door deze stappen te volgen en de meegeleverde codevoorbeelden op te nemen, kunt u naadloos wijzigingen in de dynamische schermresolutie implementeren in uw Unity-game, waardoor spelers flexibiliteit krijgen en hun algehele game-ervaring wordt verbeterd.

Voorgestelde artikelen
Hoe je een betere programmeur kunt worden in Unity
Timers implementeren in Unity
Een Pac-Man-geïnspireerd spel creëren in Unity
Hoe videobestanden in Unity af te spelen
Een verkeerssimulator maken in Unity
Camerabewegingseffect creëren in eenheid
Interactie met objecten in Unity Game