From ce00f0de3f50900ded3e52103381adbfb50449d3 Mon Sep 17 00:00:00 2001 From: James Frowen Date: Wed, 4 Sep 2024 20:46:28 +0100 Subject: [PATCH] fix: fixing NRE when DestroyObject is called on unspawned object SendToRemoteObservers throws because server reference is not set --- Assets/Mirage/Runtime/ServerObjectManager.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Assets/Mirage/Runtime/ServerObjectManager.cs b/Assets/Mirage/Runtime/ServerObjectManager.cs index 2a29fc6fac..b1914fc872 100644 --- a/Assets/Mirage/Runtime/ServerObjectManager.cs +++ b/Assets/Mirage/Runtime/ServerObjectManager.cs @@ -597,7 +597,13 @@ public void Destroy(NetworkIdentity identity, bool destroyServerObject = true) private void DestroyObject(NetworkIdentity identity, bool destroyServerObject) { - if (logger.LogEnabled()) logger.Log("DestroyObject instance:" + identity.NetId); + if (identity.NetId == 0) + { + if (logger.WarnEnabled()) logger.LogWarning("DestroyObject instance:" + identity.NetId); + return; + } + + if (logger.LogEnabled()) logger.Log($"DestroyObject NetId={identity.NetId}"); _server.World.RemoveIdentity(identity); identity.Owner?.RemoveOwnedObject(identity);