From 18f5a10e1a52ec49de25aacdfce363ef248e835a Mon Sep 17 00:00:00 2001 From: Emma Date: Mon, 15 Jun 2026 17:45:14 -0400 Subject: [PATCH] fix: Reset cached parent when AutoObjectParentSync is false. --- .../Runtime/Core/NetworkObject.cs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/com.unity.netcode.gameobjects/Runtime/Core/NetworkObject.cs b/com.unity.netcode.gameobjects/Runtime/Core/NetworkObject.cs index 73cc6c7e2d..ddca7c9e72 100644 --- a/com.unity.netcode.gameobjects/Runtime/Core/NetworkObject.cs +++ b/com.unity.netcode.gameobjects/Runtime/Core/NetworkObject.cs @@ -2368,11 +2368,22 @@ internal bool InternalTrySetParent(NetworkObject parent, bool worldPositionStays private void OnTransformParentChanged() { var networkManager = NetworkManager; - if (!AutoObjectParentSync || (networkManager != null && networkManager.ShutdownInProgress)) + if (networkManager != null && networkManager.ShutdownInProgress) { return; } + if (!AutoObjectParentSync) + { + // If this setting is off, we shouldn't be tracking parenting changes + // Ensure any tracking we do have is cleared. + if (m_CachedParent != null) + { + SetCachedParent(null); + } + return; + } + if (transform.parent == m_CachedParent) { return; @@ -2388,7 +2399,6 @@ private void OnTransformParentChanged() if (!IsSpawned) { - AuthorityAppliedParenting = false; // and we are removing the parent, then go ahead and allow parenting to occur if (transform.parent == null) { @@ -2398,6 +2408,7 @@ private void OnTransformParentChanged() } else { + AuthorityAppliedParenting = false; transform.parent = m_CachedParent; if (networkManager.LogLevel <= LogLevel.Error) {