NetworkIdentity SpawnObject(bool localPlayer) { const uint netId = 1000; GameObject go = new GameObject(); _createdObjects.Add(go); NetworkIdentity identity = go.AddComponent <NetworkIdentity>(); SpawnMessage msg = new SpawnMessage { netId = netId, isLocalPlayer = localPlayer, isOwner = localPlayer, }; // ApplySpawnPayload applies the message (sets netId etc.) NetworkClient.ApplySpawnPayload(identity, msg); // isLocalPlayer is set in OnStartLocalPlayer. // that function is only called by ApplySpawnPayload if isSpawnFinished. // spawn finished isn't set. // so let's set local player manually instead. identity.isLocalPlayer = localPlayer; if (localPlayer) { Assert.That(NetworkClient.localPlayer, Is.EqualTo(identity)); } return(identity); }