Was ist der Fehler in diesem Code, den ich geschrieben habe?
Hey Leute,
ich bin noch ein Programmier Anfänger und wollte wissen, wo der Fehler da ist. Ich programmiere mit C#. Und es wäre nett, wenn ihr mir helfen könnt.
Angeblich ist der Fehler in der achten Zeile. Es heißt immer "The type or namespace name 'RigidBody2D' could not be found (are you missing a using directive or an assembly reference?)"
Danke!
6 Antworten
ich bin noch ein Programmier Anfänger...
Und stopp! Als Anfänger solltest du dich erst einmal darum kümmern, die Grundlagen von C# zu lernen und zu festigen und kleine eigenständige Projekte umsetzen. Erst dann, wenn du weißt, was du tust, kannst du dich an größere Projekte mit Hilfsmitteln wie Unity wagen.
Wenn du soweit bist, solltest du dir unbedingt und ohne Ausnahme die Dokumentation von Unity durchlesen, dann würden sich solche Fragen erst recht erübrigen.
Du hast einen Schreibfehler gemacht. Die UnityEngine implementiert eine Klasse Namens "Rigidbody2D", mit kleinem "b". Darüber hinaus würde ich in Zukunft die Benennung der Variablen vereinheitlichen ("Rigit" zu "Rigid").
LG
dann steht da " A 'using namespace' directive can only be applied to namespaces; 'Rigidbody2D' is a type not a namespace. Consider a 'using static' directive instead"
Um gleich einmal weitere Fehler vorzubeugen: C# ist case sensitive und für den Code-Stil orientiert man sich an der PascalCase-Schreibweise. Klassen und Methodennamen beginnen mit einem Großbuchstaben.
Das heißt, dass der Typ „RigidBody2D“ nicht bekannt ist. Der Typ ist der C#-Bibliothek von Unity definiert. Um ihn zu nutzen, musst du ihn aber erst importieren!
Das geht so:
using UnityEngine.Rigidbody2D;
Korrektur: Es liegt an der Großschreibung des „B“ in „Rigidbody2D“, nicht am using.
Hast du das Assemblyfile als Verweis hinzugefügt?
Ich kenne Unity nicht, aber für gewöhnlich musst du erst eine entsprechende DLL als Verweis hinzufügen bevor du Klassen aus dieser DLL verwenden kannst.
Wenn man using UnityEngine oben drin hat, muss man darunter keine Unterklassen mehr importieren. Die Klassen richtig zu schreiben bringt da schon mehr :)
jetzt steht da " A 'using namespace' directive can only be applied to namespaces; 'Rigidbody2D' is a type not a namespace. Consider a 'using static' directive instead" :(
RigidBody2D müsste erstmal deklariert werden...
was soll denn das sein? hört sich nich nach nem üblichen Datentyp an... mehr nach etwas, das du selbst schreiben willst...
ach je... das hat gcc ja schon besser drauf... der gibt mir dann immer ne Variante mit kleinem Levenshtein-Abstand... grins
Hä? Also ich hab das jetzt hinzugefügt und es geht jetzt irgendwie immer noch nicht