Unity c# code Fehler?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Du solltest dich mit den Grundlagen beschäftigen, Trial & Error führt zu nichts.

Und Zeile 6 muss in Zeile 4.

Woher ich das weiß:Berufserfahrung – C#.NET Senior Softwareentwickler
PWolff  06.11.2022, 00:03

Oder Zeile 5 in Zeile 7, oder Zeile 5 und 6 müssen vertauscht werden (was alles auf dasselbe hinausläuft).

Wenn man die allerwichtigsten Grundlagen kennt, führt Trial & Error oft genug weiter. Besonders bei Dingen, die völlig kontraintuitiv gelöst sind oder anders funktionieren, als in der Dokumentation beschrieben. (Obwohl hier meistens eine Suche bei stackoverflow oder ähnlich schneller zum Ziel führt.)

0
Palladin007  06.11.2022, 00:17
@PWolff
Oder Zeile 5 in Zeile 7, oder Zeile 5 und 6 müssen vertauscht werden (was alles auf dasselbe hinausläuft).

Dann wähle ich deine Option 2: Zeile 5 und 6 vertauschen, so bleibt nirgendwo eine Leerzeile zu viel oder zu wenig :D

Wenn man die allerwichtigsten Grundlagen kennt, führt Trial & Error oft genug weiter

Ich korrigiere meine Aussage:
Trial & Error führt meistens zu Frustration und/oder schlechten Code.

Mag sein, dass man irgendwie vielleicht doch das Ziel erreicht, doch der Weg ist meist weit länger und man hat sehr häufig Code, der nicht optimal auf die Anforderungen zugeschnitten ist und am Ende hat man nichts gelernt.

2
PWolff  06.11.2022, 00:22
@Palladin007

Jetzt bedaure ich, dass ich nicht Buch darüber geführt habe, was ich alles an Dingen gefunden habe, die anders funktionieren, als die (offizielle!) Dokumentation behauptet. Inzwischen kommt man oft mit einer Websuche weiter (aber keineswegs immer, wenn man oft genug unter den Ersten ist, die neue Features ausprobieren), aber bevor es bezahlbare Internetzugänge gab, blieb oft nur (gezieltes systematisches) Ausprobieren.

0
Palladin007  06.11.2022, 00:25
@PWolff

Ich habe nichts dagegen, die Internet-Suche zu bemühen.
Mich stört nur, wenn man das Gefundene nutzt, ohne einen Versuch daran zu verschwenden, es zu verstehen und anzupassen.

Wenn man irgendwo eine Lösung findet, sollte man diese Lösung am Ende auch verstehen und an das eigene Vorhaben anpassen oder - noch besser - mit dem neu gewonnen Wissen neu entwickeln.

1
PWolff  06.11.2022, 00:27
@Palladin007

Stimmt, das gehört unbedingt mit dazu.

Ich weiß nicht, was so geschätzt wird, welcher Anteil der Bugs auf "Cargo Cult Programming" (meist "von stackoverflow oder so kopiert, ohne zu kapieren oder auch nur daran zu denken, dass es Proof-of-Concept-Beispielcode ist") zurückzuführen ist, vermutlich wird bis 50% genannt.

0
Palladin007  06.11.2022, 00:38
@PWolff

Habe ich nie mitgezählt :D Aber sicher sehr viele Bugs.

Vermutlich liegt das Problem aber eher etwas weitreichender: Person X kopiert Code von StackOverflow und irgendwann später kopiert Person Y (oder sogar X) den kopierten und bis dahin vermutlich veränderten Code wieder und Person Z ...
Stille-Post-Prinzip mit Code :D

Ich hab ein Jahr lang (ich konnte nicht früher raus) für eine Firma gearbeitet, bei der fast alles so lief. Z.B. das eigentlich (wenn man es richtig macht) hoch performante Arbeiten mit (XML-) Streams war ein echtes Performance-Problem und hat ständig den RAM zum überlaufen gebracht, weil nicht gestreamt wurde, sondern der Stream immer und immer wieder in MemoryStreams kopiert und verändert und wieder kopiert wurde. Oder das XmlDocument, das ständig kopiert, angepasst, wieder kopiert wurde und so weiter.

