/// <summary> /// serialize this into a string /// </summary> /// <returns></returns> public string Serialize() { var serObj = new PNetC.NetworkedSceneObject(NetworkID); var sb = new StringBuilder(); sb.Append(serObj.Serialize()); sb.Append("type:").Append(this.GetType().Name).AppendLine(";"); sb.Append("data:").Append(SerializeObjectData()).AppendLine(";"); sb.Append("pos:").Append(transform.position.ToString()).AppendLine(";"); sb.Append("rot:").Append(transform.rotation.ToString()).AppendLine(";"); return sb.ToString(); }
/// <summary> /// serialize this into a string /// </summary> /// <returns></returns> public string Serialize() { var serObj = new PNetC.NetworkedSceneObject(NetworkID); var sb = new StringBuilder(); sb.Append(serObj.Serialize()); sb.Append("type:").Append(this.GetType().Name).AppendLine(";"); sb.Append("data:").Append(SerializeObjectData()).AppendLine(";"); sb.Append("pos:").Append(transform.position.ToString()).AppendLine(";"); sb.Append("rot:").Append(transform.rotation.ToString()).AppendLine(";"); return(sb.ToString()); }
/// <summary> /// Only do this if you override awake /// </summary> protected void SetupPNetC() { _sceneObject = new PNetC.NetworkedSceneObject(NetworkID, Net.Peer); }
private void Consume(NetIncomingMessage msg) { try { //faster than switch, as this is in most to least common order if (msg.SequenceChannel == Channels.UNRELIABLE_STREAM) { if (msg.DeliveryMethod == NetDeliveryMethod.ReliableUnordered) { HandleStaticRpc(msg); } else { var actorId = NetworkViewId.Deserialize(msg); NetworkView find; if (NetworkViewManager.Find(actorId, out find)) { find.DoOnDeserializeStream(msg); } } } else if (msg.SequenceChannel == Channels.RELIABLE_STREAM) { var actorId = NetworkViewId.Deserialize(msg); NetworkView find; if (NetworkViewManager.Find(actorId, out find)) { find.DoOnDeserializeStream(msg); } } else if (msg.SequenceChannel >= Channels.BEGIN_RPCMODES && msg.SequenceChannel <= Channels.OWNER_RPC) { //rpc... var viewId = NetworkViewId.Deserialize(msg); var rpcId = msg.ReadByte(); NetworkView find; if (NetworkViewManager.Find(viewId, out find)) { find.CallRPC(rpcId, msg); } else { Debug.LogWarning(this, "couldn't find view {0} to send rpc {1}", viewId, rpcId); } } else if (msg.SequenceChannel == Channels.SYNCHED_FIELD) { var viewId = NetworkViewId.Deserialize(msg); var fieldId = msg.ReadByte(); NetworkView find; if (NetworkViewManager.Find(viewId, out find)) { find.SetSynchronizedField(fieldId, msg); } else { Debug.LogWarning(this, "couldn't find view " + viewId + " to set field " + fieldId); } } else if (msg.SequenceChannel == Channels.OBJECT_RPC) { var viewId = msg.ReadUInt16(); var rpcId = msg.ReadByte(); NetworkedSceneObject.CallRPC(viewId, rpcId, msg); } else if (msg.SequenceChannel == Channels.STATIC_RPC) { HandleStaticRpc(msg); } else if (msg.SequenceChannel == Channels.STATIC_UTILS) { ProcessUtils(msg); } else { Debug.LogWarning(this, "{1} bytes received over unhandled channel {0}, delivery {2}", msg.SequenceChannel, msg.LengthBytes, msg.DeliveryMethod); } } catch (Exception er) { Debug.LogError(this, "[Net.Consume] {0}", er); } }