[RESOLU][MY-AL] J'ai un problème avec le choix de résolution

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Répondre
MGameur
Messages : 28
Inscription : 22 Mars 2020 21:23

[RESOLU][MY-AL] J'ai un problème avec le choix de résolution

Message par MGameur » 24 Oct 2020 16:17

Bonjour j'ai fait un code pour choisir le résolution, la qualité graphique, et le plein écran

Code : Tout sélectionner

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class SelectResolution : MonoBehaviour
{
    public Dropdown dropdown;
    public int currentQuality;
    public Toggle toggle;
    public float currentFullScreen;
    Resolution[] resolutions;
    public Dropdown resolutionDropdown;

    void Awake()
    {
        currentQuality = PlayerPrefs.GetInt("Quality");
        dropdown.value = currentQuality;
        currentFullScreen = PlayerPrefs.GetFloat("FullScreen");
        if (currentFullScreen == 1)
        {
            toggle.GetComponent<Toggle>().isOn = true;
        }
        if (currentFullScreen == 0)
        {
            toggle.GetComponent<Toggle>().isOn = false;
        }
    }

    void Start()
    {

        resolutions = Screen.resolutions;

        resolutionDropdown.ClearOptions();

        List<string> options = new List<string>();

        int currentResolutionIndex = 0;
        for (int i = 0; i < resolutions.Length; i++)
        {
            string option = resolutions[i].width + " x " + resolutions[i].height;
            options.Add(option);

            if (resolutions[i].width == Screen.currentResolution.width && resolutions[i].height == Screen.currentResolution.height)
            {
                currentResolutionIndex = i;
            }
        }

        resolutionDropdown.AddOptions(options);
        resolutionDropdown.value = currentResolutionIndex;
        resolutionDropdown.RefreshShownValue();
    }

    public void SetResolution(int resolutionIndex)
    {
        Resolution resolution = resolutions[resolutionIndex];
        Screen.SetResolution(resolution.width, resolution.height, Screen.fullScreen);
    }

    public void SetQuality(int qualityIndex)
    {
        QualitySettings.SetQualityLevel(qualityIndex);
    }

    public void SetDropdouwn()
    {
        currentQuality = dropdown.value;
        PlayerPrefs.SetInt("Quality", currentQuality);
    }

    public void SetFullscreen(bool isFullscreen)
    {
        Screen.fullScreen = isFullscreen;
        if (isFullscreen == true)
        {
            currentFullScreen = 1;
            PlayerPrefs.SetFloat("FullScreen", currentFullScreen);
        }
        else
        {
            currentFullScreen = 0;
            PlayerPrefs.SetFloat("FullScreen", currentFullScreen);
        }
    }
}
La partie pour la Résolution et la suivante

Code : Tout sélectionner

 
 void Start()
    {

        resolutions = Screen.resolutions;

        resolutionDropdown.ClearOptions();

        List<string> options = new List<string>();

        int currentResolutionIndex = 0;
        for (int i = 0; i < resolutions.Length; i++)
        {
            string option = resolutions[i].width + " x " + resolutions[i].height;
            options.Add(option);

            if (resolutions[i].width == Screen.currentResolution.width && resolutions[i].height == Screen.currentResolution.height)
            {
                currentResolutionIndex = i;
            }
        }

        resolutionDropdown.AddOptions(options);
        resolutionDropdown.value = currentResolutionIndex;
        resolutionDropdown.RefreshShownValue();
    }

    public void SetResolution(int resolutionIndex)
    {
        Resolution resolution = resolutions[resolutionIndex];
        Screen.SetResolution(resolution.width, resolution.height, Screen.fullScreen);
    }
Mon problème est que une fois exporter, chaque résolution sont marquer 7 fois dans le dropdouwn, je voulait savoir si on pouvait corriger se problème (pour qu'ils s'affichent 1 fois chacun).

Merci d'avance pour votre réponse.

PS: les image c'est le dropdown. Si vous avez besoins d'autre photo dite le moi.
Pièces jointes
Capture.PNG
Capture.PNG (51.74 Kio) Consulté 3260 fois
Capture1.PNG
Capture1.PNG (13.85 Kio) Consulté 3260 fois
Capture2.PNG
Capture2.PNG (37.23 Kio) Consulté 3260 fois

Avatar de l’utilisateur
Max
Messages : 8772
Inscription : 30 Juil 2011 13:57
Contact :

Re: [MY-AL] J'ai un problème avec le choix de résolution

Message par Max » 24 Oct 2020 17:47

Bonjour,
MGameur a écrit :
24 Oct 2020 16:17
Mon problème est que une fois exporter, chaque résolution sont marquer 7 fois dans le dropdouwn, je voulait savoir si on pouvait corriger se problème (pour qu'ils s'affichent 1 fois chacun).
je ne comprends pas trop. Le screen de ton Dropdown montre une liste unique. Le code que tu fournis semble aller dans ce sens.
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

MGameur
Messages : 28
Inscription : 22 Mars 2020 21:23

Re: [MY-AL] J'ai un problème avec le choix de résolution

Message par MGameur » 24 Oct 2020 17:51

Voici ce qui se passe et il me le met 7 fois pour chaque résolution (de 800x600 jusqu'à 2715x1527)
PS: c'est un screen de la version exporter car dans l'éditeur il me le met 1 fois
Pièces jointes
Capture5.PNG
Capture5.PNG (74.46 Kio) Consulté 3245 fois

Avatar de l’utilisateur
Max
Messages : 8772
Inscription : 30 Juil 2011 13:57
Contact :

Re: [MY-AL] J'ai un problème avec le choix de résolution

Message par Max » 24 Oct 2020 18:06

si je regarde ton code, du peu que j'ai lu cela n'explique par cette redondance. Et en mode éditeur tu ne l'as pas ?
Ton script ne se trouve pas sur plusieurs GameObject des fois ?
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

MGameur
Messages : 28
Inscription : 22 Mars 2020 21:23

Re: [MY-AL] J'ai un problème avec le choix de résolution

Message par MGameur » 24 Oct 2020 18:13

Non il se trouve que dans le Canvas et il y a trois objet qui l'utilise (1 toggle et 2 dropdown mais c'est pour le SetResolution, SetQuality et SetFullscreen)

MGameur
Messages : 28
Inscription : 22 Mars 2020 21:23

Re: [MY-AL] J'ai un problème avec le choix de résolution

Message par MGameur » 24 Oct 2020 18:17

sinon dm moi discord (MGameur#6918) et je te montre tout

Avatar de l’utilisateur
Max
Messages : 8772
Inscription : 30 Juil 2011 13:57
Contact :

Re: [MY-AL] J'ai un problème avec le choix de résolution

Message par Max » 24 Oct 2020 18:24

MGameur a écrit :
24 Oct 2020 18:13
Non il se trouve que dans le Canvas et il y a trois objets qui l'utilise (1 toggle et 2 dropdown mais c'est pour le SetResolution, SetQuality et SetFullscreen)
Tu veux dire que le script est sur 3 GO ? Si c'est le cas, il est normal que les info soient plusieurs fois répercutées.
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

MGameur
Messages : 28
Inscription : 22 Mars 2020 21:23

Re: [MY-AL] J'ai un problème avec le choix de résolution

Message par MGameur » 24 Oct 2020 18:28

Non ils utilise une partie différente du scripte qui na pas les même information et le script il est que dans la canvas, j'ai fait du copié coller de la vidéo de Brackeys (que la partie résolution (https://www.youtube.com/watch?v=YOaYQrN ... l=Brackeys))

Avatar de l’utilisateur
Aelhan
Messages : 124
Inscription : 11 Déc 2019 23:00

Re: [MY-AL] J'ai un problème avec le choix de résolution

Message par Aelhan » 25 Oct 2020 08:04

Bonjour,

Je te propose une vidéo de TutoUnityFR dans laquelle il traite cette redondance (je ne me souviens plus s'il explique la raison de la redondance, mais il fait en sorte de la supprimer) : https://www.youtube.com/watch?v=4LkiX_XioXg&t=14s

Bon dimanche et bon dev
Celui qui pose une question risque cinq minutes d'avoir l'air bête.
Celui qui ne pose pas de question restera bête toute sa vie.

MGameur
Messages : 28
Inscription : 22 Mars 2020 21:23

Re: [RESOLU][MY-AL] J'ai un problème avec le choix de résolution

Message par MGameur » 25 Oct 2020 12:59

Merci beaucoup il failler juste mettre

Code : Tout sélectionner

resolutions = Screen.resolutions.Select(resolution => new Resolution { width = resolution.width, height = resolution.height }).Distinct().ToArray();
au lieu de

Code : Tout sélectionner

resolutions = Screen.resolutions;

Répondre

Revenir vers « (C#) CSharp »