Skip to content

Commit abb8544

Browse files
refactor
Refactoring the NetworkObject check.
1 parent e0143f7 commit abb8544

File tree

2 files changed

+21
-23
lines changed

2 files changed

+21
-23
lines changed

com.unity.netcode.gameobjects/Runtime/Connection/NetworkConnectionManager.cs

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -885,16 +885,23 @@ internal void HandleConnectionApproval(ulong ownerClientId, bool createPlayerObj
885885
var playerObject = playerPrefabHash.HasValue ? NetworkManager.SpawnManager.GetNetworkObjectToSpawn(playerPrefabHash.Value, ownerClientId, playerPosition, playerRotation)
886886
: NetworkManager.SpawnManager.GetNetworkObjectToSpawn(NetworkManager.NetworkConfig.PlayerPrefab.GetComponent<NetworkObject>().GlobalObjectIdHash, ownerClientId, playerPosition, playerRotation);
887887

888-
// Spawn the player NetworkObject locally
889-
NetworkManager.SpawnManager.AuthorityLocalSpawn(
890-
playerObject,
891-
NetworkManager.SpawnManager.GetNetworkObjectId(),
892-
sceneObject: false,
893-
playerObject: true,
894-
ownerClientId,
895-
destroyWithScene: false);
896-
897-
client.AssignPlayerObject(ref playerObject);
888+
if (playerObject == null)
889+
{
890+
Debug.LogError($"[{nameof(NetworkObject)}] Player prefab is null! Cannot spawn player object!");
891+
}
892+
else
893+
{
894+
// Spawn the player NetworkObject locally
895+
NetworkManager.SpawnManager.AuthorityLocalSpawn(
896+
playerObject,
897+
NetworkManager.SpawnManager.GetNetworkObjectId(),
898+
sceneObject: false,
899+
playerObject: true,
900+
ownerClientId,
901+
destroyWithScene: false);
902+
903+
client.AssignPlayerObject(ref playerObject);
904+
}
898905
}
899906

900907
if (ownerClientId == NetworkManager.ServerClientId || !NetworkManager.NetworkConfig.EnableSceneManagement)

com.unity.netcode.gameobjects/Runtime/Spawning/NetworkSpawnManager.cs

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1031,13 +1031,8 @@ internal NetworkObject CreateLocalNetworkObject(NetworkObject.SceneObject sceneO
10311031
/// Distributed Authority:
10321032
/// DAHost client and standard DA clients invoke this method.
10331033
/// </summary>
1034-
internal void AuthorityLocalSpawn(NetworkObject networkObject, ulong networkId, bool sceneObject, bool playerObject, ulong ownerClientId, bool destroyWithScene)
1034+
internal void AuthorityLocalSpawn([NotNull] NetworkObject networkObject, ulong networkId, bool sceneObject, bool playerObject, ulong ownerClientId, bool destroyWithScene)
10351035
{
1036-
if (networkObject == null)
1037-
{
1038-
throw new ArgumentNullException(nameof(networkObject), "Cannot spawn null object");
1039-
}
1040-
10411036
if (networkObject.IsSpawned)
10421037
{
10431038
Debug.LogError($"{networkObject.name} is already spawned!");
@@ -1111,16 +1106,12 @@ internal void AuthorityLocalSpawn(NetworkObject networkObject, ulong networkId,
11111106
/// <remarks>
11121107
/// IMPORTANT: Pre spawn methods need to be invoked from within <see cref="NetworkObject.AddSceneObject"/>.
11131108
/// </remarks>
1114-
internal void NonAuthorityLocalSpawn(NetworkObject networkObject, in NetworkObject.SceneObject sceneObject, bool destroyWithScene)
1109+
internal void NonAuthorityLocalSpawn([NotNull] NetworkObject networkObject, in NetworkObject.SceneObject sceneObject, bool destroyWithScene)
11151110
{
1116-
if (networkObject == null)
1117-
{
1118-
throw new ArgumentNullException(nameof(networkObject), "Cannot spawn null object");
1119-
}
1120-
11211111
if (networkObject.IsSpawned)
11221112
{
1123-
throw new SpawnStateException($"[{networkObject.name}] Object-{networkObject.NetworkObjectId} is already spawned!");
1113+
Debug.LogError($"[{networkObject.name}] Object-{networkObject.NetworkObjectId} is already spawned!");
1114+
return;
11241115
}
11251116

11261117
// Do not invoke Pre spawn here (SynchronizeNetworkBehaviours needs to be invoked prior to this)

0 commit comments

Comments
 (0)