Was ist der Fehler in diesem Code, den ich geschrieben habe?

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.

Woher ich das weiß:Berufserfahrung

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

Woher ich das weiß:Berufserfahrung
TeslaRoadster20 
Fragesteller
 28.10.2019, 22:52

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"

0

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;
Woher ich das weiß:Studium / Ausbildung – Informatikstudium
TeslaRoadster20 
Fragesteller
 28.10.2019, 22:42

Hä? Also ich hab das jetzt hinzugefügt und es geht jetzt irgendwie immer noch nicht

0
PeterKremsner  28.10.2019, 22:45
@TeslaRoadster20

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.

0
Roach5  28.10.2019, 22:47
@TeslaRoadster20

Wenn man using UnityEngine oben drin hat, muss man darunter keine Unterklassen mehr importieren. Die Klassen richtig zu schreiben bringt da schon mehr :)

0
TeslaRoadster20 
Fragesteller
 28.10.2019, 22:53
@Roach5

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" :(

0
VeryBestAnswers  28.10.2019, 23:04
@Roach5

Gut erkannt! Das habe ich tatsächlich übersehen.

Falsch:  RigidBody2D
Richtig: Rigidbody2D
0
VeryBestAnswers  28.10.2019, 23:05

Korrektur: Es liegt an der Großschreibung des „B“ in „Rigidbody2D“, nicht am using.

0

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...

Woher ich das weiß:Studium / Ausbildung – Diplom(U)-Informatik-Studium erfolgreich absolviert...
PeterKremsner  28.10.2019, 22:44

Ist eine Klasse in Unity.

0
RIDDICC  29.10.2019, 09:15
@PeterKremsner

ach je... das hat gcc ja schon besser drauf... der gibt mir dann immer ne Variante mit kleinem Levenshtein-Abstand... grins

0