Skip to content

Commit 2e4f489

Browse files
committed
chore: started replacing exceptions
1 parent 3491f14 commit 2e4f489

File tree

1 file changed

+87
-23
lines changed

1 file changed

+87
-23
lines changed

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

Lines changed: 87 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1458,7 +1458,10 @@ internal NetworkSceneHandle GetSceneOriginHandle()
14581458
{
14591459
if (SceneOriginHandle.IsEmpty() && IsSpawned && IsSceneObject != false)
14601460
{
1461-
throw new Exception($"{nameof(GetSceneOriginHandle)} called when {nameof(SceneOriginHandle)} is still zero but the {nameof(NetworkObject)} is already spawned!");
1461+
if (NetworkManager.LogLevel <= LogLevel.Error)
1462+
{
1463+
NetworkLog.LogErrorServer($"{nameof(GetSceneOriginHandle)} called when {nameof(SceneOriginHandle)} is still zero but the {nameof(NetworkObject)} is already spawned!");
1464+
}
14621465
}
14631466
return !SceneOriginHandle.IsEmpty() ? SceneOriginHandle : gameObject.scene.handle;
14641467
}
@@ -1481,31 +1484,47 @@ public void NetworkShow(ulong clientId)
14811484
{
14821485
if (!IsSpawned)
14831486
{
1484-
throw new SpawnStateException("Object is not spawned");
1487+
if (NetworkManagerOwner.LogLevel <= LogLevel.Normal)
1488+
{
1489+
NetworkLog.LogWarning($"Trying to show {name} but is not spawned!");
1490+
}
14851491
}
14861492

14871493
if (!HasAuthority)
14881494
{
14891495
if (NetworkManagerOwner.DistributedAuthorityMode)
14901496
{
1491-
throw new NotServerException($"Only the owner-authority can change visibility when distributed authority mode is enabled!");
1497+
if (NetworkManagerOwner.LogLevel <= LogLevel.Normal)
1498+
{
1499+
NetworkLog.LogWarning($"Only the owner-authority of {name} can change it's visibility when distributed authority mode is enabled!");
1500+
}
14921501
}
14931502
else
14941503
{
1495-
throw new NotServerException("Only the authority can change visibility");
1504+
if (NetworkManagerOwner.LogLevel <= LogLevel.Normal)
1505+
{
1506+
NetworkLog.LogWarning($"Only the authority of {name} can change it's visibility!");
1507+
}
14961508
}
14971509
}
14981510

1511+
//CHECK this logic
14991512
if (Observers.Contains(clientId))
15001513
{
15011514
if (NetworkManagerOwner.DistributedAuthorityMode)
15021515
{
1503-
Debug.LogError($"The object {name} is already visible to Client-{clientId}!");
1516+
if (NetworkManagerOwner.LogLevel <= LogLevel.Normal)
1517+
{
1518+
NetworkLog.LogError($"The object {name} is already visible to Client-{clientId}!");
1519+
}
15041520
return;
15051521
}
15061522
else
15071523
{
1508-
throw new NotServerException("Only server can change visibility");
1524+
if (NetworkManagerOwner.LogLevel <= LogLevel.Normal)
1525+
{
1526+
NetworkLog.LogWarning($"Only the server of {name} can change it's visibility!");
1527+
}
15091528
}
15101529
}
15111530

@@ -1568,18 +1587,27 @@ public void NetworkHide(ulong clientId)
15681587
{
15691588
if (!IsSpawned)
15701589
{
1571-
throw new SpawnStateException("Object is not spawned");
1590+
if (NetworkManager.LogLevel <= LogLevel.Error)
1591+
{
1592+
NetworkLog.LogErrorServer($"[{name}][Attempted NetworkHide while {nameof(NetworkObject)} is not spawned!]");
1593+
}
15721594
}
15731595

15741596
if (!HasAuthority && !NetworkManagerOwner.DAHost)
15751597
{
15761598
if (NetworkManagerOwner.DistributedAuthorityMode)
15771599
{
1578-
throw new NotServerException($"Only the owner-authority can change visibility when distributed authority mode is enabled!");
1600+
if (NetworkManager.LogLevel <= LogLevel.Error)
1601+
{
1602+
NetworkLog.LogErrorServer($"[{name}][Only the owner-authority can change visibility when distributed authority mode is enabled!]");
1603+
}
15791604
}
15801605
else
15811606
{
1582-
throw new NotServerException("Only the authority can change visibility");
1607+
if (NetworkManager.LogLevel <= LogLevel.Error)
1608+
{
1609+
NetworkLog.LogErrorServer($"[{name}][Only the authority can change visibility!]");
1610+
}
15831611
}
15841612
}
15851613

@@ -1589,9 +1617,9 @@ public void NetworkHide(ulong clientId)
15891617
{
15901618
if (NetworkManagerOwner.LogLevel <= LogLevel.Developer)
15911619
{
1592-
Debug.LogWarning($"{name} is already hidden from Client-{clientId}! (ignoring)");
1593-
return;
1620+
NetworkLog.LogWarning($"[{name}][{nameof(NetworkObject)} already hidden from Client-{clientId}! (ignoring)]");
15941621
}
1622+
return;
15951623
}
15961624
Observers.Remove(clientId);
15971625

@@ -1724,18 +1752,27 @@ internal void SpawnInternal(bool destroyWithScene, ulong ownerClientId, bool pla
17241752

17251753
if (!NetworkManagerOwner.IsListening)
17261754
{
1727-
throw new NotListeningException($"{nameof(NetworkManagerOwner)} is not listening, start a server or host before spawning objects");
1755+
if (NetworkManagerOwner.LogLevel <= LogLevel.Developer)
1756+
{
1757+
NetworkLog.LogErrorServer($"[{name}][{nameof(NetworkManagerOwner)} is not listening, start a server or host before spawning objects]");
1758+
}
17281759
}
17291760

17301761
if ((!NetworkManagerOwner.IsServer && !NetworkManagerOwner.DistributedAuthorityMode) || (NetworkManagerOwner.DistributedAuthorityMode && !NetworkManagerOwner.LocalClient.IsSessionOwner && NetworkManagerOwner.LocalClientId != ownerClientId))
17311762
{
17321763
if (NetworkManagerOwner.DistributedAuthorityMode)
17331764
{
1734-
throw new NotServerException($"When distributed authority mode is enabled, you can only spawn NetworkObjects that belong to the local instance! Local instance id {NetworkManagerOwner.LocalClientId} is not the same as the assigned owner id: {ownerClientId}!");
1765+
if (NetworkManagerOwner.LogLevel <= LogLevel.Developer)
1766+
{
1767+
NetworkLog.LogError($"[{name}][When distributed authority mode is enabled, you can only spawn NetworkObjects that belong to the local instance! Local instance id {NetworkManagerOwner.LocalClientId} is not the same as the assigned owner id: {ownerClientId}!]");
1768+
}
17351769
}
17361770
else
17371771
{
1738-
throw new NotServerException($"Only server can spawn {nameof(NetworkObject)}s");
1772+
if (NetworkManagerOwner.LogLevel <= LogLevel.Developer)
1773+
{
1774+
NetworkLog.LogError($"[{name}][Only server can spawn {nameof(NetworkObject)}s]");
1775+
}
17391776
}
17401777
}
17411778

@@ -2256,7 +2293,10 @@ private void OnTransformParentChanged()
22562293
return;
22572294
}
22582295
transform.parent = m_CachedParent;
2259-
Debug.LogException(new NotListeningException($"[{name}] {nameof(networkManager)} is not listening, start a server or host before re-parenting"));
2296+
if (NetworkManagerOwner.LogLevel <= LogLevel.Developer)
2297+
{
2298+
NetworkLog.LogError($"[{name}] {nameof(networkManager)} is not listening, start a server or host before re-parenting");
2299+
}
22602300
return;
22612301
}
22622302

@@ -2273,7 +2313,10 @@ private void OnTransformParentChanged()
22732313
else
22742314
{
22752315
transform.parent = m_CachedParent;
2276-
Debug.LogException(new SpawnStateException($"[{name}] {nameof(NetworkObject)} can only be re-parented after being spawned"));
2316+
if (NetworkManagerOwner.LogLevel <= LogLevel.Developer)
2317+
{
2318+
NetworkLog.LogError($"[{name}] {nameof(NetworkObject)} can only be re-parented after being spawned!");
2319+
}
22772320
}
22782321
return;
22792322
}
@@ -2289,11 +2332,17 @@ private void OnTransformParentChanged()
22892332
{
22902333
if (networkManager.DistributedAuthorityMode)
22912334
{
2292-
NetworkLog.LogError($"[{name}][Not Owner] Only the owner-authority of child {gameObject.name}'s {nameof(NetworkObject)} component can re-parent it!");
2335+
if (NetworkManagerOwner.LogLevel <= LogLevel.Developer)
2336+
{
2337+
NetworkLog.LogError($"[{name}][Not Owner] Only the owner-authority of child {gameObject.name}'s {nameof(NetworkObject)} component can re-parent it!");
2338+
}
22932339
}
22942340
else
22952341
{
2296-
Debug.LogException(new NotServerException($"[{name}] Only the server can re-parent {nameof(NetworkObject)}s"));
2342+
if (NetworkManagerOwner.LogLevel <= LogLevel.Developer)
2343+
{
2344+
NetworkLog.LogError($"[{name}] Only the server can re-parent {nameof(NetworkObject)}s");
2345+
}
22972346
}
22982347
}
22992348
return;
@@ -2307,14 +2356,20 @@ private void OnTransformParentChanged()
23072356
{
23082357
transform.parent = m_CachedParent;
23092358
AuthorityAppliedParenting = false;
2310-
Debug.LogException(new InvalidParentException($"[{name}] Invalid parenting, {nameof(NetworkObject)} moved under a non-{nameof(NetworkObject)} parent"));
2359+
if (NetworkManagerOwner.LogLevel <= LogLevel.Developer)
2360+
{
2361+
NetworkLog.LogError($"[{name}] Invalid parenting, {nameof(NetworkObject)} moved under a non-{nameof(NetworkObject)} parent");
2362+
}
23112363
return;
23122364
}
23132365
else if (!parentObject.IsSpawned)
23142366
{
23152367
transform.parent = m_CachedParent;
23162368
AuthorityAppliedParenting = false;
2317-
Debug.LogException(new SpawnStateException($"[{name}] {nameof(NetworkObject)} can only be re-parented under another spawned {nameof(NetworkObject)}"));
2369+
if (NetworkManagerOwner.LogLevel <= LogLevel.Developer)
2370+
{
2371+
NetworkLog.LogError($"[{name}] {nameof(NetworkObject)} can only be re-parented under another spawned {nameof(NetworkObject)}");
2372+
}
23182373
return;
23192374
}
23202375

