5
votes

Unity: "Le script référencé (inconnu) sur ce comportement est manquant!"

Parfois, lorsque je démarre mon jeu, je reçois des avertissements inutiles. Je ne sais pas d'où ils viennent et je n'ai pas d'objets qui adressent un script qui n'existe pas. Comment puis-je supprimer ou corriger ces messages?

< retourInspecteur :

Quand je clique droit sur l'icône du fichier dans l'inspecteur, j'obtiens deux options possibles. Les deux ne fonctionnent pas ou lorsque j'essaye de cliquer dessus, rien ne se passe.

Menu contextuel de l'inspecteur:


0 commentaires

6 Réponses :


0
votes

Cela se produit lorsque vous avez changé le nom de classe C # d'un script, ou que vous avez changé le nom de fichier du script dans le projet, afin qu'il ne corresponde pas. Dans votre cas, le problème vient du script que vous avez mis en évidence dans la capture d'écran de votre Inspecteur.


7 commentaires

Non, dans mon cas, chaque nom de classe correspond au nom du fichier auquel il appartient.


Quel fichier avez-vous mis en surbrillance lorsque vous avez pris votre capture d'écran de l'inspecteur?


J'ai cliqué sur l'avertissement.


Je veux dire dans la vue Projet d'Unity. Quel fichier a été sélectionné lorsque vous avez pris cette capture d'écran de l'inspecteur?


Je n'ai jamais été dans la vue Projet. Comme je l'ai dit, je cliquais simplement sur l'avertissement de la console, puis il est apparu dans l'inspecteur.


Vous devrez ouvrir votre vue Projet pour voir quel fichier est à l'origine de ce problème. Ouvrez la vue Projet, puis double-cliquez sur votre erreur, puis voyez quel fichier de script est mis en surbrillance dans la vue Projet.


Lorsque je clique sur l'avertissement, rien ne se passe dans la vue du projet



0
votes

Cela apparaît généralement lorsque vous affectez un script à un objet, puis supprimez le script de votre projet. Si vous êtes sûr qu'aucun objet de votre scène n'a ce script assigné, peut-être qu'un objet qui est instancié au moment de l'exécution le fait? Consultez également cette page , cela pourrait vous aider à en trouver la source. erreurs.


1 commentaires

J'ai essayé le script sur votre page liée, mais malheureusement, il n'a rien trouvé.



0
votes

Vous pouvez supprimer ce script inaccessible du panneau de l'inspecteur et le charger à nouveau en tant que composant. Vous pouvez donc utiliser votre script sans problème.


1 commentaires

Il n'y a pas d'option pour supprimer le script de l'inspecteur.



-1
votes

Si, ou quand, vous démarrez votre projet pour la première fois - vous déplacez et / ou renommez la scène par défaut d'origine qui était incluse dans le dossier "scènes", Unity lancera un nombre toujours croissant de ces fausses références jusqu'à ce que vous terminiez assis dans le parc en vous jetant des miettes de pain. Ils peuvent atteindre des milliers.

Voici comment y remédier:

  1. Allez dans "Fichier -> Paramètres de construction" et supprimez toutes les "Scènes de Build "puis quittez cette fenêtre.
  2. Trouvez cette scène renommée d'origine, double-cliquez dessus pour qu'elle soit actif, et allez dans "Fichier -> Enregistrer sous ..."
  3. Enregistrez cette scène en tant que nouvelle scène avec un nouveau nom. C'est crucial. N'écrasez pas simplement le fichier qui s'y trouve. Par exemple, si le courant le fichier est nommé "scene_battlefield", renommez-le en quelque chose comme "scene_battlefield_wwhat".
  4. Supprimez le nouveau fichier ("scene_battlefield_whatever") par un clic droit dessus dans le panneau "Actifs". Cependant, vous remarquerez que le nom en haut de l'écran indique toujours "scene_battlefield_wwhat".
  5. Revenez à "Fichier -> Enregistrer sous ..." et cliquez cette fois sur le fichier d'origine que vous aviez avant de le renommer et de l'écraser. Le nom en haut de l'écran changera comme prévu (pour "scene_battlefield").
  6. Revenez à "Fichier -> Paramètres de construction", ajoutez "scene_battlefield" (ou quel que soit son nom), et compilez le programme dans un dossier. Après le la construction est terminée, vous pouvez supprimer la compilation. Cette version intégrée de votre programme n'a pas d'importance.
  7. Redémarrez Unity et chargez le projet comme d'habitude.

En gros, "Enregistrer sous ..." réécrit toutes les anciennes connexions de script.

Si vous ne vous souvenez pas quelle scène de votre jeu est la scène renommée d'origine, vous devrez refaire la partie "Enregistrer sous ..." pour chaque scène. Cependant, vous ne devez effectuer les "Paramètres de construction" qu'une seule fois.

Et c'est tout. Vous ne devriez jamais avoir à nouveau ces scripts aléatoires. J'espère que cela aide.


0 commentaires

2
votes

Cela se produit lorsque le fichier et la classe de nom n'ont pas le même nom.

Exemple:

  • Le fichier est nommé SingleCube.cs
  • La définition de classe est public class Cube: MonoBehaviour

Dans ce cas, Unity ne peut pas lier le fichier et la classe. Les deux doivent avoir le même nom.

  • Le fichier doit être SingleCube.cs
  • Et la définition de classe public class SingleCube: MonoBehaviour

0 commentaires

1
votes

J'ai également eu le même problème. Je pense que cela est dû à la suppression de la scène par défaut mais pas à la modification des "Scènes dans la construction" dans les paramètres de construction. Voici comment je l'ai résolu.

  1. Accédez à vos paramètres de construction (Fichier> Paramètres de construction). Il devrait y avoir une case grisée indiquant «supprimé». C'est la scène par défaut (maintenant manquante).
  2. Faites un clic droit dessus et supprimez-le
  3. Ajoutez votre scène actuelle

0 commentaires