/// <summary> /// Send object thats cbody ctransform vector3 int32 string ctext to peers /// Todo add SendEntity to this method. /// </summary> public void SendObject(object datatosend, object metadata) { if (!havePeers()) { Debug.WriteLine("No connections to send to."); return; } Enums.MessageType type = Enums.MessageType.Unknown; Enum.TryParse(datatosend.GetType().Name, out type); if (type == Enums.MessageType.Unknown) { return; } NetOutgoingMessage msg = _peer.CreateMessage(); switch (type) { case Enums.MessageType.CBody: var dataCbody = (CBody)datatosend; msg.Write((byte)type); msg.Write((string)metadata); msg.WriteCBody(dataCbody); break; case Enums.MessageType.CTransform: var dataTransform = (CTransform)datatosend; msg.Write((byte)type); msg.Write((string)metadata); msg.WriteCTransform(dataTransform); break; case Enums.MessageType.Vector3: var datavector = (Vector3)datatosend; msg.Write((byte)type); msg.Write((string)metadata); msg.WriteUnitVector3(datavector, 1); break; case Enums.MessageType.Int32: int dataint = (int)datatosend; msg.Write((byte)type); msg.Write((string)metadata); msg.Write(dataint); break; case Enums.MessageType.String: var datastring = (string)datatosend; msg.Write((byte)type); msg.Write((string)metadata); msg.Write(datastring); break; case Enums.MessageType.CText: var ctext = (CText)datatosend; msg.Write((byte)type); msg.Write((int)metadata); msg.WriteCText(ctext); break; default: Debug.WriteLine("unknownType"); break; } if (MasterNetConnection == null) { _peer.SendMessage(msg, _peer.Connections, NetDeliveryMethod.Unreliable, 0); } else { _peer.SendMessage(msg, MasterNetConnection, NetDeliveryMethod.Unreliable, 0); } }