Description
Describe the bug
When a player prefab contains a script that dynamically adds a parent to its transform, the client cannot join a game hosted by another client.
To Reproduce
Steps to reproduce the behavior:
- Set up basic networking game with at least one gameobject in a scene that is not the player.
- Add a script to the player prefab that adds parenting to its transform via gameObject.transform.SetParent() in the Start() method.
- Launch one instance of the game as Host.
- Launch another instance and try to join as Client.
Actual outcome
The client cannot join and an exception is raised.
Expected outcome
The client can join.
Environment
- OS: Windows 10
- Unity Version: 2021.2.0b12
- Netcode Commit: 2225a010
Stack trace
OverflowException: Attempted to read without first calling TryBeginRead()
Unity.Netcode.NetworkObject+SceneObject.Deserialize (Unity.Netcode.FastBufferReader& reader) (at C:/Users/louisphilippe.lb/Documents/com.unity.netcode.gameobjects/com.unity.netcode.gameobjects/Runtime/Core/NetworkObject.cs:1016)
Unity.Netcode.SceneEventData.SynchronizeSceneNetworkObjects (Unity.Netcode.NetworkManager networkManager) (at C:/Users/louisphilippe.lb/Documents/com.unity.netcode.gameobjects/com.unity.netcode.gameobjects/Runtime/SceneManagement/SceneEventData.cs:693)
Unity.Netcode.NetworkSceneManager.HandleClientSceneEvent () (at C:/Users/louisphilippe.lb/Documents/com.unity.netcode.gameobjects/com.unity.netcode.gameobjects/Runtime/SceneManagement/NetworkSceneManager.cs:1385)
Unity.Netcode.NetworkSceneManager.ClientLoadedSynchronization (System.UInt32 sceneIndex, System.Int32 sceneHandle) (at C:/Users/louisphilippe.lb/Documents/com.unity.netcode.gameobjects/com.unity.netcode.gameobjects/Runtime/SceneManagement/NetworkSceneManager.cs:1353)
Unity.Netcode.NetworkSceneManager.OnClientBeginSync () (at C:/Users/louisphilippe.lb/Documents/com.unity.netcode.gameobjects/com.unity.netcode.gameobjects/Runtime/SceneManagement/NetworkSceneManager.cs:1288)
Unity.Netcode.NetworkSceneManager.HandleClientSceneEvent () (at C:/Users/louisphilippe.lb/Documents/com.unity.netcode.gameobjects/com.unity.netcode.gameobjects/Runtime/SceneManagement/NetworkSceneManager.cs:1378)
Unity.Netcode.NetworkSceneManager.HandleSceneEvent (System.UInt64 clientId, Unity.Netcode.FastBufferReader& reader) (at C:/Users/louisphilippe.lb/Documents/com.unity.netcode.gameobjects/com.unity.netcode.gameobjects/Runtime/SceneManagement/NetworkSceneManager.cs:1541)
Unity.Netcode.SceneEventMessage.Receive (Unity.Netcode.FastBufferReader& reader, Unity.Netcode.NetworkContext context) (at C:/Users/louisphilippe.lb/Documents/com.unity.netcode.gameobjects/com.unity.netcode.gameobjects/Runtime/Messaging/Messages/SceneEventMessage.cs:16)
Unity.Netcode.MessagingSystem.HandleMessage (Unity.Netcode.MessageHeader& header, Unity.Netcode.FastBufferReader& reader, System.UInt64 senderId, System.Single timestamp) (at C:/Users/louisphilippe.lb/Documents/com.unity.netcode.gameobjects/com.unity.netcode.gameobjects/Runtime/Messaging/MessagingSystem.cs:301)
UnityEngine.Debug:LogException(Exception)
Unity.Netcode.MessagingSystem:HandleMessage(MessageHeader&, FastBufferReader&, UInt64, Single) (at C:/Users/louisphilippe.lb/Documents/com.unity.netcode.gameobjects/com.unity.netcode.gameobjects/Runtime/Messaging/MessagingSystem.cs:305)
Unity.Netcode.MessagingSystem:ProcessIncomingMessageQueue() (at C:/Users/louisphilippe.lb/Documents/com.unity.netcode.gameobjects/com.unity.netcode.gameobjects/Runtime/Messaging/MessagingSystem.cs:321)
Unity.Netcode.NetworkManager:OnNetworkEarlyUpdate() (at C:/Users/louisphilippe.lb/Documents/com.unity.netcode.gameobjects/com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs:1096)
Unity.Netcode.NetworkManager:NetworkUpdate(NetworkUpdateStage) (at C:/Users/louisphilippe.lb/Documents/com.unity.netcode.gameobjects/com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs:1067)
Unity.Netcode.NetworkUpdateLoop:RunNetworkUpdateStage(NetworkUpdateStage) (at C:/Users/louisphilippe.lb/Documents/com.unity.netcode.gameobjects/com.unity.netcode.gameobjects/Runtime/Core/NetworkUpdateLoop.cs:149)
Unity.Netcode.<>c:b__0_0() (at C:/Users/louisphilippe.lb/Documents/com.unity.netcode.gameobjects/com.unity.netcode.gameobjects/Runtime/Core/NetworkUpdateLoop.cs:172)