Script UI changement de scène qui ne fonctionne pas

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Helo405
Messages : 16
Inscription : 31 Déc 2021 17:45

Script UI changement de scène qui ne fonctionne pas

Message par Helo405 » 02 Jan 2022 14:08

Bonjour à tous,

Je débute sur Unity et je n'arrive pas à faire fonctionner mon script pour le changement de scènes. J'ai créé un UI avec des buttons correspondant à mes différentes scènes. (Les noms comme Forêt_3 sont les noms de mes scènes enregistrées dans le build settings...Je sais que normalement il faut éviter les accents mais j'avais oublié lors de la conception de ma scène). Pour mon script, Unity m'indique une erreur concernant la "public class" où switch scenes n'existe pas (c'est le nom de mon script). Auriez vous une idée de l'erreur que j'ai pu faire?

Merci par avance!

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class SwitchScenes
{

public class SceneManagementMain : SwitchScenes 
{
    public string Forêt_3;
    public string Montagne_7;
    public string Plage3;
    public string Cabinet;

    public void LancementForet()
    {
        SceneManager.LoadScene(Forêt_3);
    }

    public void LancementMontagne()
    {
        SceneManager.LoadScene(Montagne_7);
    }

    public void LancementPlage()
    {
        SceneManager.LoadScene(Plage3);
    }

    public void LancementCabinet()
    {
        SceneManager.LoadScene(Cabinet);
    }
}

}

Dernière édition par Helo405 le 02 Jan 2022 17:20, édité 2 fois.

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

Re: Script UI changement de scène qui ne fonctionne pas

Message par Max » 02 Jan 2022 14:38

Bonjour,
Helo405 a écrit :
02 Jan 2022 14:08
Pour mon script, Unity m'indique une erreur concernant la "public class" où switch scenes n'existe pas (c'est le nom de mon script). Auriez vous une idée de l'erreur que j'ai pu faire?
Là si je lis ton script, cela veut dire que ta classe SceneManagementMain dérive de la classe SwitchScene. Mais le fichier se nomme SwitchScene.cs. Pourquoi cette approche ?
Ton fichier SwitchScene.cs doit lister la classe SwitchScene et non la classe SceneManagementMain.
Tu devrais avoir plutôt donc quelque chose comme public class SwitchScene: MonoBehaviour, du moins si c'est destiné à être employé comme un Component.
Et oui, les accents ne t'attireront que des ennuis, prend l'habitude de les bannir de tes scripts.

PS: ne poste pas de screen de tes codes, poste les directement dans ton message, encadré par les balises dédiées (voir la Charte, lien dans ma signature)
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

Helo405
Messages : 16
Inscription : 31 Déc 2021 17:45

Re: Script UI changement de scène qui ne fonctionne pas

Message par Helo405 » 02 Jan 2022 17:16

Merci beaucoup pour votre réponse ! J'essaie cela dès que je peux. (je m'étais basé sur le script de mon professeur mais j'avais visiblement mal compris cette ligne de script)
J'avais une autre question est ce que si je change le nom de mes scènes (comme enlever le ^ de foret), que je les mets correctement dans le build settings et que je les change ensuite dans mon script est ce que fera bugger Unity? Mon professeur m'a dit que changer le nom des scènes une fois la scène montée n'était pas une bonne idée.

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

Re: Script UI changement de scène qui ne fonctionne pas

Message par Max » 02 Jan 2022 17:37

Helo405 a écrit :
02 Jan 2022 17:16
J'avais une autre question est ce que si je change le nom de mes scènes (comme enlever le ^ de foret), que je les mets correctement dans le build settings et que je les change ensuite dans mon script est ce que fera bugger Unity? Mon professeur m'a dit que changer le nom des scènes une fois la scène montée n'était pas une bonne idée.
Changer le nom des scènes est tout à fait possible. Mais effectivement il n'est pas conseillé, car si tu fais référence dans ton projet (dans certains scripts par exemple) à tes scènes par leur nom, ben si cela change en cours de route tu te doutes que cela va coincer quelque part, à moins d'être sûr de tout mettre à jour en suite au niveau projet.
Bref c'est une pratique qui est surtout source de problèmes et de bug, surtout quand on débute.
Après on peut faire référence aux scènes par le biais de leur Id, et non plus de leur nom.
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

Répondre

Revenir vers « Scripting »