Jump to content
Unity Insider Forum
straesso

Austausch Integer zwischen zwei Clients

Recommended Posts

Hallo,

ich habe ein (vermeintlich) einfaches Problem, welches ich gerne mit UNET lösen möchte, aber nicht so recht weiss, wie.

Genau zwei Clients sollen in einem Spiel-Setting existieren. Nun möchte ich erreichen, dass ein Client in der Lage ist ein Integer an den anderen Client zu senden und umgekehrt. Die Clients haben allerdings kein gemeinsames Spielfeld. Client 1 sieht nicht, was Client 2 macht und umgekehrt.

Es geht lediglich darum, dass ein Client dem Anderen einen einfachen Wert sendet, den dieser dann verarbeitet - nur für sich. Umgekehrt soll der zweite Client ebenfalls in der Lage sein, dem ersten eine Integer zu senden, die dann lediglich von diesem verarbeitet wird. Ich habe gedacht, das Problem mit zwei SyncVars zu lösen - bekomme das aber nicht auf die Reihe.

Ich komme einfach nicht weiter. Würde mich über Hilfe freuen.

Viele Grüße, Olaf

Share this post


Link to post
Share on other sites

Benutzt du wirklich UNet oder Mirror (nachfolger)? UNet ist nämlich veraltet. Würde empfehlen Mirror zu benutzen, weil es wirklich gut verbessert wurde. Daher kann nun sein, dass ich paar Dinge sage, die vllt bei UNet nicht gibt.

UNet ist so aufgebaut, dass jedes Client seine eigene Variable verändern kann, allerdings über den Server. Diese Variablen werden über das Netzwerk synchronisiert (also auch andere Clients können das mitbekommen, wenn so eingestellt ist). Das wäre eine Möglichkeit um damit zu arbeiten. Der andere Spieler könnte nun einfach diesen Wert lesen. 

Möglichkeit zwei. Wenn es nur zwei Clients sein sollen, dann ist das leichter. Du führst ein Command aus. Beispiel CmdSendIntegerToOtherPlayer(int intValue)

In der Funktion wird nun der Server den ändern Spieler (ich sage bewusst Spieler und nicht client) finden sein Wert aktualisieren. Wenn es syncvar ist, dann geht es automatisch und wenn normale Variable ist, dann kann man zusätzlich TargetRpc benutzen. Damit kann man gezielt an ein Spieler senden.

Es gibt auch kompliziertere Wege mit dem MessageSystem.

  • Like 1

Share this post


Link to post
Share on other sites

Vielen Dank für Deine Antwort MayZy.

Ja, ich verwende in der Tat UNet, weil ich dafür ein recht gutes Tutorial habe und das Spiel nur für den Privatgebrauch gedacht ist. Die Zukunftsfähigkeit ist da nicht so entscheidend. Ob Mirror nach dem Neudesign der Netzwerkfähigkeiten von Unity noch funktioniert, scheint mir auch nicht sicher zu sein.

Vermutlich habe ich grundsätzlich noch ein Verständnisproblem, weil ja eigentlich alle Clients denselben Code verwenden. Irgendwie komme ich damit durcheinander. Jeder der beiden Clients muss ja genau wissen, welche Variable nur für ihn gedacht ist...

Ich lasse mir Deine Antworten mal in Ruhe durch den Kopf gehen und überlege, wie ich das tatsächlich mit Code auch realisieren könnte...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...