Skip to content

Client cannot join host when player prefab dynamically adds a parent to its transform #1211

Closed
@LPLafontaineB

Description

@LPLafontaineB

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:

  1. Set up basic networking game with at least one gameobject in a scene that is not the player.
  2. Add a script to the player prefab that adds parenting to its transform via gameObject.transform.SetParent() in the Start() method.
  3. Launch one instance of the game as Host.
  4. 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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    type:supportQuestions or other support

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions