[C#]Changer résolution et plein écran en redémarrant le jeu

Cette section est destinée aux scripts partagés par la communauté. Chaque post est destiné à un script. Suivez bien les recommandations.
Triss
Messages : 6
Inscription : 19 Sep 2013 17:19

[C#]Changer résolution et plein écran en redémarrant le jeu

Message par Triss » 03 Oct 2015 14:30

Bonjour,
Le changement de résolution en mode full screen pour Unity 5.2 est très capricieux sur Windows, je vous propose donc cette coroutine qui permet de redémarrer le jeu tout en changeant la résolution et le mode fenêtré/plein écran. Cela fonctionne avec le player en mode D3D11 fullscreen exclusive et le launcher désactivé.
Pour plus de détail sur ma démarche et en quoi le changement de résolution marche mal je vous invite à regarder ma question sur Unity answers :
http://answers.unity3d.com/questions/10 ... nda-1.html

Code : Tout sélectionner

    /// <summary>
    /// Redémarre et change la résolution
    /// </summary>
    /// <param name="execName">Nom de l'executable (ex : monjeu.exe )</param>
    /// <param name="width">largeur</param>
    /// <param name="height">hauteur</param>
    /// <param name="fullscreen">plein écran</param>
    public IEnumerator coroutResolution(string execName,int width, int height, bool fullscreen)
    {

        //Go to Windows mode because if you restart the game from full screen in exclusive mode it sometimes keep the same aspect ratio..
        // Set to the new resolution because it will kept this resolution when restarting
        Screen.SetResolution(width,height, false);
        yield return new WaitForEndOfFrame();

        //We get the executable location
        string[] s = System.Reflection.Assembly.GetExecutingAssembly().Location.Split('\\');
        StringBuilder location = new StringBuilder();
        for (int i = 0; i < s.Length - 3; i++)
        {
            location.Append(s[i] + '\\');
        }
        location.Append(execName);
        string exe = location.ToString();

        //Start the new process with only the fullscreen parameter, height and width being kept if the resolution launcher is disable
        System.Diagnostics.ProcessStartInfo start = new System.Diagnostics.ProcessStartInfo();
        start.Arguments = "-screen-fullscreen " + fullscreen;
        start.FileName = exe;
        System.Diagnostics.Process.Start(start);

        //Quit the app
        Application.Quit();
    }

Avatar de l’utilisateur
E3DStef
Administrateur
Administrateur
Messages : 1646
Inscription : 14 Juil 2013 18:30
Localisation : https://www.carte-des-membres.com/fr/Unity3D-France/

Re: [C#]Changer résolution et plein écran en redémarrant le jeu

Message par E3DStef » 04 Oct 2015 23:15

Cool, merci du partage...

Je testerai à l'occaz

A+
Le Savoir n'est Précieux que s'il est Partagé

Si besoin urgent de me contacter, faites moi un mail sur : franceunity3d@gmail.com

Répondre

Revenir vers « Scripts »