@@ -344,30 +344,24 @@ internal uint GetSourceGlobalObjectIdHash(uint networkPrefabHash)
344344 /// <returns></returns>
345345 internal NetworkObject HandleNetworkPrefabSpawn ( uint networkPrefabAssetHash , ulong ownerClientId , Vector3 position , Quaternion rotation , FastBufferReader instantiationDataReader = default )
346346 {
347- NetworkObject networkObjectInstance = instantiationDataReader . IsInitialized
348- ? InstantiateNetworkPrefabWithData ( networkPrefabAssetHash , ownerClientId , position , rotation , instantiationDataReader )
349- : InstantiateNetworkPrefabDefault ( networkPrefabAssetHash , ownerClientId , position , rotation ) ;
347+ NetworkObject networkObjectInstance = null ;
348+ if ( instantiationDataReader . IsInitialized )
349+ {
350+ if ( m_PrefabAssetToPrefabHandlerWithData . TryGetValue ( networkPrefabAssetHash , out var prefabInstanceHandler ) )
351+ networkObjectInstance = prefabInstanceHandler . Instantiate ( ownerClientId , position , rotation , instantiationDataReader ) ;
352+ }
353+ else
354+ {
355+ if ( m_PrefabAssetToPrefabHandler . TryGetValue ( networkPrefabAssetHash , out var prefabInstanceHandler ) )
356+ networkObjectInstance = prefabInstanceHandler . Instantiate ( ownerClientId , position , rotation ) ;
357+ }
350358 //Now we must make sure this alternate PrefabAsset spawned in place of the prefab asset with the networkPrefabAssetHash (GlobalObjectIdHash)
351359 //is registered and linked to the networkPrefabAssetHash so during the HandleNetworkPrefabDestroy process we can identify the alternate prefab asset.
352360 if ( networkObjectInstance != null )
353361 RegisterPrefabInstance ( networkObjectInstance , networkPrefabAssetHash ) ;
354362 return networkObjectInstance ;
355363 }
356364
357- private NetworkObject InstantiateNetworkPrefabDefault ( uint networkPrefabAssetHash , ulong ownerClientId , Vector3 position , Quaternion rotation )
358- {
359- if ( m_PrefabAssetToPrefabHandler . TryGetValue ( networkPrefabAssetHash , out var prefabInstanceHandler ) )
360- return prefabInstanceHandler . Instantiate ( ownerClientId , position , rotation ) ;
361- return null ;
362- }
363-
364- private NetworkObject InstantiateNetworkPrefabWithData ( uint networkPrefabAssetHash , ulong ownerClientId , Vector3 position , Quaternion rotation , FastBufferReader instantiationDataReader )
365- {
366- if ( m_PrefabAssetToPrefabHandlerWithData . TryGetValue ( networkPrefabAssetHash , out var prefabInstanceHandler ) )
367- return prefabInstanceHandler . Instantiate ( ownerClientId , position , rotation , instantiationDataReader ) ;
368- return null ;
369- }
370-
371365 private void RegisterPrefabInstance ( NetworkObject networkObjectInstance , uint networkPrefabAssetHash )
372366 {
373367 if ( networkObjectInstance != null && ! m_PrefabInstanceToPrefabAsset . ContainsKey ( networkObjectInstance . GlobalObjectIdHash ) )
0 commit comments