diff --git a/Assets/Mirror/Components/NetworkTransformReliable/NetworkTransformReliable.cs b/Assets/Mirror/Components/NetworkTransformReliable/NetworkTransformReliable.cs index 723d1c8f6..0e983db4a 100644 --- a/Assets/Mirror/Components/NetworkTransformReliable/NetworkTransformReliable.cs +++ b/Assets/Mirror/Components/NetworkTransformReliable/NetworkTransformReliable.cs @@ -133,7 +133,7 @@ protected virtual void OnClientToServerSync(Vector3? position, Quaternion? rotat target.localScale); // Debug.Log($"{name}: corrected history on server to fix initial stutter after not sending for a while."); } - + AddSnapshot(serverSnapshots, connectionToClient.remoteTimeStamp, position, rotation, scale); } @@ -310,7 +310,11 @@ void UpdateServer() // -> don't apply for host mode player objects either, even if in // client authority mode. if it doesn't go over the network, // then we don't need to do anything. - if (syncDirection == SyncDirection.ClientToServer && !isOwned) + // -> connectionToClient is briefly null after scene changes: + // https://github.com/MirrorNetworking/Mirror/issues/3329 + if (syncDirection == SyncDirection.ClientToServer && + connectionToClient != null && + !isOwned) { if (serverSnapshots.Count > 0) { diff --git a/Assets/Mirror/Components/NetworkTransformUnreliable/NetworkTransform.cs b/Assets/Mirror/Components/NetworkTransformUnreliable/NetworkTransform.cs index 959806eff..2a59dcb74 100644 --- a/Assets/Mirror/Components/NetworkTransformUnreliable/NetworkTransform.cs +++ b/Assets/Mirror/Components/NetworkTransformUnreliable/NetworkTransform.cs @@ -1,8 +1,6 @@ // NetworkTransform V2 by mischa (2021-07) // comment out the below line to quickly revert the onlySyncOnChange feature #define onlySyncOnChange_BANDWIDTH_SAVING -using System; -using System.Collections.Generic; using UnityEngine; namespace Mirror @@ -234,7 +232,11 @@ void UpdateServer() // -> don't apply for host mode player objects either, even if in // client authority mode. if it doesn't go over the network, // then we don't need to do anything. - if (syncDirection == SyncDirection.ClientToServer && !isOwned) + // -> connectionToClient is briefly null after scene changes: + // https://github.com/MirrorNetworking/Mirror/issues/3329 + if (syncDirection == SyncDirection.ClientToServer && + connectionToClient != null && + !isOwned) { if (serverSnapshots.Count > 0) {