public SendNetworkMessage ( |
||
message | ||
sendTo | SendTo | |
netMessage | ||
deliveryMethod | NetDeliveryMethod | |
리턴 | void |
private void SendPlayerHookReleased() { MultiplayerManager mInstance = MultiplayerManager.instance; int playerID = GetComponent <Player>().m_playerId; MessagePlayerHookReleased message = new MessagePlayerHookReleased(); message.playerId = playerID; mInstance.SendNetworkMessage(message, SendTo.Others); }
private void SendPlayerHookUsed(Vector3 hookPosition) { MultiplayerManager mInstance = MultiplayerManager.instance; int playerID = GetComponent <Player>().m_playerId; MessagePlayerHookUsed message = new MessagePlayerHookUsed(); message.playerId = playerID; message.hookPosition = hookPosition; mInstance.SendNetworkMessage(message, SendTo.Others); }
void Update() { NetIncomingMessage msg; while (m_server != null && (msg = m_server.ReadMessage()) != null) { switch (msg.MessageType) { case NetIncomingMessageType.VerboseDebugMessage: case NetIncomingMessageType.DebugMessage: Debug.Log(msg.ReadString()); break; case NetIncomingMessageType.WarningMessage: Debug.LogWarning(msg.ReadString()); break; case NetIncomingMessageType.ErrorMessage: Debug.LogError(msg.ReadString()); break; case NetIncomingMessageType.StatusChanged: NetConnectionStatus status = (NetConnectionStatus)msg.ReadByte(); string reason = msg.ReadString(); Debug.Log(NetUtility.ToHexString(msg.SenderConnection.RemoteUniqueIdentifier) + " " + status + ": " + reason); if (status == NetConnectionStatus.Connected) { Debug.Log("Remote connected: " + msg.SenderConnection.RemoteHailMessage.ReadString()); NetOutgoingMessage om = m_server.CreateMessage(); om.Write((int)MessageFunction.SpawnAllPlayer); om.Write(m_players.Count); foreach (var player in m_players) { om.Write(player.ID); om.Write(player.Name); } m_server.SendMessage(om, msg.SenderConnection, NetDeliveryMethod.ReliableOrdered, 0); } else if (status == NetConnectionStatus.Disconnected) { MultiplayerManager mInstance = MultiplayerManager.instance; var player = m_players.FirstOrDefault(x => x.OwnerConnection == msg.SenderConnection); if (player != null) { MessageRemovePlayer message = new MessageRemovePlayer(); message.playerId = player.ID; mInstance.SendNetworkMessage(message, SendTo.All); } } break; case NetIncomingMessageType.Data: HandleSeverMessage(msg); break; case NetIncomingMessageType.UnconnectedData: var msgType = (UnConnectedMessageFunction)msg.ReadInt32(); switch (msgType) { case UnConnectedMessageFunction.PingServerForPlayerCount: NetOutgoingMessage returnMessage = m_server.CreateMessage(); returnMessage.Write((int)UnConnectedMessageFunction.PingServerForPlayerCount); returnMessage.Write(m_players.Count); m_server.SendUnconnectedMessage(returnMessage, msg.SenderEndPoint); break; case UnConnectedMessageFunction.PingServerForMapId: NetOutgoingMessage returnMessage2 = m_server.CreateMessage(); returnMessage2.Write((int)UnConnectedMessageFunction.PingServerForMapId); returnMessage2.Write(m_players.Count); returnMessage2.Write(m_saveWorkshopID); m_server.SendUnconnectedMessage(returnMessage2, msg.SenderEndPoint); break; } break; default: Debug.LogWarning("Unhandled type: " + msg.MessageType); break; } m_server.Recycle(msg); } while (m_client != null && (msg = m_client.ReadMessage()) != null) { switch (msg.MessageType) { case NetIncomingMessageType.VerboseDebugMessage: case NetIncomingMessageType.DebugMessage: case NetIncomingMessageType.WarningMessage: case NetIncomingMessageType.ErrorMessage: Debug.Log(msg.ReadString()); break; case NetIncomingMessageType.StatusChanged: if (msg.ReadString() == "=Failed".Trim()) { Debug.Log("It failed"); m_failedToConnect = true; } break; case NetIncomingMessageType.Data: HandleClientMessage(msg); break; default: Debug.LogWarning("Unhandled type: " + msg.MessageType); break; } m_client.Recycle(msg); } }