0

Ich versuche, Datensynchronisierung in Unity Netzwerkentwicklung zu verstehen. Das erste Problem, mit dem ich konfrontiert bin, ist das Verständnis des unity3D Server Client Modells.So identifizieren Sie Server und Client getrennt in Unity 3d

  • Meine grundlegende verstehen ist, dass ein Computer als Server + Client und andere einfach Client verhält.
  • Aber in folgenden Grafiken, wenn von PC-Build gehostet es gibt keinen Server überhaupt?
  • Wenn ich es jetzt von Unity Editor hosten gibt es sowohl Server + Client .. warum ???
  • Das andere Problem, das ich zu lösen versuche, dass ein solches Verhalten zu machen, in dem, wenn ich Leertaste auf Server drücken Sie den Server erhöht Ergebnis.

  • Dasselbe gilt für den Client, wenn beim Client Platz gedrückt wird, wird der Kundenwert erhöht.

  • Kein Fortschritt überhaupt, weil ich nicht herausfinden kann, wie man das Serverdatum von Kundendaten trennt. Versucht, die Referenz von zwei verschiedenen Text-Objekten zu erhalten, wenn es Server ist, erhält es den Server-Text von der Hierarchie und wenn es ein Client ist, wird es dazu gebracht, das Client-Text-Objekt von der Hierarchie abzurufen.

Ich hoffe, Grafiken sind selbsterklärend.

Following Graphics are consist of 2 different problems I am facing.

Antwort

1

Wenn Sie Host von Standalone baut man nicht sehen kann, die auf dem Client die Host direkt in Inspektoren ist. Sie können eine Benutzeroberfläche erstellen, um Informationen zur Netzwerkidentität anzuzeigen, und sicherstellen, dass alles korrekt ist.

1
  1. für die erste Frage, denken Sie daran:

Wenn Sie Spiel als Host-Join Sie Server sind + Client

Wenn Sie Spiel als Server Join Sie sind nur Server.

Wenn Sie Spiel als -Client beitreten Sie sind nur Client

Sie diese Sache in Build überprüfen und eigene GUI entwickeln, um die Kontrollen zu sehen, wie Sie erwähnt.Mit diesen Kontrollen

if (isLocalPlayer)

  1. Ja, Sie können Client und Server unterscheiden {

    // ja, das ist der lokale Spieler // Die Klasse muss von networkBehaviour ableiten werden, um Zugriff auf diese Eigenschaft }

und Sie können auch verwenden Network Klasse is Server zu überprüfen.