[RESOLU] ArgumentException: The Object (prefab) you want to instantiate is null. (pb dans un tuto)
Publié : 07 Août 2019 20:32
Bonjour, bonsoir à toutes et à tous !
A peine inscrite que je vous embête déjà avec un souci que je n'arrive pas à régler depuis 4 jours
J'ai vérifié sur le forum ainsi que sur le net en général si quelqu'un avait déjà rencontré ce problème mais à chaque fois la situation ainsi que le code utilisé sont trop différents et/ou la résolution ne fonctionne pas, rajoute d'autres problèmes.
Pour faire simple, j'ai commencé à suivre cette série de tutos sur YT afin de créer une Visual Novel « Test » et me faire la main dessus : https://www.youtube.com/playlist?list=P ... j5NpzKedU6
Tout se passe bien jusqu'à la 5ème vidéo « Character Management » où il est question de créer un prefab contenant le sprite d'un personnage (en un seul ou en multi layers, soit pour avoir une image complète du perso soit pour avoir le corps + l'expression à part) ainsi que trois scripts (Character Management, Character et characterTesting) permettant de définir le personnage (nom, body, expression notamment) et de le faire parler à l'endroit convenu (ici la SpeechBox) avec son nom qui apparait dans la SpeakerNameBox.
Lorsque je lance le jeu, l'erreur suivante apparait :
Le prefab et sa localisation :
La ligne de code qui pose problème (la 46), script Character :
(Je mets directement une image du code histoire de vous montrer les couleurs que j'obtiens, comment se fait-il qu'elles soient différentes de celles présentes dans le tuto par exemple ? )
Et la proposition de résolution de MVS :
(qui m'ajoute surtout + d'erreurs ensuite dont je me passerais bien ! )
Avec ou sans espace pour le Instantiate(); le problème demeure.
Ce que j'ai testé :
J'ai été revoir la vidéo précédente où il était question de créer les panels pour la SpeechBox et la SpeakerNameBox et comme une idiote, j'ai réalisé que je les avais crées dans des GameObjects vides (d'où le manque de Rect Transform que j'avais pu rencontrer plus tôt, mais un simple rajout de Rect Transform au GameObject avait réussi à pallier le problème).
A partir de là, j'ai réécrit progressivement les trois scripts de la 5ème vidéo tout en faisant bien attention cette fois-ci de créer le clone du prefab au bon moment avant de reprendre la programmation des scripts le clone ne s'est jamais créé et le problème du prefab null est resté constant
Le texte du personnage ne s'affiche juste pas quand je lance le jeu, la SpeechBox et la SpeakerNameBox se ferment correctement quand j'appuie sur espace MAIS pas toujours. Parfois je rencontre cette nouvelle erreur dans le script Character :
Et je terminerai avec ce que j'ai actuellement niveau scripts sur le Core et le Tester :
Voilà, navrée pour le pavé, j'espère vraiment avoir fourni tous les éléments possibles pour vous donner une idée du problème car vraiment je ne sais plus quoi faire de plus à moins de recommencer complètement tout le tuto depuis le début
Je suis aussi désolée si jamais la console répond très clairement à mes interrogations mais je ne comprends vraiment pas ce qu'elle m'indique sur ce coup-là ^^'
En tout cas, je vous remercie d'avance pour votre attention !
A peine inscrite que je vous embête déjà avec un souci que je n'arrive pas à régler depuis 4 jours
J'ai vérifié sur le forum ainsi que sur le net en général si quelqu'un avait déjà rencontré ce problème mais à chaque fois la situation ainsi que le code utilisé sont trop différents et/ou la résolution ne fonctionne pas, rajoute d'autres problèmes.
Pour faire simple, j'ai commencé à suivre cette série de tutos sur YT afin de créer une Visual Novel « Test » et me faire la main dessus : https://www.youtube.com/playlist?list=P ... j5NpzKedU6
Tout se passe bien jusqu'à la 5ème vidéo « Character Management » où il est question de créer un prefab contenant le sprite d'un personnage (en un seul ou en multi layers, soit pour avoir une image complète du perso soit pour avoir le corps + l'expression à part) ainsi que trois scripts (Character Management, Character et characterTesting) permettant de définir le personnage (nom, body, expression notamment) et de le faire parler à l'endroit convenu (ici la SpeechBox) avec son nom qui apparait dans la SpeakerNameBox.
Lorsque je lance le jeu, l'erreur suivante apparait :
J'ai cru comprendre que du coup Unity ne trouvait pas le chemin jusqu'au prefab, possiblement à cause d'une erreur de frappe ou d'un emplacement erroné, pourtant mon prefab est dans le dossier Resources > Prefabs (et même en le mettant directement dans le dossier « Resources » ça n'y change rien).ArgumentException: The Object you want to instantiate is null.
UnityEngine.Object.CheckNullArgument (System.Object arg, System.String message) (at C:/buildslave/unity/build/Runtime/Export/UnityEngineObject.bindings.cs:381)
UnityEngine.Object.Instantiate (UnityEngine.Object original, UnityEngine.Transform parent, Boolean instantiateInWorldSpace) (at C:/buildslave/unity/build/Runtime/Export/UnityEngineObject.bindings.cs:262)
UnityEngine.Object.Instantiate[GameObject] (UnityEngine.GameObject original, UnityEngine.Transform parent, Boolean worldPositionStays) (at C:/buildslave/unity/build/Runtime/Export/UnityEngineObject.bindings.cs:300)
UnityEngine.Object.Instantiate[GameObject] (UnityEngine.GameObject original, UnityEngine.Transform parent) (at C:/buildslave/unity/build/Runtime/Export/UnityEngineObject.bindings.cs:295)
Character..ctor (System.String _name, Boolean enableOnStart) (at Assets/Scripts/Core/Character.cs:46)
CharacterManager.CreateCharacter (System.String characterName, Boolean enableOnStart) (at Assets/Scripts/Core/CharacterManager.cs:60)
CharacterManager.GetCharacter (System.String characterName, Boolean createCharacterIfDoesNotExist, Boolean enableCreatedCharacterOnStart) (at Assets/Scripts/Core/CharacterManager.cs:47)
characterTesting.Start () (at Assets/TEST/scripts/characterTesting.cs:12)
Le prefab et sa localisation :
La ligne de code qui pose problème (la 46), script Character :
(Je mets directement une image du code histoire de vous montrer les couleurs que j'obtiens, comment se fait-il qu'elles soient différentes de celles présentes dans le tuto par exemple ? )
Et la proposition de résolution de MVS :
(qui m'ajoute surtout + d'erreurs ensuite dont je me passerais bien ! )
Avec ou sans espace pour le Instantiate(); le problème demeure.
Ce que j'ai testé :
J'ai été revoir la vidéo précédente où il était question de créer les panels pour la SpeechBox et la SpeakerNameBox et comme une idiote, j'ai réalisé que je les avais crées dans des GameObjects vides (d'où le manque de Rect Transform que j'avais pu rencontrer plus tôt, mais un simple rajout de Rect Transform au GameObject avait réussi à pallier le problème).
A partir de là, j'ai réécrit progressivement les trois scripts de la 5ème vidéo tout en faisant bien attention cette fois-ci de créer le clone du prefab au bon moment avant de reprendre la programmation des scripts le clone ne s'est jamais créé et le problème du prefab null est resté constant
Le texte du personnage ne s'affiche juste pas quand je lance le jeu, la SpeechBox et la SpeakerNameBox se ferment correctement quand j'appuie sur espace MAIS pas toujours. Parfois je rencontre cette nouvelle erreur dans le script Character :
NullReferenceException
Character.get_enabled () (at Assets/Scripts/Core/Character.cs:17)
Character.Say (System.String speech, Boolean add) (at Assets/Scripts/Core/Character.cs:27)
characterTesting.Update () (at Assets/TEST/scripts/characterTesting.cs:24)
Code : Tout sélectionner
public bool enabled {get{ return root.gameObject.activeInHierarchy;} set{ root.gameObject.SetActive (value);}}
Voilà, navrée pour le pavé, j'espère vraiment avoir fourni tous les éléments possibles pour vous donner une idée du problème car vraiment je ne sais plus quoi faire de plus à moins de recommencer complètement tout le tuto depuis le début
Je suis aussi désolée si jamais la console répond très clairement à mes interrogations mais je ne comprends vraiment pas ce qu'elle m'indique sur ce coup-là ^^'
En tout cas, je vous remercie d'avance pour votre attention !