Das ist vermutlich so ein Beispiel, wo jemand ohne Ahnung etwas recherchiert und ohne Verständnis übernommen hat und das ging dann immer so weiter, bis niemand mehr wusste, warum der Stream der 500MB-XML nun zig Mal kopiert und in massig XmlDocument-Objekte geparste wurde und alle haben sich gefragt, warum das Programm beim Einlesen die 16GB RAM zum Überlaufen gebracht hat :D

1
PWolff  06.11.2022, 00:43
@Palladin007

Kenn ich auch zur Genüge - der Kunde meldet einen Fehler oder will ein neues Feature, und das Codeäffchen darf "bis gestern" die Anwendung so anpassen, dass der Kunde erst merkt, was beim Ausbügeln des kleinen Bugs oder dem Ankleben des Features an Rieseninsekten prähistorischer Größe eingebaut wurde, nachdem er Ruhe gegeben oder bezahlt hat.

1
Palladin007  06.11.2022, 00:48
@PWolff

Das kann ich toppen :D

Ich sollte (selbe Firma) mal ein versprochenes Feature als reine Benutzerobverfläche ohne Funktion dahinter faken, die eigentliche Funktion sollte dann im Laufe der Bug-Meldungen implementiert werden.

Das war der Moment, wo ich innerlich gekündigt habe.

1
Ertu4 
Fragesteller
 06.11.2022, 10:48

Vielen Dank für die Antwort. An meiner Schule gibt es win Angebot, um c# anhand von Unity zu erlernen. Bevor ich jedoch den Kurs besuche wollte ich herausfinden wie schwer das erlernen ist und ob es was für mich ist. Ich habe in meinem Script Zeile 6 in die Zeile 4 verschoben und von 10 Fehlermeldungen sind es jetzt nich 5. Muss ich sonst noch was ändern?

0
Palladin007  06.11.2022, 12:51
@Ertu4
An meiner Schule gibt es win Angebot, um c# anhand von Unity zu erlernen

"Schön", dass die Schule es direkt falsch macht.

Mach mit, wenn Du willst, aber Unity ist komplex und ganz sicher nicht für den Einstieg geeignet. Irgendwie wird es zwar funktionieren (abhängig vom Lehrer), aber Du ersparst dir viel Frust, wenn Du vorher die C#-Grundlagen lernst und dafür gibt's gute Bücher.

Ich habe in meinem Script Zeile 6 in die Zeile 4 verschoben und von 10 Fehlermeldungen sind es jetzt nich 5

Auf deinem Screenshot sind es nur 5 Fehlermeldungen, also hast Du irgendwas anderes. Also nein, keine Ahnung, ich kann nicht hellsehen.

1
Ertu4 
Fragesteller
 06.11.2022, 12:57
@Palladin007

Danke für die Antwort ich habe eben die neuen Bilder hochgeladen. Auch eins von den 5 Fehlermwldungen und eins vom überarbwuteten code

0
Ertu4 
Fragesteller
 06.11.2022, 13:57
@Palladin007

Das Bild ist auch neu. Vorher waren es 10 Fehlermeldungen

0
Ertu4 
Fragesteller
 06.11.2022, 21:29
@Ertu4

Ah ich hab den Fehler gefunden. Ich hatte das C# file doppelt und daher die doppelten Fehlermeldungen

0
epicwolf  22.06.2023, 18:30
@Ertu4

nach public class muss stehen Player2 weil das script so heißt oder du nennst das script Player

0
epicwolf  22.06.2023, 18:29

nach public class muss stehen Player2 weil das script so heißt oder du nennst das script Player

0

Lerne erst C#, bevor du mit Unity arbeitest. Die Grundlagen der Sprache zu kennen, sind notwendige Mindestkenntnisse. Verschiedene Lernquellen, die du nutzen kannst, findest du hier.

Bei dir ist die erste Klammer fehlplatziert. Der Klassenkörper muss mit geschweiften Klammern umschlossen werden.

Ertu4 
Fragesteller
 06.11.2022, 10:44

Vielen Dank, hab mir die Lernquellen angesehen

0