So ändern Sie die Bildschirmauflösung im Unity-Spiel

Das Ändern der Bildschirmauflösung innerhalb eines Unity-Spiels nach dessen Erstellung ist eine nützliche Funktion zur Verbesserung des Benutzererlebnisses und der Kompatibilität zwischen verschiedenen Geräten. Unity bietet Methoden zum dynamischen Anpassen der Bildschirmauflösung während der Laufzeit. In diesem Tutorial führen wir Sie durch den Prozess zum Ändern der Bildschirmauflösung in Ihrem Unity-Spiel und zum Abrufen verfügbarer Bildschirmauflösungen.

Bildschirmauflösung während der Laufzeit ändern

Unity Bietet eine unkomplizierte API zum Ändern der Bildschirmauflösung während des Spiels. Sie können den folgenden Codeausschnitt verwenden, um die Bildschirmauflösung zu ändern:

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

Um diese Methode aufzurufen und die Auflösung zu ändern, können Sie das Skript 'ResolutionManager' an ein GameObject in Ihrer Szene anhängen und die Methode 'ChangeResolution' mit den gewünschten Parametern für Breite, Höhe und Vollbildmodus aufrufen.

Verfügbare Bildschirmauflösungen abrufen

Bevor Sie Spielern erlauben, die Bildschirmauflösung zu ändern, ist es sinnvoll, ihnen eine Liste der verfügbaren Auflösungen zur Verfügung zu stellen. Die verfügbaren Bildschirmauflösungen können Sie mit dem folgenden Code abrufen:

using UnityEngine;

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

Mit dieser Methode können Sie dann ein Dropdown-Menü füllen oder ein UI-Element im Einstellungsmenü Ihres Spiels auflisten, sodass Spieler ihre bevorzugte Auflösung auswählen können.

'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);
    }
}
  • Hängen Sie das 'ResolutionUI'-Skript an ein GameObject an, das ein UI-Dropdown-Element ('Dropdown'-Komponente) enthält. Weisen Sie dann die Dropdown- und 'ResolutionManager'-Skriptreferenzen im Unity-Editor zu.

Abschluss

Indem Sie diese Schritte befolgen und die bereitgestellten Codebeispiele integrieren, können Sie dynamische Änderungen der Bildschirmauflösung nahtlos in Ihr Unity-Spiel implementieren, um den Spielern Flexibilität zu bieten und ihr gesamtes Spielerlebnis zu verbessern.