internal void HandleRPC(int cmdHash, NetworkReader reader) { if (base.gameObject == null) { if (LogFilter.logWarn) { Debug.LogWarning(string.Concat(new object[] { "ClientRpc [", NetworkBehaviour.GetCmdHashHandlerName(cmdHash), "] received for deleted object ", this.netId })); } } else if (this.m_NetworkBehaviours.Length == 0) { if (LogFilter.logWarn) { Debug.LogWarning("No receiver found for ClientRpc [" + NetworkBehaviour.GetCmdHashHandlerName(cmdHash) + "]. Does the script with the function inherit NetworkBehaviour?"); } } else { for (int i = 0; i < this.m_NetworkBehaviours.Length; i++) { NetworkBehaviour behaviour = this.m_NetworkBehaviours[i]; if (behaviour.InvokeRPC(cmdHash, reader)) { NetworkDetailStats.IncrementStat(NetworkDetailStats.NetworkDirection.Incoming, 2, NetworkBehaviour.GetCmdHashRpcName(cmdHash), 1); return; } } string invoker = NetworkBehaviour.GetInvoker(cmdHash); if (invoker == null) { invoker = "[unknown:" + cmdHash + "]"; } if (LogFilter.logWarn) { Debug.LogWarning(string.Concat(new object[] { "Failed to invoke RPC ", invoker, "(", cmdHash, ") on netID ", this.netId })); } NetworkBehaviour.DumpInvokers(); } }
internal void HandleRPC(int cmdHash, NetworkReader reader) { if (base.gameObject == null) { if (LogFilter.logWarn) { Debug.LogWarning("ClientRpc [" + NetworkBehaviour.GetCmdHashHandlerName(cmdHash) + "] received for deleted object " + netId); } return; } if (m_NetworkBehaviours.Length == 0) { if (LogFilter.logWarn) { Debug.LogWarning("No receiver found for ClientRpc [" + NetworkBehaviour.GetCmdHashHandlerName(cmdHash) + "]. Does the script with the function inherit NetworkBehaviour?"); } return; } for (int i = 0; i < m_NetworkBehaviours.Length; i++) { NetworkBehaviour networkBehaviour = m_NetworkBehaviours[i]; if (networkBehaviour.InvokeRPC(cmdHash, reader)) { return; } } string text = NetworkBehaviour.GetInvoker(cmdHash); if (text == null) { text = "[unknown:" + cmdHash + "]"; } if (LogFilter.logWarn) { Debug.LogWarning("Failed to invoke RPC " + text + "(" + cmdHash + ") on netID " + netId); } NetworkBehaviour.DumpInvokers(); }
internal void HandleRPC(int cmdHash, NetworkReader reader) { Type invokeClass; NetworkBehaviour.CmdDelegate invokeFunction; NetworkBehaviour invokeComponent; if (base.gameObject == null) { string cmdHashHandlerName = NetworkBehaviour.GetCmdHashHandlerName(cmdHash); if (LogFilter.logWarn) { Debug.LogWarning("ClientRpc [" + cmdHashHandlerName + "] received for deleted object [netId=" + netId + "]"); } } else if (!NetworkBehaviour.GetInvokerForHashClientRpc(cmdHash, out invokeClass, out invokeFunction)) { string cmdHashHandlerName2 = NetworkBehaviour.GetCmdHashHandlerName(cmdHash); if (LogFilter.logError) { Debug.LogError("Found no receiver for incoming [" + cmdHashHandlerName2 + "] on " + base.gameObject + ", the server and client should have the same NetworkBehaviour instances [netId=" + netId + "]."); } } else if (!GetInvokeComponent(cmdHash, invokeClass, out invokeComponent)) { string cmdHashHandlerName3 = NetworkBehaviour.GetCmdHashHandlerName(cmdHash); if (LogFilter.logWarn) { Debug.LogWarning("ClientRpc [" + cmdHashHandlerName3 + "] handler not found [netId=" + netId + "]"); } } else { invokeFunction(invokeComponent, reader); } }
static void OnRPCMessage(NetworkMessage netMsg) { RpcMessage message = netMsg.ReadMessage <RpcMessage>(); if (LogFilter.logDebug) { Debug.Log("ClientScene::OnRPCMessage hash:" + message.rpcHash + " netId:" + message.netId); } NetworkIdentity uv; if (s_NetworkScene.GetNetworkIdentity(message.netId, out uv)) { uv.HandleRPC(message.rpcHash, new NetworkReader(message.payload)); } else { if (LogFilter.logWarn) { string errorRpcName = NetworkBehaviour.GetCmdHashHandlerName(message.rpcHash); Debug.LogWarningFormat("Could not find target object with netId:{0} for RPC call {1}", message.netId, errorRpcName); } } }
private static void OnSyncListMessage(NetworkMessage netMsg) { NetworkIdentity identity; NetworkInstanceId netId = netMsg.reader.ReadNetworkId(); int cmdHash = (int)netMsg.reader.ReadPackedUInt32(); if (LogFilter.logDebug) { Debug.Log("ClientScene::OnSyncListMessage " + netId); } if (s_NetworkScene.GetNetworkIdentity(netId, out identity)) { identity.HandleSyncList(cmdHash, netMsg.reader); } else if (LogFilter.logWarn) { Debug.LogWarning("Did not find target for SyncList message for " + netId); } NetworkDetailStats.IncrementStat(NetworkDetailStats.NetworkDirection.Outgoing, 9, NetworkBehaviour.GetCmdHashHandlerName(cmdHash), 1); }
private static void OnSyncEventMessage(NetworkMessage netMsg) { int cmdHash = (int)netMsg.reader.ReadPackedUInt32(); NetworkInstanceId netId = netMsg.reader.ReadNetworkId(); if (LogFilter.logDebug) { Debug.Log((object)("ClientScene::OnSyncEventMessage " + (object)netId)); } NetworkIdentity uv; if (ClientScene.s_NetworkScene.GetNetworkIdentity(netId, out uv)) { uv.HandleSyncEvent(cmdHash, netMsg.reader); } else if (LogFilter.logWarn) { Debug.LogWarning((object)("Did not find target for SyncEvent message for " + (object)netId)); } NetworkDetailStats.IncrementStat(NetworkDetailStats.NetworkDirection.Outgoing, (short)7, NetworkBehaviour.GetCmdHashHandlerName(cmdHash), 1); }