Jump to content
Unity Insider Forum

Unity Multiplayer C# - Statische Variablen Problem


Recommended Posts

Hallo Leute!
Folgendes Problem :
Ich erstelle gerade in Unity ein Multiplayer-Spiel und auf dem Spieler Prefab befindet sich ein Script, welches sich selbst bei Aufruf als statische Instanz setzt.
Jeder Spieler soll nur einen "CharakterManger" erhalten, befinden sich 2 im Spiel, wird ein Error ausgegeben.
Starte ich den Host, funktioniert alles wunderbar. Starte ich aber einen Client, erhalte ich die Meldung "Mehr als ein CharakterManger im Spiel", worauf hin für diesen keiner erstellt wird. In der Scene in Unity befinden sich natürlich auch 2 Spieler-Objekte mit jeweils einem CharakterManger Script.
Überspringe ich die Meldung, wird vermutlich der CharakterManager vom Host verwendet.

Ich bin eigentlich davon ausgegangen das die Clients untereinander ihre eigenen statischen Variablen besitzen, weswegen ich ein wenig überfragt bin, weswegen es hier zum Fehler kommt. image.png.0f3c068c20380b4eba0b5aa8d76a30ea.png

Hoffe ihr könnt mir da weiter helfen!!!

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 11 Stunden schrieb SigmaTau91:

Ich bin eigentlich davon ausgegangen das die Clients untereinander ihre eigenen statischen Variablen besitzen

Nope.

Die synchronisieren exakt das, was ihnen gesagt wurde, und sonst nichts. Also SyncVars und was immer du so semi-manuell hin und her schiebst, z.B. als Parameter eines Commands oder CilentRPCs.

Dein Manager-Script ist soweit eine komplett lokale Angelegenheit, da muss nichts synchronisiert werden. Du kannst in deiner Initialisierung einfach prüfen, ob isLocalPlayer für dein NetworkBehaviour auf dem Player true ist und setze den Manager nur dann als "den" Manager fest. Vorsicht: Ich meine mich zu erinnern, dass der Wert erst nach OnStartClient() und damit auch nach Awake() initialisiert wird.

Genau genommen kannst du einfach deine Singleton-Initialisierung in OnStartLocalClient() machen. Das wird nur auf dem NetworkBehaviour des Objekts aufgerufen, das dem lokalen Client gehört.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Join the conversation

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

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

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

Lädt...
×
×
  • Neu erstellen...