Kan scriptcomponent niet toevoegen omdat de scriptklasse niet kan worden gevonden?

Gisteren heb ik unity geüpdatet van unity5 naar 2018.2.2f1. Unity-scripts worden niet geladen na update 2018.2.2f1.

Zodra ik de scène probeer af te spelen, worden de scripts niet geladen en kan ik het script niet opnieuw toevoegen, het geeft deze foutmelding:

Kan scriptcomponent ‘CubeScript’ niet toevoegen omdat de scriptklasse
kan niet gevonden worden. Zorg ervoor dat er geen compileerfouten zijn en dat:
de bestandsnaam en de klassenaam komen overeen.


Antwoord 1, autoriteit 100%

Als je het oude exemplaar van het project nog hebt, upgrade dan eerst het Unity-project naar Unity 2017en daarna naar 2018.2.2f1.

Hier zijn de weinige mogelijke redenen waarom u deze fout kunt krijgen (besteld bij zeer waarschijnlijk)

1.Scriptnaam komt niet overeen met klassenaam.

Als de scriptnaam MyClasswordt genoemd, moet de klassenaam MyClasszijn. Dit is ook hoofdlettergevoelig. Controleer nogmaals of dit niet het probleem is. Om er zeker van te zijn dat dit niet het probleem is, kopieert u de klassenaam en plakt u deze als de scriptnaam om er zeker van te zijn dat dit niet het probleem is.

Houd er rekening mee dat als je meerdere klassen in één script hebt, de klassenaam die moet overeenkomen met de scriptnaam de klasse is die is afgeleid van MonoBehaviour.


2.Er zit een fout in je script. Aangezien dit een upgrade is, bestaat de kans dat u een API gebruikt die nu is verouderd en verwijderd. Open uw script met Visual Studio en kijk of er een fout is, repareer het dan. Er staat meestal een rode lijn onder een code die aangeeft dat er een fout is opgetreden.


3.Slechte import met de Unity-importeur en het bijbehorende automatische upgradescript.

Dingen om te proberen:

A. Het eerste dat u moet doen, is de Unity Editor opnieuw opstarten.

B. Klik met de rechtermuisknop op het tabblad Project en klik vervolgens op “Alles opnieuw importeren”

C.Als er nog steeds een probleem is, is het enige wat overblijft het verwijderen van het problematische script en het maken van een nieuwe. Er is een eenvoudigere manier om dit te doen als het script aan veel GameObjects in je scène is gekoppeld.

A.Open het script, kopieer de inhoud naar Kladblok.

B.Klik vanuit de Editor en op het tabblad Projectmet de rechtermuisknop op het script “CubeScript”, selecteer “Find References In Scene”.

C.Unity toont nu alleen alle GameObjects waaraan dit script is gekoppeld. Verwijder het oude script. Maak een nieuwe en kopieer de inhoud van het kladblok naar dit nieuwe script. Nu kun je het nieuwe script gewoon naar alle gefilterde GameObject in de scène slepen. Doe dit voor elk uitgevoerd script. Dit is een handmatig werk, maar zou je problemen moeten oplossen als het klaar is.


Antwoord 2, autoriteit 19%

Hier posten voor historische doeleinden en als iemand van Google hier terechtkomt, had ik precies hetzelfde probleem (ik gebruik Windows 10) en hier is hoe ik het heb opgelost:

Voor mij was het probleem dat “Tools\Roslyn\csc” niet kon worden gevonden, iets dat Unity gebruikt om C#-bestanden te compileren.

  • Ik opende C:\Program Files\Unity\Hub\Editor\2019.2.14f1\Editor\Data\Tools\RoslynScripts\unity_csc.baten ik voegde “.exe” toe aan de regel "%APPLICATION_CONTENTS%\Tools\Roslyn\csc" /shared %*

(Deze regel zou nu moeten zijn: "%APPLICATION_CONTENTS%\Tools\Roslyn\csc.exe" /shared %*)

Nu werkt het perfect.


Antwoord 3, autoriteit 3%

Hier is een reden waarom dat zo druk is.

1. Je scriptnaam En je klasnaam is niet hetzelfde.

2. Het kan zijn dat er een fout in uw script zit.

Hier is de enige manier om het op te lossen.

1. Maak een zelfde naam van script en klasse in dit script.

2. vinden dat er een fout is? en probeer het op te lossen.


Antwoord 4

Nog één ding dat kan helpen, afgezien van andere antwoorden

  • Maak de klasse die erft van het MonoBehaviour de eerste klasse in het bestand. Het heeft dit probleem voor mij opgelost.

Antwoord 5

Het controleren van de console-bugs en het oplossen ervan is een goede manier om de problemen op te lossen “Kan scriptcomponent niet toevoegen omdat de scriptklasse niet kan worden gevonden?”, hoewel de bug niet relevant lijkt te zijn.
Dit werkt voor mij wanneer ik een bug in het andere script verhelp.


Antwoord 6

voor mij kwam ik erachter dat het een script was dat ik niet gebruikte en dat was gekoppeld aan de speler en andere scripts die ik had verwijderd.


Antwoord 7

Ik ben helemaal nieuw in Unity en game-ontwikkeling, maar ik ontdekte dat het waarmaken van de fout door een onjuiste naam in te voeren en vervolgens de juiste naam in te voeren, Unity lijkt te “misleiden” om de fout te herstellen.

Other episodes