diff --git a/com.unity.netcode.gameobjects/TestHelpers/Runtime/NetcodeIntegrationTest.cs b/com.unity.netcode.gameobjects/TestHelpers/Runtime/NetcodeIntegrationTest.cs
index 95bf441e4d..a6f0f3a4cb 100644
--- a/com.unity.netcode.gameobjects/TestHelpers/Runtime/NetcodeIntegrationTest.cs
+++ b/com.unity.netcode.gameobjects/TestHelpers/Runtime/NetcodeIntegrationTest.cs
@@ -466,14 +466,24 @@ private void AddRemoveNetworkManager(NetworkManager networkManager, bool addNetw
/// CreateAndStartNewClient Only
/// Invoked when the newly created client has been created
///
+ /// The NetworkManager instance of the client.
protected virtual void OnNewClientCreated(NetworkManager networkManager)
{
+ // Ensure any late joining client has all NetworkPrefabs required to connect.
+ foreach (var networkPrefab in m_ServerNetworkManager.NetworkConfig.Prefabs.Prefabs)
+ {
+ if (!networkManager.NetworkConfig.Prefabs.Contains(networkPrefab.Prefab))
+ {
+ networkManager.NetworkConfig.Prefabs.Add(networkPrefab);
+ }
+ }
}
///
/// CreateAndStartNewClient Only
/// Invoked when the newly created client has been created and started
///
+ /// The NetworkManager instance of the client.
protected virtual void OnNewClientStarted(NetworkManager networkManager)
{
}
@@ -483,6 +493,7 @@ protected virtual void OnNewClientStarted(NetworkManager networkManager)
/// Invoked when the newly created client has been created, started, and connected
/// to the server-host.
///
+ /// The NetworkManager instance of the client.
protected virtual void OnNewClientStartedAndConnected(NetworkManager networkManager)
{
}
@@ -494,6 +505,8 @@ protected virtual void OnNewClientStartedAndConnected(NetworkManager networkMana
///
/// Use this for testing connection and disconnection scenarios
///
+ /// The NetworkManager instance of the client.
+ /// True if the test should wait for the client to connect; otherwise, false.
protected virtual bool ShouldWaitForNewClientToConnect(NetworkManager networkManager)
{
return true;
@@ -503,6 +516,7 @@ protected virtual bool ShouldWaitForNewClientToConnect(NetworkManager networkMan
/// This will create, start, and connect a new client while in the middle of an
/// integration test.
///
+ /// An IEnumerator to be used in a coroutine for asynchronous execution.
protected IEnumerator CreateAndStartNewClient()
{
var networkManager = NetcodeIntegrationTestHelpers.CreateNewClient(m_ClientNetworkManagers.Length, m_EnableTimeTravel);
diff --git a/com.unity.netcode.gameobjects/Tests/Runtime/DeferredMessagingTests.cs b/com.unity.netcode.gameobjects/Tests/Runtime/DeferredMessagingTests.cs
index 02cab89b5e..5c2b0ca1d4 100644
--- a/com.unity.netcode.gameobjects/Tests/Runtime/DeferredMessagingTests.cs
+++ b/com.unity.netcode.gameobjects/Tests/Runtime/DeferredMessagingTests.cs
@@ -259,8 +259,7 @@ protected override void OnNewClientCreated(NetworkManager networkManager)
{
AddPrefabsToClient(networkManager);
}
-
- base.OnNewClientCreated(networkManager);
+ // Don't call base to avoid synchronizing the prefabs
}
private void SpawnClients(bool clearTestDeferredMessageManagerCallFlags = true)
diff --git a/com.unity.netcode.gameobjects/Tests/Runtime/DistributedAuthority/DistributeObjectsTests.cs b/com.unity.netcode.gameobjects/Tests/Runtime/DistributedAuthority/DistributeObjectsTests.cs
index 7957e6cf0c..69680d96f2 100644
--- a/com.unity.netcode.gameobjects/Tests/Runtime/DistributedAuthority/DistributeObjectsTests.cs
+++ b/com.unity.netcode.gameobjects/Tests/Runtime/DistributedAuthority/DistributeObjectsTests.cs
@@ -235,12 +235,6 @@ private bool ValidateTransformsMatch()
return true;
}
- protected override void OnNewClientCreated(NetworkManager networkManager)
- {
- networkManager.NetworkConfig.Prefabs = m_ServerNetworkManager.NetworkConfig.Prefabs;
- base.OnNewClientCreated(networkManager);
- }
-
private bool SpawnCountsMatch()
{
var passed = true;
diff --git a/com.unity.netcode.gameobjects/Tests/Runtime/DistributedAuthority/ExtendedNetworkShowAndHideTests.cs b/com.unity.netcode.gameobjects/Tests/Runtime/DistributedAuthority/ExtendedNetworkShowAndHideTests.cs
index 1ebb0f0411..94cdd8b02b 100644
--- a/com.unity.netcode.gameobjects/Tests/Runtime/DistributedAuthority/ExtendedNetworkShowAndHideTests.cs
+++ b/com.unity.netcode.gameobjects/Tests/Runtime/DistributedAuthority/ExtendedNetworkShowAndHideTests.cs
@@ -97,7 +97,6 @@ protected override void OnNewClientCreated(NetworkManager networkManager)
{
m_LateJoinClient = networkManager;
networkManager.NetworkConfig.EnableSceneManagement = m_EnableSceneManagement;
- networkManager.NetworkConfig.Prefabs = m_SpawnOwner.NetworkConfig.Prefabs;
base.OnNewClientCreated(networkManager);
}
diff --git a/com.unity.netcode.gameobjects/Tests/Runtime/DistributedAuthority/NetworkClientAndPlayerObjectTests.cs b/com.unity.netcode.gameobjects/Tests/Runtime/DistributedAuthority/NetworkClientAndPlayerObjectTests.cs
index 699b82d636..d768f60939 100644
--- a/com.unity.netcode.gameobjects/Tests/Runtime/DistributedAuthority/NetworkClientAndPlayerObjectTests.cs
+++ b/com.unity.netcode.gameobjects/Tests/Runtime/DistributedAuthority/NetworkClientAndPlayerObjectTests.cs
@@ -45,7 +45,6 @@ protected override void OnServerAndClientsCreated()
protected override void OnNewClientCreated(NetworkManager networkManager)
{
- networkManager.NetworkConfig.Prefabs = m_ServerNetworkManager.NetworkConfig.Prefabs;
if (m_DistributedAuthority)
{
networkManager.OnFetchLocalPlayerPrefabToSpawn = FetchPlayerPrefabToSpawn;
diff --git a/com.unity.netcode.gameobjects/Tests/Runtime/NetworkBehaviourPrePostSpawnTests.cs b/com.unity.netcode.gameobjects/Tests/Runtime/NetworkBehaviourPrePostSpawnTests.cs
index 00d3c08613..fc233a8653 100644
--- a/com.unity.netcode.gameobjects/Tests/Runtime/NetworkBehaviourPrePostSpawnTests.cs
+++ b/com.unity.netcode.gameobjects/Tests/Runtime/NetworkBehaviourPrePostSpawnTests.cs
@@ -93,12 +93,6 @@ protected override IEnumerator OnSetup()
return base.OnSetup();
}
- protected override void OnNewClientCreated(NetworkManager networkManager)
- {
- networkManager.NetworkConfig.Prefabs = m_ServerNetworkManager.NetworkConfig.Prefabs;
- base.OnNewClientCreated(networkManager);
- }
-
///
/// This validates that pre spawn can be used to instantiate and assign a NetworkVariable (or other prespawn tasks)
/// which can be useful for assigning a NetworkVariable value on the server side when the NetworkVariable has owner write permissions.
diff --git a/com.unity.netcode.gameobjects/Tests/Runtime/NetworkObject/NetworkObjectOnSpawnTests.cs b/com.unity.netcode.gameobjects/Tests/Runtime/NetworkObject/NetworkObjectOnSpawnTests.cs
index 841bad4dc7..8d8f02311f 100644
--- a/com.unity.netcode.gameobjects/Tests/Runtime/NetworkObject/NetworkObjectOnSpawnTests.cs
+++ b/com.unity.netcode.gameobjects/Tests/Runtime/NetworkObject/NetworkObjectOnSpawnTests.cs
@@ -86,13 +86,6 @@ private bool CheckClientsSideObserverTestObj()
///
protected override void OnNewClientCreated(NetworkManager networkManager)
{
- foreach (var networkPrefab in m_ServerNetworkManager.NetworkConfig.Prefabs.Prefabs)
- {
- if (!networkManager.NetworkConfig.Prefabs.Contains(networkPrefab.Prefab))
- {
- networkManager.NetworkConfig.Prefabs.Add(networkPrefab);
- }
- }
networkManager.NetworkConfig.EnableSceneManagement = m_ServerNetworkManager.NetworkConfig.EnableSceneManagement;
base.OnNewClientCreated(networkManager);
}
diff --git a/com.unity.netcode.gameobjects/Tests/Runtime/NetworkObject/NetworkObjectSynchronizationTests.cs b/com.unity.netcode.gameobjects/Tests/Runtime/NetworkObject/NetworkObjectSynchronizationTests.cs
index c4714d7fe3..fc59ad09dc 100644
--- a/com.unity.netcode.gameobjects/Tests/Runtime/NetworkObject/NetworkObjectSynchronizationTests.cs
+++ b/com.unity.netcode.gameobjects/Tests/Runtime/NetworkObject/NetworkObjectSynchronizationTests.cs
@@ -81,21 +81,16 @@ protected override void OnServerAndClientsCreated()
protected override void OnNewClientCreated(NetworkManager networkManager)
{
+ // Setup late joining client prefabs first
+ base.OnNewClientCreated(networkManager);
+
networkManager.NetworkConfig.PlayerPrefab = m_PlayerPrefab;
networkManager.NetworkConfig.EnsureNetworkVariableLengthSafety = m_VariableLengthSafety == VariableLengthSafety.EnabledNetVarSafety;
- foreach (var networkPrefab in m_ServerNetworkManager.NetworkConfig.Prefabs.Prefabs)
- {
- // To simulate a failure, we exclude the m_InValidNetworkPrefab from the connecting
- // client's side.
- if (networkPrefab.Prefab.name != m_InValidNetworkPrefab.name)
- {
- networkManager.NetworkConfig.Prefabs.Add(networkPrefab);
- }
- }
// Disable forcing the same prefabs to avoid failed connections
networkManager.NetworkConfig.ForceSamePrefabs = false;
networkManager.LogLevel = m_CurrentLogLevel;
- base.OnNewClientCreated(networkManager);
+ // To simulate a failure, exclude the m_InValidNetworkPrefab from the connecting client's side.
+ networkManager.NetworkConfig.Prefabs.Remove(m_InValidNetworkPrefab);
}
[UnityTest]
diff --git a/com.unity.netcode.gameobjects/Tests/Runtime/NetworkTransform/NetworkTransformBase.cs b/com.unity.netcode.gameobjects/Tests/Runtime/NetworkTransform/NetworkTransformBase.cs
index 4413b73fee..703ed7433e 100644
--- a/com.unity.netcode.gameobjects/Tests/Runtime/NetworkTransform/NetworkTransformBase.cs
+++ b/com.unity.netcode.gameobjects/Tests/Runtime/NetworkTransform/NetworkTransformBase.cs
@@ -338,7 +338,6 @@ protected override IEnumerator OnServerAndClientsConnected()
///
protected override void OnNewClientCreated(NetworkManager networkManager)
{
- networkManager.NetworkConfig.Prefabs = m_ServerNetworkManager.NetworkConfig.Prefabs;
networkManager.NetworkConfig.TickRate = GetTickRate();
if (m_EnableVerboseDebug)
{
diff --git a/com.unity.netcode.gameobjects/Tests/Runtime/NetworkTransform/NetworkTransformOwnershipTests.cs b/com.unity.netcode.gameobjects/Tests/Runtime/NetworkTransform/NetworkTransformOwnershipTests.cs
index 229a067758..64f6646005 100644
--- a/com.unity.netcode.gameobjects/Tests/Runtime/NetworkTransform/NetworkTransformOwnershipTests.cs
+++ b/com.unity.netcode.gameobjects/Tests/Runtime/NetworkTransform/NetworkTransformOwnershipTests.cs
@@ -91,20 +91,6 @@ protected override void OnServerAndClientsCreated()
base.OnServerAndClientsCreated();
}
- ///
- /// Clients created during a test need to have their prefabs list updated to
- /// match the server's prefab list.
- ///
- protected override void OnNewClientCreated(NetworkManager networkManager)
- {
- foreach (var networkPrefab in m_ServerNetworkManager.NetworkConfig.Prefabs.Prefabs)
- {
- networkManager.NetworkConfig.Prefabs.Add(networkPrefab);
- }
-
- base.OnNewClientCreated(networkManager);
- }
-
private bool ClientIsOwner()
{
var clientId = m_ClientNetworkManagers[0].LocalClientId;
diff --git a/com.unity.netcode.gameobjects/Tests/Runtime/NetworkTransform/NetworkTransformParentingTests.cs b/com.unity.netcode.gameobjects/Tests/Runtime/NetworkTransform/NetworkTransformParentingTests.cs
new file mode 100644
index 0000000000..896e7ddda2
--- /dev/null
+++ b/com.unity.netcode.gameobjects/Tests/Runtime/NetworkTransform/NetworkTransformParentingTests.cs
@@ -0,0 +1,183 @@
+using System.Collections;
+using Unity.Netcode.Components;
+using Unity.Netcode.TestHelpers.Runtime;
+using UnityEngine;
+using UnityEngine.TestTools;
+
+namespace Unity.Netcode.RuntimeTests
+{
+ internal class NetworkTransformParentingTests : IntegrationTestWithApproximation
+ {
+ ///
+ /// A NetworkBehaviour that moves in space.
+ /// When spawned on the client, an RPC is sent to the server to spawn a player object for that client.
+ /// The server parents the player object to the spawner object. This gives a moving parent object and a non-moving child object.
+ /// The child object should always be at {0,0,0} local space, while the parent object moves around.
+ /// This NetworkBehaviour tests that parenting to a moving object works as expected.
+ ///
+ internal class PlayerSpawner : NetworkBehaviour
+ {
+ ///
+ /// Prefab for the player
+ ///
+ public NetworkObject PlayerPrefab;
+
+ ///
+ /// The server side NetworkObject that was spawned when the client connected.
+ ///
+ public NetworkObject SpawnedPlayer;
+
+ ///
+ /// Represents the different movement states of the PlayerSpawner during the test lifecycle.
+ ///
+ public enum MoveState
+ {
+ // Initial state, PlayerSpawner will move without counting frames
+ NotStarted,
+ // The player object has been spawned, start counting frames
+ PlayerSpawned,
+ // We have moved far enough to test location
+ ReachedPeak,
+ }
+ public MoveState State = MoveState.NotStarted;
+
+ // A count of the number of updates since the player object was spawned.
+ private int m_Count;
+
+ // Movement offsets and targets.
+ private const float k_PositionOffset = 5.0f;
+ private const float k_RotationOffset = 25.0f;
+ private readonly Vector3 m_PositionTarget = Vector3.one * k_PositionOffset * 10;
+ private readonly Vector3 m_RotationTarget = Vector3.one * k_RotationOffset * 10;
+
+ private void Update()
+ {
+ if (!IsServer)
+ {
+ return;
+ }
+
+ transform.position = Vector3.Lerp(transform.position, m_PositionTarget, Time.deltaTime * 2);
+ var rotation = transform.rotation;
+ rotation.eulerAngles = Vector3.Slerp(rotation.eulerAngles, m_RotationTarget, Time.deltaTime * 2);
+ transform.rotation = rotation;
+
+ if (State != MoveState.PlayerSpawned)
+ {
+ return;
+ }
+
+ // Move self for some time after player object is spawned
+ // This ensures the parent object is moving throughout the spawn process.
+ m_Count++;
+ if (m_Count > 10)
+ {
+ // Mark PlayerSpawner as having moved far enough to test.
+ State = MoveState.ReachedPeak;
+ }
+ }
+
+ public override void OnNetworkSpawn()
+ {
+ if (IsOwner)
+ {
+ // Owner initialises PlayerSpawner movement on spawn
+ transform.position = Vector3.one * k_PositionOffset;
+ var rotation = transform.rotation;
+ rotation.eulerAngles = Vector3.one * k_RotationOffset;
+ transform.rotation = rotation;
+ }
+ else
+ {
+ // When spawned on a client, send the RPC to spawn the player object
+ // Using an RPC ensures the PlayerSpawner is moving for the entire spawning of the player object.
+ RequestPlayerObjectSpawnServerRpc();
+ }
+ }
+
+ ///
+ /// A ServerRpc that requests the server to spawn a player object for the client that invoked this RPC.
+ ///
+ /// Parameters for the ServerRpc, including the sender's client ID.
+ [ServerRpc(RequireOwnership = false)]
+ private void RequestPlayerObjectSpawnServerRpc(ServerRpcParams rpcParams = default)
+ {
+ SpawnedPlayer = Instantiate(PlayerPrefab);
+ SpawnedPlayer.SpawnAsPlayerObject(rpcParams.Receive.SenderClientId);
+ SpawnedPlayer.TrySetParent(NetworkObject, false);
+ State = MoveState.PlayerSpawned;
+ }
+ }
+
+ // Don't start with any clients, we will manually spawn a client inside the test
+ protected override int NumberOfClients => 0;
+
+ // Parent prefab with moving PlayerSpawner which will spawn the childPrefab
+ private GameObject m_PlayerSpawnerPrefab;
+
+ // Client and server instances
+ private PlayerSpawner m_ServerPlayerSpawner;
+ private NetworkObject m_NewClientPlayer;
+
+ protected override void OnServerAndClientsCreated()
+ {
+ m_PlayerSpawnerPrefab = CreateNetworkObjectPrefab("Parent");
+ var parentPlayerSpawner = m_PlayerSpawnerPrefab.AddComponent();
+ m_PlayerSpawnerPrefab.AddComponent();
+
+ var playerPrefab = CreateNetworkObjectPrefab("Child");
+ var childNetworkTransform = playerPrefab.AddComponent();
+ childNetworkTransform.AuthorityMode = NetworkTransform.AuthorityModes.Owner;
+ childNetworkTransform.InLocalSpace = true;
+
+ parentPlayerSpawner.PlayerPrefab = playerPrefab.GetComponent();
+
+ base.OnServerAndClientsCreated();
+ }
+
+ private bool NewPlayerObjectSpawned()
+ {
+ return m_ServerPlayerSpawner.SpawnedPlayer &&
+ m_ClientNetworkManagers[0].SpawnManager.SpawnedObjects.ContainsKey(m_ServerPlayerSpawner.SpawnedPlayer.NetworkObjectId);
+ }
+
+ private bool HasServerInstanceReachedPeakPoint()
+ {
+ VerboseDebug($"Client Local: {m_NewClientPlayer.transform.localPosition} Server Local: {m_ServerPlayerSpawner.SpawnedPlayer.transform.localPosition}");
+ return m_ServerPlayerSpawner.State == PlayerSpawner.MoveState.ReachedPeak;
+ }
+
+ private bool ServerClientPositionMatches()
+ {
+ return Approximately(m_NewClientPlayer.transform.localPosition, m_ServerPlayerSpawner.SpawnedPlayer.transform.localPosition) &&
+ Approximately(m_NewClientPlayer.transform.position, m_ServerPlayerSpawner.SpawnedPlayer.transform.position);
+ }
+
+ [UnityTest]
+ public IEnumerator TestParentedPlayerUsingLocalSpace()
+ {
+ // Spawn the PlayerSpawner object and save the instantiated component
+ // The PlayerSpawner object will start moving.
+ m_ServerPlayerSpawner = SpawnObject(m_PlayerSpawnerPrefab, m_ServerNetworkManager).GetComponent();
+
+ // Create a new client and connect to the server
+ // The client will prompt the server to spawn a player object and parent it to the PlayerSpawner object.
+ yield return CreateAndStartNewClient();
+
+ yield return WaitForConditionOrTimeOut(NewPlayerObjectSpawned);
+ AssertOnTimeout($"Client did not spawn new player object!");
+
+ // Save the spawned player object
+ m_NewClientPlayer = m_ClientNetworkManagers[0].SpawnManager.SpawnedObjects[m_ServerPlayerSpawner.SpawnedPlayer.NetworkObjectId];
+
+ // Let the parent PlayerSpawner move for several ticks to get an offset
+ yield return WaitForConditionOrTimeOut(HasServerInstanceReachedPeakPoint);
+ AssertOnTimeout($"Server instance never reached peak point!");
+
+ // Check that the client and server local positions match (they should both be at {0,0,0} local space)
+ yield return WaitForConditionOrTimeOut(ServerClientPositionMatches);
+ AssertOnTimeout($"Client local position {m_NewClientPlayer.transform.localPosition} does not match" +
+ $" server local position {m_ServerPlayerSpawner.SpawnedPlayer.transform.localPosition}");
+ }
+ }
+}
diff --git a/com.unity.netcode.gameobjects/Tests/Runtime/NetworkTransform/NetworkTransformParentingTests.cs.meta b/com.unity.netcode.gameobjects/Tests/Runtime/NetworkTransform/NetworkTransformParentingTests.cs.meta
new file mode 100644
index 0000000000..d3c09da900
--- /dev/null
+++ b/com.unity.netcode.gameobjects/Tests/Runtime/NetworkTransform/NetworkTransformParentingTests.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 26e2041cdadd44419941135a150b75bd
+timeCreated: 1743196812
\ No newline at end of file
diff --git a/pvpExceptions.json b/pvpExceptions.json
index e717d6626f..23263680db 100644
--- a/pvpExceptions.json
+++ b/pvpExceptions.json
@@ -238,12 +238,6 @@
"Unity.Netcode.TestHelpers.Runtime.NetcodeIntegrationTest: void OneTimeSetup(): undocumented",
"Unity.Netcode.TestHelpers.Runtime.NetcodeIntegrationTest: IEnumerator OnSetup(): missing ",
"Unity.Netcode.TestHelpers.Runtime.NetcodeIntegrationTest: IEnumerator SetUp(): undocumented",
- "Unity.Netcode.TestHelpers.Runtime.NetcodeIntegrationTest: void OnNewClientCreated(NetworkManager): missing ",
- "Unity.Netcode.TestHelpers.Runtime.NetcodeIntegrationTest: void OnNewClientStarted(NetworkManager): missing ",
- "Unity.Netcode.TestHelpers.Runtime.NetcodeIntegrationTest: void OnNewClientStartedAndConnected(NetworkManager): missing ",
- "Unity.Netcode.TestHelpers.Runtime.NetcodeIntegrationTest: bool ShouldWaitForNewClientToConnect(NetworkManager): missing ",
- "Unity.Netcode.TestHelpers.Runtime.NetcodeIntegrationTest: bool ShouldWaitForNewClientToConnect(NetworkManager): missing ",
- "Unity.Netcode.TestHelpers.Runtime.NetcodeIntegrationTest: IEnumerator CreateAndStartNewClient(): missing ",
"Unity.Netcode.TestHelpers.Runtime.NetcodeIntegrationTest: IEnumerator StopOneClient(NetworkManager, bool): missing ",
"Unity.Netcode.TestHelpers.Runtime.NetcodeIntegrationTest: IEnumerator StopOneClient(NetworkManager, bool): missing ",
"Unity.Netcode.TestHelpers.Runtime.NetcodeIntegrationTest: IEnumerator StopOneClient(NetworkManager, bool): missing ",
diff --git a/testproject/Assets/Tests/Runtime/Animation/NetworkAnimatorTests.cs b/testproject/Assets/Tests/Runtime/Animation/NetworkAnimatorTests.cs
index fe64a56431..7befcfab22 100644
--- a/testproject/Assets/Tests/Runtime/Animation/NetworkAnimatorTests.cs
+++ b/testproject/Assets/Tests/Runtime/Animation/NetworkAnimatorTests.cs
@@ -624,18 +624,6 @@ public IEnumerator TriggerUpdateTests()
VerboseDebug($" ------------------ Trigger Test [{TriggerTest.Iteration}][{m_OwnerShipMode}] Stopping ------------------ ");
}
- protected override void OnNewClientCreated(NetworkManager networkManager)
- {
- var networkPrefab = new NetworkPrefab() { Prefab = m_AnimationTestPrefab };
- networkManager.NetworkConfig.Prefabs.Add(networkPrefab);
- networkPrefab = new NetworkPrefab() { Prefab = m_AnimationOwnerTestPrefab };
- networkManager.NetworkConfig.Prefabs.Add(networkPrefab);
- networkPrefab = new NetworkPrefab() { Prefab = m_AnimationCheerTestPrefab };
- networkManager.NetworkConfig.Prefabs.Add(networkPrefab);
- networkPrefab = new NetworkPrefab() { Prefab = m_AnimationCheerOwnerTestPrefab };
- networkManager.NetworkConfig.Prefabs.Add(networkPrefab);
- }
-
///
/// Verifies that triggers are synchronized with currently connected clients
///
diff --git a/testproject/Assets/Tests/Runtime/DontDestroyOnLoadTests.cs b/testproject/Assets/Tests/Runtime/DontDestroyOnLoadTests.cs
index f3794d46b5..dcea70efdd 100644
--- a/testproject/Assets/Tests/Runtime/DontDestroyOnLoadTests.cs
+++ b/testproject/Assets/Tests/Runtime/DontDestroyOnLoadTests.cs
@@ -22,12 +22,6 @@ protected override void OnServerAndClientsCreated()
base.OnServerAndClientsCreated();
}
- protected override void OnNewClientCreated(NetworkManager networkManager)
- {
- networkManager.NetworkConfig.Prefabs = m_ServerNetworkManager.NetworkConfig.Prefabs;
- base.OnNewClientCreated(networkManager);
- }
-
private ulong m_SpawnedNetworkObjectId;
private StringBuilder m_ErrorLog = new StringBuilder();
diff --git a/testproject/Assets/Tests/Runtime/NetworkManagerTests.cs b/testproject/Assets/Tests/Runtime/NetworkManagerTests.cs
index b09dd5e291..5756f81b85 100644
--- a/testproject/Assets/Tests/Runtime/NetworkManagerTests.cs
+++ b/testproject/Assets/Tests/Runtime/NetworkManagerTests.cs
@@ -108,16 +108,12 @@ public enum ShutdownChecks
protected override void OnNewClientCreated(NetworkManager networkManager)
{
networkManager.NetworkConfig.EnableSceneManagement = m_UseSceneManagement;
- foreach (var prefab in m_ServerNetworkManager.NetworkConfig.Prefabs.Prefabs)
- {
- networkManager.NetworkConfig.Prefabs.Add(prefab);
- }
base.OnNewClientCreated(networkManager);
}
///
/// Validate shutting down a second time does not cause an exception.
- ///
+ ///
[UnityTest]
public IEnumerator ValidateShutdown([Values] ShutdownChecks shutdownCheck)
{
@@ -132,7 +128,7 @@ public IEnumerator ValidateShutdown([Values] ShutdownChecks shutdownCheck)
}
else
{
- // For this test (simplify the complexity) with a late joining client, just remove the
+ // For this test (simplify the complexity) with a late joining client, just remove the
// in-scene placed NetworkObject prior to the client connecting
// (We are testing the shutdown sequence)
var spawnedObjects = m_ServerNetworkManager.SpawnManager.SpawnedObjectsList.ToList();
diff --git a/testproject/Assets/Tests/Runtime/NetworkSceneManager/NetworkObjectSceneMigrationTests.cs b/testproject/Assets/Tests/Runtime/NetworkSceneManager/NetworkObjectSceneMigrationTests.cs
index ccfbf25b05..d5eb5f427c 100644
--- a/testproject/Assets/Tests/Runtime/NetworkSceneManager/NetworkObjectSceneMigrationTests.cs
+++ b/testproject/Assets/Tests/Runtime/NetworkSceneManager/NetworkObjectSceneMigrationTests.cs
@@ -59,19 +59,6 @@ protected override void OnServerAndClientsCreated()
base.OnServerAndClientsCreated();
}
- protected override void OnNewClientCreated(NetworkManager networkManager)
- {
- foreach (var networkPrfab in m_ServerNetworkManager.NetworkConfig.Prefabs.Prefabs)
- {
- if (networkPrfab.Prefab == null)
- {
- continue;
- }
- networkManager.NetworkConfig.Prefabs.Add(networkPrfab);
- }
- base.OnNewClientCreated(networkManager);
- }
-
private bool DidClientsSpawnInstance(NetworkObject serverObject, bool checkDestroyWithScene = false)
{
foreach (var networkManager in m_ClientNetworkManagers)
diff --git a/testproject/Assets/Tests/Runtime/ObjectParenting/ParentDynamicUnderInScenePlaced.cs b/testproject/Assets/Tests/Runtime/ObjectParenting/ParentDynamicUnderInScenePlaced.cs
index 20087214c0..5acf256de1 100644
--- a/testproject/Assets/Tests/Runtime/ObjectParenting/ParentDynamicUnderInScenePlaced.cs
+++ b/testproject/Assets/Tests/Runtime/ObjectParenting/ParentDynamicUnderInScenePlaced.cs
@@ -57,15 +57,6 @@ protected override IEnumerator OnStartedServerAndClients()
return base.OnStartedServerAndClients();
}
- protected override void OnNewClientCreated(NetworkManager networkManager)
- {
- foreach (var networkPrefab in m_ServerNetworkManager.NetworkConfig.Prefabs.Prefabs)
- {
- networkManager.NetworkConfig.Prefabs.Add(networkPrefab);
- }
- base.OnNewClientCreated(networkManager);
- }
-
protected override void OnNewClientStarted(NetworkManager networkManager)
{
m_ServerNetworkManager.SceneManager.SetClientSynchronizationMode(LoadSceneMode.Additive);
diff --git a/testproject/Assets/Tests/Runtime/ObjectParenting/ParentingWorldPositionStaysTests.cs b/testproject/Assets/Tests/Runtime/ObjectParenting/ParentingWorldPositionStaysTests.cs
index cd8f6a1bc7..84829a6c8e 100644
--- a/testproject/Assets/Tests/Runtime/ObjectParenting/ParentingWorldPositionStaysTests.cs
+++ b/testproject/Assets/Tests/Runtime/ObjectParenting/ParentingWorldPositionStaysTests.cs
@@ -218,14 +218,6 @@ protected override void OnServerAndClientsCreated()
base.OnServerAndClientsCreated();
}
- protected override void OnNewClientCreated(NetworkManager networkManager)
- {
- foreach (var networkPrefab in m_ServerNetworkManager.NetworkConfig.Prefabs.Prefabs)
- {
- networkManager.NetworkConfig.Prefabs.Add(networkPrefab);
- }
- }
-
private bool HaveAllClientsSpawnedObjects()
{
foreach (var client in m_ClientNetworkManagers)
diff --git a/testproject/Assets/Tests/Runtime/PrefabExtendedTests.cs b/testproject/Assets/Tests/Runtime/PrefabExtendedTests.cs
index 16bc79e900..7bfe12083f 100644
--- a/testproject/Assets/Tests/Runtime/PrefabExtendedTests.cs
+++ b/testproject/Assets/Tests/Runtime/PrefabExtendedTests.cs
@@ -129,11 +129,10 @@ protected override void OnNewClientCreated(NetworkManager networkManager)
{
networkManager.NetworkConfig.EnableSceneManagement = m_SceneManagementEnabled;
networkManager.NetworkConfig.Prefabs.NetworkPrefabsLists.Add(PrefabTestConfig.Instance.TestPrefabs);
- base.OnNewClientCreated(networkManager);
}
///
- /// Validates that all spawned NetworkObjects are present and their corresponding
+ /// Validates that all spawned NetworkObjects are present and their corresponding
/// GlobalObjectIdHash values match
///
private bool ValidateAllClientsSpawnedObjects()
@@ -220,7 +219,7 @@ public IEnumerator TestPrefabsSpawning([Values] InstantiateAndSpawnMethods insta
yield return CreateAndStartNewClient();
var spawnManager = m_ServerNetworkManager.SpawnManager;
- // If scene management is enabled, then we want to verify against the editor
+ // If scene management is enabled, then we want to verify against the editor
// assigned in-scene placed NetworkObjects
if (m_SceneManagementEnabled)
{
@@ -287,7 +286,7 @@ public IEnumerator TestPrefabsSpawning([Values] InstantiateAndSpawnMethods insta
[UnityTest]
public IEnumerator TestsInstantiateAndSpawnErrors([Values] InstantiateAndSpawnMethods instantiateAndSpawnType)
{
- // If scene management is enabled, then we want to verify against the editor
+ // If scene management is enabled, then we want to verify against the editor
// assigned in-scene placed NetworkObjects
if (m_SceneManagementEnabled)
{
@@ -328,7 +327,7 @@ public IEnumerator TestsInstantiateAndSpawnErrors([Values] InstantiateAndSpawnMe
m_ServerNetworkManager.Shutdown();
LogAssert.Expect(LogType.Warning, NetworkSpawnManager.InstantiateAndSpawnErrors[NetworkSpawnManager.InstantiateAndSpawnErrorTypes.InvokedWhenShuttingDown]);
InstantiateAndSpawn(m_ObjectsToSpawn[0], instantiateAndSpawnType);
- // The not listening error can only happen when trying to instantiate and spawn on a Network Prefab
+ // The not listening error can only happen when trying to instantiate and spawn on a Network Prefab
if (instantiateAndSpawnType == InstantiateAndSpawnMethods.NetworkObject)
{
LogAssert.Expect(LogType.Error, NetworkSpawnManager.InstantiateAndSpawnErrors[NetworkSpawnManager.InstantiateAndSpawnErrorTypes.NoActiveSession]);