Ist es möglich in C# zwei oder mehr befehle gleichzeitig ausführen(Unity)?
3 Antworten
Nutze die Möglichkeiten, die dir Unity bietet (Update/FixedUpdate). Genügend Anfänger-Tutorials findest du in der Unity Dokumentation.
Threading (da es hier schon vorgeschlagen wurde) solltest du in Unity eher meiden, denn dafür wurden die Methoden der Engine nicht ausgelegt und ohne Grundlagenwissen zu dem Thema wäre es auch nicht angebracht, mit solchen Lösungsversuchen zu beginnen.
Ich glaube du willst gar nicht 2 Befehle gleichzeitig. Was hast du denn genau vor? Wenn die Funktionalität darauf basiert, dass 2 Dinge EXAKT gleichzeitig ausgeführt werden müssen ist das Konzept schlecht.
Wenn du von x = 0, y = 0 nach x = 10, y = 10 wilslt musst du halt:
x = 1, y = 0
x = 1, y = 1
x = 2, y = 1
x = 2, y = 2
etc...
Genau dafür ist doch die Methode "FixedUpdate" da - du sagst dem Spieler er soll zu Punkt (X/Y) gehen (z.B. mittels Vector3.MoveTowards) und das geschieht dann Frame für Frame.
Ich würde nicht sagen, dass FixedUpdate für das Movement des Players verantwortlich ist.Ich würde die FixedUpdate Methode beim Movement erst verwenden, wenn der Spieler ein Rigidbody hat. Ansonsten kann man das Movement ohne weiteres in der Update Methode lassen.
Ach, und wenn der Spieler ein Rigidbody hat, dann würde ich das Movement in die FixedUpdate Methode und die Inputs in der Update Methode schreiben.
Alles der Performance zu Liebe!
Oh, da hast du recht. Ich sollte mich mal wieder etwas mehr mit Unity beschäftigen...
Kenne mich in C# nicht so gut aus, aber wenn es gleich ist wie in java, kannst du das mit threads erreichen. (wird nicht gleichzeitig ausgeführt, sondern abwechselnd, aber sehr sehr schnell. So wird eine parallelität nur simuliert. Zumindest in java)
ich kenne mich mit java auch aus aber bin mir halt auch nicht sicher ob es sowas in c# gibts deshalb wollte ich hier fragen
threads dürfte es eigentlich in jeder programmiersprache geben
Ich überlege gerade ob es Gegenbeispiele gibt. Aber ich glaube selbst PowerShell kann Threading.
Assembler kann es nicht. Aber ich denke das zählt nicht, weil es auf so tiefer Ebene einfach keine threads gibt.
Oh mir fällt eins ein! Node.JS. Da wird alles in einem Thread ausgeführt.
Na ja ich möchte zum Beispiel eine x- und y-Achse angeben und dann soll der Spieler dahin laufen und damit er nicht zuerst zu der x-Achse und dann zu der y-Achse geht will ich dass er schreck geht und dafür muss er gleichzeitig zu der x- und y-Achse gehen.