Page 1 sur 1

Bonton ne fonctionne pas dans ma première scène

Publié : 12 Mars 2023 12:09
par hockarion
Bonjour,
J’ai besoin de votre aide. Je suis entrain de crée un jeu avec UNITY et mes boutons fonctionne bien dans ma scène MainMenu (la deuxième) mais pas dans ma scène GameScene (la première), j’ai même créé une troisième scène et les boutons fonctionne bien
Si dessous l’inspector de mon bouton
1.png
1.png (46.44 Kio) Consulté 1361 fois
Si dessous l’inspector de ma Main Camera :
2.png
2.png (56.9 Kio) Consulté 1361 fois
Si dessous le script joint a ma Main Camera
3.png
3.png (25.51 Kio) Consulté 1361 fois
Pouvez-vous m’aider a résoudre mon problème ?
Merci d’avance

Re: Bonton ne fonctionne pas dans ma première scène

Publié : 12 Mars 2023 12:50
par jmhoubre
Bonjour,

as-tu bien mis ta scène à charger dans les Build Settings / Scenes in Build ?

Dans ton script, ajoute un debug. Que te dis la console ?

Code : Tout sélectionner

public void LoadScene (string name)
{
	Debug.Log("Chargement de la scène.");
	SceneManager.LoadScene(name);
}
Remarque : quand tu publies du code, merci de ne pas faire une copie d'écran, mais mettre tout le code entre les balises code et /code (5ème bouton de la barre de mise en forme), comme c'est demandé dans la charte que tu es sensé lire. Cela facilite le travail de tout le monde.

Re: Bonton ne fonctionne pas dans ma première scène

Publié : 14 Mars 2023 12:30
par hockarion
Bonjour jmhoubre ,
Merci pour ta réponse :
J’ai regardé dans Build Settings/ Scène in Build et c’est bien charger.
Jai ajouté le débug a mon script, il n’y a pas d’erreur qui ressort
Par contre j’ai continué a investigué de mon coté et j’ai découvert que mon problème venait d’un notre script .
Le message d’érreur qui mai ressortie par Unity est :
NullReferenceException : Object reference not set to an instance of an object MaterielGrid.Start() (at Assets/Scripts/MaterielGrid C.S : 23)
La ligne 23 du script MaterielGrid est :

Code : Tout sélectionner

  SetGridNumber(GameSettings.Instance.GetGameMode());
La partie du code complet est :

Code : Tout sélectionner

void Start()
    {
        if (grid_square.GetComponent<GridSquare>() == null)
            Debug.LogError("This Game Object need to have GridSquare script attachid ! ");

        CreateGrid();
        SetGridNumber(GameSettings.Instance.GetGameMode());
    }
Avez-vous une idée d'où viens le problème de mon bouton ?
Merci d’avance

Re: Bonton ne fonctionne pas dans ma première scène

Publié : 14 Mars 2023 13:27
par boubouk50
hockarion a écrit :
14 Mars 2023 12:30
NullReferenceException : Object reference not set to an instance of an object MaterielGrid.Start() (at Assets/Scripts/MaterielGrid C.S : 23)
La ligne 23 du script MaterielGrid est :

Code : Tout sélectionner

  SetGridNumber(GameSettings.Instance.GetGameMode());
NullReferenceException : Object reference not set to an instance of an object -> Tu as une variable qui n'est pas référencée, donc null, et tu tentes d'accéder à une de ses propriétés, ce qui est pas possible puisqu'elle n'existe pas.
A la ligne 23 : GameSettings.Instance.GetGameMode()
GameSettings est null donc tu ne peux pas lancer la fonction GetGameMode () depuis cette référence. Il faut la renseigner. Soit par code soit depuis l'inspecteur.

Re: Bonton ne fonctionne pas dans ma première scène

Publié : 14 Mars 2023 13:35
par jmhoubre
Bonjour,

en général, évite de publier des bouts de code : publie les scripts complètement. En effet, une erreur signalée par Unity à la ligne XXX peut très venir de la ligne YYY, voir d'un autre script. Visiblement, le problème vient de GameSettings, dont le code n'est pas publié.

Pour l'erreur NullReferenceException, qui est probablement une des plus communes, je te conseille d'appliquer la méthode décrite par Code Monkey dans sa vidéo How to Fix NullReferenceException in C#! (4 Step Process). Ce quart d'heure te sera très utile et te fera gagner beaucoup de temps.

Re: Bonton ne fonctionne pas dans ma première scène

Publié : 18 Mars 2023 12:00
par hockarion
Bonjour,

merci a vous 2 pour votre aide .

En effet il y avait plusieurs erreur dans divers script c'est pour cela que le bouton ne fonctionnais pas.

Merci encore a vous