Skip to content

Commit eab178e

Browse files
fix
Fixing exception that could be thrown in NetworkLog if there is no NetworkManager instance. Adding additional check in NetworkObject.OnNetworkBehaviourDestroyed to assure nothing is ever logged about destroying a NetworkBehaviour when shutting down and the NetworkObject is still considered spawned.
1 parent 1495955 commit eab178e

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

com.unity.netcode.gameobjects/Runtime/Core/NetworkObject.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3647,7 +3647,8 @@ internal void OnNetworkBehaviourDestroyed(NetworkBehaviour networkBehaviour)
36473647
{
36483648
if (networkBehaviour.IsSpawned && IsSpawned)
36493649
{
3650-
if (NetworkManagerOwner.LogLevel <= LogLevel.Developer)
3650+
// Only log this warning if we are not shutting down.
3651+
if (!NetworkManagerOwner.ShutdownInProgress && NetworkManagerOwner.LogLevel <= LogLevel.Developer)
36513652
{
36523653
NetworkLog.LogWarning($"{nameof(NetworkBehaviour)}-{networkBehaviour.name} is being destroyed while {nameof(NetworkObject)}-{name} is still spawned! (could break state synchronization)");
36533654
}

com.unity.netcode.gameobjects/Runtime/Logging/NetworkLog.cs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,14 +113,21 @@ private static void LogServer(string message, LogType logType)
113113
}
114114
}
115115

116+
private const string k_HeaderStart = "Netcode";
116117
private static string Header()
117118
{
118119
var networkManager = NetworkManagerOverride ??= NetworkManager.Singleton;
119-
if (networkManager.DistributedAuthorityMode)
120+
if (networkManager != null)
120121
{
121-
return "Session-Owner";
122+
if (networkManager.DistributedAuthorityMode)
123+
{
124+
return $"{k_HeaderStart}-Session-Owner";
125+
}
126+
return $"{k_HeaderStart}-Server";
122127
}
123-
return "Netcode-Server";
128+
129+
// If NetworkManager no longer exists, then return the generic header
130+
return k_HeaderStart;
124131
}
125132

126133
internal static void LogInfoServerLocal(string message, ulong sender) => Debug.Log($"[{Header()} Sender={sender}] {message}");

0 commit comments

Comments
 (0)