Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,7 @@ protected override void OnServerAndClientsCreated()

protected override IEnumerator OnStartedServerAndClients()
{
m_ServerNetworkManager.SceneManager.DisableValidationWarnings(true);
m_ServerNetworkManager.SceneManager.ClientSynchronizationMode = LoadSceneMode.Additive;
m_ServerNetworkManager.SceneManager.SetClientSynchronizationMode(LoadSceneMode.Additive);
return base.OnStartedServerAndClients();
}

Expand All @@ -65,7 +64,8 @@ protected override void OnNewClientStarted(NetworkManager networkManager)
private NetworkObject m_FailedValidation;
private bool TestParentedAndNotInScenePlaced()
{
var serverPlayer = m_ServerNetworkManager.LocalClient.PlayerObject;
// Always assign m_FailedValidation to avoid possible null reference crashes.
var serverPlayer = m_FailedValidation = m_ServerNetworkManager.LocalClient.PlayerObject;
if (serverPlayer.transform.parent == null || serverPlayer.IsSceneObject.Value == true)
{
m_FailedValidation = serverPlayer;
Expand Down Expand Up @@ -111,9 +111,11 @@ public IEnumerator ParentUnderInSceneplaced()
m_ServerNetworkManager.SceneManager.LoadScene(k_SceneToLoad, LoadSceneMode.Additive);
// Wait for the scene with the in-scene placed NetworkObject to be loaded
yield return WaitForConditionOrTimeOut(() => m_SceneIsLoaded == true);
AssertOnTimeout($"Timed out waiting for the scene {k_SceneToLoad} to load!");

// Wait for the host-server's player to be parented under the in-scene placed NetworkObject
yield return WaitForConditionOrTimeOut(TestParentedAndNotInScenePlaced);
AssertOnTimeout($"[{m_FailedValidation.name}] Failed validation! InScenePlaced ({m_FailedValidation.IsSceneObject.Value}) | Was Parented ({m_FailedValidation.transform.position != null})");

// Now dynamically spawn a NetworkObject to also test dynamically spawned NetworkObjects being parented
// under in-scene placed NetworkObjects
Expand Down