private MessageBase ParseParameterToMessage(string message, object parameter, out short id)
{
MessageBase msgToSend = null;
if (parameter == null) {
id = DispatchEMessageId;
EMessage emsg = new EMessage ();
emsg.message = message;
msgToSend = emsg;
} else if (parameter is int) {
id = DispatchIMessageId;
IMessage imsg = new IMessage ();
imsg.message = message;
imsg.parameter = (int)parameter;
msgToSend = imsg;
} else if (parameter is float) {
id = DispatchFMessageId;
FMessage fmsg = new FMessage ();
fmsg.message = message;
fmsg.parameter = (float)parameter;
msgToSend = fmsg;
} else if (parameter is string) {
id = DispatchSMessageId;
SMessage smsg = new SMessage ();
smsg.message = message;
smsg.parameter = parameter as string;
msgToSend = smsg;
} else if (parameter is Vector3) {
id = DispatchVMessageId;
VMessage vmsg = new VMessage ();
vmsg.message = message;
vmsg.parameter = (Vector3)parameter;
msgToSend = vmsg;
} else if (parameter is Quaternion) {
id = DispatchQMessageId;
QMessage qmsg = new QMessage ();
qmsg.message = message;
qmsg.parameter = (Quaternion)parameter;
msgToSend = qmsg;
} else {
id = -1;
Debug.LogError ("Can't dispatch a non RPCable parameter");
}
return msgToSend;
}