Unity/C# Pathfinding programmieren?
Hallo,
Ist es schwer für einen Gegner oder so in Unity ein Pathfinding zu programmieren? In Unity schreibt man ja in C#
Ihr dürft mir gerne den Kopf abreißen, aber ich habe noch nie etwas programmiert und biete nur einen Haufen YT Videos zu C# geschaut. Unity habe ich schon installiert, möchte morgen versuchen eine Tilemap zu machen (ja, meine Ahnung von sowas ist gering).
Ansich soll das sich bewegende Objekt (in meinem Fall eine Katze) ein Tile auswählen und dort hinlaufen. Später soll das halt an die Bedürfnisse angepasst sein, ob die Katze gezielt zu einem Tile läuft oder eher zufällig durch die Gegend streift.
Ich weiß, programmieren ist eine Sache von Monaten und Jahren, und sowas komplexes werde ich nicht mal eben morgen hinbekommen. Aber wollte mal wissen ob ihr sowas mal gemacht habt und ob es schwer war.
Achja, ist vielleicht wichtig: Das Spiel von mir soll 2d sein.
LG Phönixstern
1 Antwort
Ist es schwer für einen Gegner oder so in Unity ein Pathfinding zu programmieren?
Unity stellt hierfür schon ein paar Funktionen bereit (ein Stichwort: NavMeshAgent) und es gibt auch zahlreiche Tutorials / Artikel / u.ä. dazu. Aus diesem Grund ist es weder ein neues noch ein schwer lösbares Problem.
Für diese Einschätzung würde ich allerdings ein paar Voraussetzungen definieren. Dazu gehören:
- C#-Grundlagenkenntnisse
- einfache Kenntnisse in der Bedienung von Unity
- am besten Englisch-Kenntnisse (im Lesen/Hören), da die meisten Referenzquellen in englischer Sprache verfasst sind
- zumindest eine grobe Einarbeitung in das Thema pathfinding wäre vorteilhaft, denn darauf aufbauend kann man eher individuelle Lösungen / Eigenimplementationen / Anpassungen und dergleichen anstoßen
(...) aber ich habe noch nie etwas programmiert und biete nur einen Haufen YT Videos zu C# geschaut (...)
Nur Anschauen reicht nicht aus. Videos über Tanzschritte allein machen dich ja ebenso nicht direkt zum Tänzer. Erst über die praktische Übung werden die Einzelschritte klarer und die Grundzüge verinnerlicht.
Das kannst du sicherlich auch selbst schnell auf die Probe stellen, indem du dir eine praktische Übungsaufgabe stellst, wie: Berechne die Quersumme einer dreistelligen Zahl oder prüfe rekursiv, ob es sich bei einem beliebigen Wort um ein Palindrom handelt.
Ich würde dir raten, die Grundlagen praktisch parallel / je Abschnitt zu üben bzw. auszuprobieren. In der Hinsicht eignen sich Konsolenprojekte als Lernumgebung, da sie einfach strukturiert sind. Auf Webseiten wie Edabit, Exercism oder w3resource lassen sich viele Übungsaufgaben verschiedenen Schwierigkeitsgrads finden.
Unity habe ich schon installiert (...)
Unity hat ein Entwicklungsumfeld, welches davon ausgeht, dass du mit den C#-Grundlagen bereits sicher umgehen kannst. Wenn du schon weißt, dass es länger dauert, programmieren zu lernen, dann nimm dir dafür doch auch erst einmal die Zeit.
Englisch lesen und verstehen kann ich immerhin.
Ich weiß, anschauen bringt mir nicht so viel. Und ich werde auch bald selber anfangen was zu schreiben. Das Ding ist, man kann mir echt 20 mal sagen "Mach erstmal kleine Aufgaben", und ich werde wahrscheinlich trotzdem keine kleinen Übungen machen :/ Aber vielleicht kriege ich mich davon ja noch überzeugt.
Das mit dem pathfinding ist dann ja super. Ich werde mich informieren. Hier ist das Problem, dass ich schon so eine Idee im Kopf habe was ich machen möchte, und dafür einer der ersten Schritte wäre, dass sich Dinge von selbst bewegen. Ja, ich sollte erst machen dass man selber eine Figur steuern kann, aber naja...
Aber ganz vielen Dank für deine Antwort, die ist wirklich hilfreich!