web-dev-qa-db-fra.com

Impossible d'ajouter un composant de script car la classe de script est introuvable?

Hier, j'ai mis à jour l'unité de unit5 à 2018.2.2f1. Les scripts Unity ne se chargent pas après la mise à jour 2018.2.2f1.

Une fois que j'essaie de jouer la scène, les scripts ne sont pas chargés et je ne peux plus ajouter le script, cela donne cette erreur:

Impossible d'ajouter le composant de script "CubeScript" car la classe de script est introuvable. Assurez-vous qu'il n'y a aucune erreur de compilation et que le nom de fichier et le nom de classe correspondent.

Error

6
Youssof H.

Si vous avez toujours l'ancienne copie du projet, mettez à niveau le projet Unity vers Unity 2017 d'abord puis vers 2018.2. 2f1 .

Voici les quelques raisons possibles pour lesquelles vous pouvez obtenir cette erreur (commandé très probablement)

1. Le nom du script ne correspond pas au nom de la classe.

Si le nom du script est appelé MyClass, le nom de la classe doit être MyClass. Cela est également sensible à la casse. Revérifiez pour vous assurer que ce n'est pas le problème. Pour vous assurer que ce n'est pas le problème, copiez le nom de la classe et collez-le comme nom de script pour vous assurer que ce n'est pas le problème.

Notez que si vous avez plusieurs classes dans un script, le nom de classe qui doit correspondre au nom du script est la classe qui dérive de MonoBehaviour.


2. Il y a une erreur dans votre script. Puisqu'il s'agit d'une mise à niveau, il est possible que vous utilisiez une API qui est maintenant obsolète et supprimée. Ouvrez votre script avec Visual Studio et voyez s'il y a une erreur, puis corrigez-la. Il y a généralement une ligne rouge sous un code qui indique qu'il y a une erreur.


. Mauvaise importation avec l'importateur Unity et son script de mise à niveau automatique.

Choses à essayer:

A . La première chose à faire est de redémarrer l'éditeur Unity.

B . Faites un clic droit sur l'onglet Projet puis cliquez sur "Réimporter tout"

C . S'il y a toujours un problème, il ne reste plus qu'à supprimer le script problématique et à en créer un nouveau. Il existe un moyen plus simple de le faire si le script est associé à de nombreux GameObjects de votre scène.

A . Ouvrez le script, copiez son contenu dans le bloc-notes.

B . Dans l'éditeur et sur l'onglet Projet , cliquez avec le bouton droit sur le script "CubeScript", sélectionnez "Rechercher des références dans la scène" .

C . Unity n'affichera désormais que tous les GameObjects auxquels ce script est attaché. Supprimez l'ancien script. Créez-en un nouveau puis copiez le contenu du bloc-notes dans ce nouveau script. Maintenant, vous pouvez simplement faire glisser le nouveau script vers tous les GameObject filtrés de la scène. Faites cela pour chaque script effectué. Il s'agit d'un travail manuel, mais devrait résoudre vos problèmes une fois terminé.

13
Programmer

Une dernière chose qui pourrait aider en dehors des autres réponses

  • Faites de la classe qui hérite du comportement MonoBehaviour la première classe du fichier. Il a résolu ce problème pour moi.
0
Jeevan MB