UnityEngine.Networking.ClientScene.OnObjectSpawn C# (CSharp) Method

OnObjectSpawn() private static method

private static OnObjectSpawn ( NetworkMessage netMsg ) : void
netMsg NetworkMessage
return void
        private static void OnObjectSpawn(NetworkMessage netMsg)
        {
            netMsg.ReadMessage<ObjectSpawnMessage>(s_ObjectSpawnMessage);
            if (!s_ObjectSpawnMessage.assetId.IsValid())
            {
                if (LogFilter.logError)
                {
                    Debug.LogError("OnObjSpawn netId: " + s_ObjectSpawnMessage.netId + " has invalid asset Id");
                }
            }
            else
            {
                NetworkIdentity component;
                if (LogFilter.logDebug)
                {
                    Debug.Log(string.Concat(new object[] { "Client spawn handler instantiating [netId:", s_ObjectSpawnMessage.netId, " asset ID:", s_ObjectSpawnMessage.assetId, " pos:", s_ObjectSpawnMessage.position, "]" }));
                }
                NetworkDetailStats.IncrementStat(NetworkDetailStats.NetworkDirection.Incoming, 3, GetStringForAssetId(s_ObjectSpawnMessage.assetId), 1);
                if (s_NetworkScene.GetNetworkIdentity(s_ObjectSpawnMessage.netId, out component))
                {
                    ApplySpawnPayload(component, s_ObjectSpawnMessage.position, s_ObjectSpawnMessage.payload, s_ObjectSpawnMessage.netId, null);
                }
                else
                {
                    GameObject obj2;
                    if (NetworkScene.GetPrefab(s_ObjectSpawnMessage.assetId, out obj2))
                    {
                        GameObject newGameObject = UnityEngine.Object.Instantiate<GameObject>(obj2, s_ObjectSpawnMessage.position, s_ObjectSpawnMessage.rotation);
                        if (LogFilter.logDebug)
                        {
                            Debug.Log(string.Concat(new object[] { "Client spawn handler instantiating [netId:", s_ObjectSpawnMessage.netId, " asset ID:", s_ObjectSpawnMessage.assetId, " pos:", s_ObjectSpawnMessage.position, " rotation: ", s_ObjectSpawnMessage.rotation, "]" }));
                        }
                        component = newGameObject.GetComponent<NetworkIdentity>();
                        if (component == null)
                        {
                            if (LogFilter.logError)
                            {
                                Debug.LogError("Client object spawned for " + s_ObjectSpawnMessage.assetId + " does not have a NetworkIdentity");
                            }
                        }
                        else
                        {
                            ApplySpawnPayload(component, s_ObjectSpawnMessage.position, s_ObjectSpawnMessage.payload, s_ObjectSpawnMessage.netId, newGameObject);
                        }
                    }
                    else
                    {
                        SpawnDelegate delegate2;
                        if (NetworkScene.GetSpawnHandler(s_ObjectSpawnMessage.assetId, out delegate2))
                        {
                            GameObject obj4 = delegate2(s_ObjectSpawnMessage.position, s_ObjectSpawnMessage.assetId);
                            if (obj4 == null)
                            {
                                if (LogFilter.logWarn)
                                {
                                    Debug.LogWarning("Client spawn handler for " + s_ObjectSpawnMessage.assetId + " returned null");
                                }
                            }
                            else
                            {
                                component = obj4.GetComponent<NetworkIdentity>();
                                if (component == null)
                                {
                                    if (LogFilter.logError)
                                    {
                                        Debug.LogError("Client object spawned for " + s_ObjectSpawnMessage.assetId + " does not have a network identity");
                                    }
                                }
                                else
                                {
                                    component.SetDynamicAssetId(s_ObjectSpawnMessage.assetId);
                                    ApplySpawnPayload(component, s_ObjectSpawnMessage.position, s_ObjectSpawnMessage.payload, s_ObjectSpawnMessage.netId, obj4);
                                }
                            }
                        }
                        else if (LogFilter.logError)
                        {
                            Debug.LogError(string.Concat(new object[] { "Failed to spawn server object, assetId=", s_ObjectSpawnMessage.assetId, " netId=", s_ObjectSpawnMessage.netId }));
                        }
                    }
                }
            }
        }