Skip to content

Commit

Permalink
fix: PlayerSpawner depends on ClientObjectManager throw if missing (#472
Browse files Browse the repository at this point in the history
)

* fix: PlayerSpawner depends on ClientObjectManager throw if missing

* add test
  • Loading branch information
uweeby committed Nov 3, 2020
1 parent 2d3a358 commit 0ab0a70
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
6 changes: 6 additions & 0 deletions Assets/Mirror/Runtime/PlayerSpawner.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,13 @@ public virtual void Start()
{
sceneManager.ClientSceneChanged.AddListener(OnClientSceneChanged);
if(clientObjectManager != null)
{
clientObjectManager.RegisterPrefab(playerPrefab.gameObject);
}
else
{
throw new InvalidOperationException("Assign a ClientObjectManager");
}
}
if (server != null)
{
Expand Down
11 changes: 11 additions & 0 deletions Assets/Tests/Editor/PlayerSpawnerTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public void Setup()
spawner.client = client;
spawner.server = server;
spawner.serverObjectManager = serverObjectManager;
spawner.clientObjectManager = clientObjectManager;

playerPrefab = new GameObject();
NetworkIdentity playerId = playerPrefab.AddComponent<NetworkIdentity>();
Expand Down Expand Up @@ -124,5 +125,15 @@ public void GetStartPositionNullTest()
spawner.startPositions.Clear();
Assert.That(spawner.GetStartPosition(), Is.SameAs(null));
}

[Test]
public void MissingClientObjectSpawnerExceptionTest()
{
spawner.clientObjectManager = null;
Assert.Throws<InvalidOperationException>(() =>
{
spawner.Start();
});
}
}
}

0 comments on commit 0ab0a70

Please sign in to comment.