@@ -2531,12 +2586,15 @@ internal void InvokeBehaviourNetworkSpawn()
25312586
// This assures all NetworkVariables and RPC related tables have been initialized
25322587
// prior to invoking OnNetworkSpawn so cross NetworkBehaviour:
25332588
// - accessing of NetworkVariables will work correctly.
2534-
// - invocation of RPCs will work properly (and not throw exception under certain scenarios)
2589+
// - invocation of RPCs will work properly (and not throw exception under certain scenarios) CHECK this comment about exceptions
25352590
foreach (var childBehaviour in ChildNetworkBehaviours)
25362591
{
25372592
if (!childBehaviour.gameObject.activeInHierarchy)
25382593
{
2539-
Debug.LogWarning($"{GenerateDisabledNetworkBehaviourWarning(childBehaviour)}");
2594+
if (NetworkManagerOwner.LogLevel <= LogLevel.Developer)
2595+
{
2596+
NetworkLog.LogWarning($"{GenerateDisabledNetworkBehaviourWarning(childBehaviour)}");
2597+
}
25402598
continue;
25412599
}
25422600
childBehaviour.InternalOnNetworkSpawn();
@@ -2992,6 +3050,7 @@ public void Serialize(FastBufferWriter writer)
29923050

29933051
if (!writer.TryBeginWrite(writeSize))
29943052
{
3053+
//CHECK should we remove this exception?
29953054
throw new OverflowException("Could not serialize SceneObject: Out of buffer space.");
29963055
}
29973056

@@ -3079,6 +3138,7 @@ public void Deserialize(FastBufferReader reader)
30793138
// Try to begin reading the remaining bytes
30803139
if (!reader.TryBeginRead(readSize))
30813140
{
3141+
//CHECK should we remove this exception too?
30823142
throw new OverflowException("Could not deserialize SceneObject: Reading past the end of the buffer");
30833143
}
30843144

@@ -3280,6 +3340,7 @@ internal static NetworkObject Deserialize(in SerializedObject serializedObject,
32803340
}
32813341
catch (Exception ex)
32823342
{
3343+
//CHECK exception too
32833344
Debug.LogException(ex);
32843345
}
32853346

@@ -3327,7 +3388,10 @@ internal static NetworkObject Deserialize(in SerializedObject serializedObject,
33273388
// Spawn the NetworkObject
33283389
if (networkObject.IsSpawned)
33293390
{
3330-
throw new SpawnStateException($"[{networkObject.name}] Object-{networkObject.NetworkObjectId} is already spawned!");
3391+
if (NetworkManager.Singleton.LogLevel <= LogLevel.Developer)
3392+
{
3393+
NetworkLog.LogErrorServer($"[{networkObject.name}] Object-{networkObject.NetworkObjectId} is already spawned!");
3394+
}
33313395
}
33323396

33333397
// Invoke the non-authority local spawn method

0 commit comments

Comments
 (0)