Ejemplo n.º 1
0
    public void Send(RPCOption mode, MessageInformation message, bool reliable = true)
    {
        string outdata = "";

        System.Type t = message.value.GetType();
        //CODIFICA IN BASE AL TIPO DI INPUT
        if (t.Equals(typeof(string)))
        {
            outdata = "string:" + message.name + ":" + message.value;
        }
        else if (t.Equals(typeof(int)))
        {
            outdata = "int:" + message.name + ":" + message.value.ToString();
        }
        else if (t.Equals(typeof(float)))
        {
            outdata = "float:" + message.name + ":" + message.value.ToString();
        }
        else if (t.Equals(typeof(Vector2)))
        {
            outdata = "Vector2:" + message.name + ":" + ((Vector2)message.value).x + ":" + ((Vector2)message.value).y;
        }
        else if (t.Equals(typeof(Vector3)))
        {
            outdata = "Vector3:" + message.name + ":" + ((Vector3)message.value).x + ":" + ((Vector3)message.value).y + ":" + ((Vector3)message.value).z;
        }
        else if (t.Equals(typeof(bool)))
        {
            outdata = "bool:" + message.name + ":" + message.value.ToString();
        }
        else if (t.Equals(typeof(Texture2D)))
        {
            Texture2D te = ((Texture2D)message.value);
            outdata = "Texture2D:" + message.name + ":";
            byte[] pixelsdata = te.EncodeToJPG();
            outdata += System.Convert.ToBase64String(pixelsdata);
        }
        else
        {
            Debug.LogError("data type not supported");
            return;
        }

        byte[] dataBYTE = System.Text.ASCIIEncoding.Default.GetBytes(outdata);
        Debug.LogWarning("Sent data of " + dataBYTE.Length + "bytes");

        switch (mode)
        {
        case RPCOption.Everyone:
            MC.PgamePlatform_instance.RealTime.SendMessageToAll(reliable, dataBYTE);
            break;
        }
    }
Ejemplo n.º 2
0
        public void RPC(RPCOption option, QosType channel, string methodName, params object[] parameters)
        {
            switch (option)
            {
            case RPCOption.ToServer:
                RPC_ToServer(channel, methodName, parameters);
                break;

            case RPCOption.Broadcast:
                RPC_Broadcast(channel, methodName, parameters);
                break;
            }
        }
Ejemplo n.º 3
0
 public void RPC(RPCOption option, string methodName, params object[] parameters)
 {
     RPC(option, NetworkConfig.DefaultChannel, methodName, parameters);
 }