Ich versuche, in Fehlern, um herauszufinden, was die folgende Differenz verursacht, wenn UNET mit:UNET: Unterschiede mit Unity-Editor und Anwendung in Laufe
ich mein Projekt im Editor leite und in Antragsformular bei der Gleichzeitig testen Sie die Multiplayer-Funktionalität. Die Funktionalität, die ich teste, ist das Erstellen/Erstellen von Projektilen. Wenn ich den Editor zum Host und die Anwendung zum Client mache, kann nur der Host die Projektile sehen. Wenn ich jedoch dem Redakteur den Client und die Anwendung den Host mache, können beide Spieler die Projektile sehen.
Hier wird es merkwürdig: Egal, welche Kombination ich verwende, wenn es auf zwei Anwendungen läuft, anstatt nur einer Anwendung und des Editors, nur der Host kann die Projektile sehen.
Warum funktioniert diese spezielle Kombination und wie kann ich sie für jedes Setup verwenden?
Hier ist der Laichcode; wenn es das Problem nicht sicher ist:
[Command]
public void CmdFireProjectile(Quaternion cA, Vector3 tF, string pN) {
GameObject projPrefab = Projectile.getProjectilePrefab(pN);
GameObject proj = (GameObject)Instantiate(projPrefab, new Vector3(transform.position.x, transform.position.y + .4f, transform.position.z) + tF, cA);
proj.GetComponent<Projectile>().setSource(this);
NetworkServer.Spawn(proj);
}
"In Ihrem Befehl verwenden Sie die hasAuthority bool check und verwenden Sie networkspawn innerhalb von True und False." Warte, verwende ich es ob es falsch ist oder nicht? Oder meintest du nur zu sagen wahr? Würde ich NetworkServer.SpawnWithClientAuthority() auch im RPC oder im Befehl verwenden? – user2975229
Verwenden Sie in beiden, True und False, wenn es nicht funktioniert, verwenden Sie spawnwithclientAutority in der Befehlsfunktion, grundsätzlich alle Kombinationen versuchen – LumbusterTick