Jump to content
Unity Insider Forum

[Unet] isLocalPlayer -> Server Problem


dispatcher

Recommended Posts

//Edit:

 

Um es einfach auszudrücken wie handelt ihr eure Non Player Objects:

 

Command funktioniert ja nicht -> kein PlayerObject

 

 

bzw. Wie verarbeitet ihr eure Daten auf dem Server (Position verändern ect.) und sendet sie zum Clienten.

Bei dem Beispiel sollten die Clients nicht berechnen ausser die Position lerpen.

 

Oder gibt es andere Möglichkeiten als Server direkt die SyncVars zu ändern auch ohne Command ect.?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hatte deine Problemschilderung schon bevor du editiert hast gelesen.

 

Du hast da einen Denkfehler, wenn ich die jetzige Frage lese.

Non Player Objects werden nicht mit Commands arbeiten, da sie vom Server gespawnt werden und der Server kontrolliert sie. Daher geht es nur SyncVars und ClientRpcs.

 

bzw. Wie verarbeitet ihr eure Daten auf dem Server (Position verändern ect.) und sendet sie zum Clienten.

Bei dem Beispiel sollten die Clients nicht berechnen ausser die Position lerpen.

Ich lasse die Objekte sowohl auf dem Client aber auch auf dem Server bewegen. Wenn jemand Beispiel "W" drückt, dann wird es auf allen Clients auch W = 1 gesetzt. Dann bewegen sich alle gleichzeitig. Natürlich gibt es Latenzen und daher wird auch nach bestimmten Abständen die Position, Rotation, Geschwindigkeit und sonst was wichtig ist gesendet. Sobald es eine Abweichung gibt wird es korrigiert.

Ich benutze auch kein NetworkTransform, da ich damit nicht das geruckele wegbekommen habe. Ich habe da eigenen Script geschrieben, aber man kann sie auch kombinieren. Das hab ich schon mal gemacht, da hat es kaum geruckelt.

 

Oder gibt es andere Möglichkeiten als Server direkt die SyncVars zu ändern auch ohne Command ect.?

Hä? Die werden direkt vom Server geändert. Health = 10 auf dem Server bedeutet auch, dass alle die Clients die Veränderung auch bekommen. Dafür braucht man kein Command, wenn man das auf dem Server macht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hatte deine Problemschilderung schon bevor du editiert hast gelesen.

 

Du hast da einen Denkfehler, wenn ich die jetzige Frage lese.

Non Player Objects werden nicht mit Commands arbeiten, da sie vom Server gespawnt werden und der Server kontrolliert sie. Daher geht es nur SyncVars und ClientRpcs.

 

 

Ich lasse die Objekte sowohl auf dem Client aber auch auf dem Server bewegen. Wenn jemand Beispiel "W" drückt, dann wird es auf allen Clients auch W = 1 gesetzt. Dann bewegen sich alle gleichzeitig. Natürlich gibt es Latenzen und daher wird auch nach bestimmten Abständen die Position, Rotation, Geschwindigkeit und sonst was wichtig ist gesendet. Sobald es eine Abweichung gibt wird es korrigiert.

Ich benutze auch kein NetworkTransform, da ich damit nicht das geruckele wegbekommen habe. Ich habe da eigenen Script geschrieben, aber man kann sie auch kombinieren. Das hab ich schon mal gemacht, da hat es kaum geruckelt.

 

 

Hä? Die werden direkt vom Server geändert. Health = 10 auf dem Server bedeutet auch, dass alle die Clients die Veränderung auch bekommen. Dafür braucht man kein Command, wenn man das auf dem Server macht.

 

Ja danke dir das meiste habe ich selbst jetzt auch rausgefunden. Mach ich auch so.

 

Naja es ist aso das es früher mal als UNet rauskam es nicht ging ohne Command die SyncVars auf Non Player Objects zu ändern.

Musste das dann immer voll umständlich machen Non Player Object -> Server -> Client -> Non Player Objects.

 

Ich verstehe waste meinst, Und habe jetzt mein Projekt bisschen umstrukturiert zB.: NPC's -> Reliable -> und so wenige Packets wie möglich. Wie machst du des normalerweise bei einer NPC Bewegung ist es teilweise ausser es ist ein FPS nicht so wichtig das sie zeitnah ankommt. Ich Lerpe das ganze dann noch und es sieht flüssig aus.

 

Aber auf jeden danke mal für deine Info war gestern mal wieder zu sehr verwirrt.

 

Grüße 0F00

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...