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.

Woher ich das weiß:Studium / Ausbildung – Informatikstudium
DeathNoteGood 
Fragesteller
 25.07.2018, 23:25

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.

0
triopasi  25.07.2018, 23:26
@DeathNoteGood

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

0
verreisterNutzer  25.07.2018, 23:34
@DeathNoteGood

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.

0
Seralic  26.07.2018, 09:45
@verreisterNutzer

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!

1
verreisterNutzer  26.07.2018, 14:21
@Seralic

Oh, da hast du recht. Ich sollte mich mal wieder etwas mehr mit Unity beschäftigen...

1

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)

DeathNoteGood 
Fragesteller
 25.07.2018, 23:26

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

0
verreisterNutzer  26.07.2018, 01:13
@jodelBoy

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.

0