Comment changer la résolution de l'écran dans le jeu Unity

Changer la résolution de l'écran dans un jeu Unity après sa création est une fonctionnalité utile pour améliorer l'expérience utilisateur et la compatibilité entre différents appareils. Unity fournit des méthodes pour ajuster dynamiquement la résolution de l'écran pendant l'exécution. Dans ce didacticiel, nous vous guiderons tout au long du processus de modification de la résolution d'écran dans votre jeu Unity et d'obtention des résolutions d'écran disponibles.

Modification de la résolution de l'écran pendant l'exécution

Unity fournit une API simple pour modifier la résolution de l'écran pendant le jeu. Vous pouvez utiliser l'extrait de code suivant pour modifier la résolution de l'écran:

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

Pour appeler cette méthode et modifier la résolution, vous pouvez attacher le script 'ResolutionManager' à un GameObject dans votre scène et appeler la méthode 'ChangeResolution' avec les paramètres de largeur, de hauteur et de mode plein écran souhaités.

Obtenir les résolutions d'écran disponibles

Avant de permettre aux joueurs de modifier la résolution de l'écran, il est avantageux de leur fournir une liste des résolutions disponibles. Vous pouvez récupérer les résolutions d'écran disponibles à l'aide du code suivant:

using UnityEngine;

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

Vous pouvez ensuite utiliser cette méthode pour remplir un menu déroulant ou répertorier les éléments d'interface utilisateur dans le menu des paramètres de votre jeu, permettant aux joueurs de choisir leur résolution préférée.

'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);
    }
}
  • Attachez le script 'ResolutionUI' à un GameObject qui contient un élément déroulant d'interface utilisateur (composant 'Dropdown'). Ensuite, attribuez la liste déroulante et les références de script 'ResolutionManager' dans l'éditeur Unity.

Conclusion

En suivant ces étapes et en incorporant les exemples de code fournis, vous pouvez implémenter de manière transparente des changements dynamiques de résolution d'écran dans votre jeu Unity, offrant ainsi aux joueurs une flexibilité et améliorant leur expérience de jeu globale.

Articles suggérés
Interagir avec des objets dans le jeu Unity
Comment faire en sorte qu'un objet suive le curseur de la souris dans Unity
Comment ajouter un effet de lunette de sniper dans Unity
Comment suspendre le jeu dans Unity
Une introduction à GUILayout dans Unity
Implémentation de minuteries dans Unity
Création d'un GrabPack dans Unity inspiré de Poppy Playtime