Ejemplo n.º 1
0
        public void RegisterRpc(Type type, PRNetworkBehaviour component, string methodName)
        {
            RpcMeta meta = new RpcMeta();

            meta.baseType        = type;
            meta.behaviourScript = component;

            rpcDictionary.Add(methodName, meta);
        }
Ejemplo n.º 2
0
        public void ReceiveRpc(string methodName, RpcArgs args)
        {
            if (!rpcDictionary.ContainsKey(methodName))
            {
                Debug.LogWarning("Rpc function not found.");
                return;
            }

            RpcMeta functionMeta = rpcDictionary[methodName];

            Type[] types = args.types.Select(t => Type.GetType(t)).ToArray();

            MethodInfo method = functionMeta.baseType.GetMethod(methodName, BindingFlags.Instance | BindingFlags.NonPublic, null, types, null);

            method.Invoke(functionMeta.behaviourScript, args.values);
        }
Ejemplo n.º 3
0
 public RpcMessage(RpcMeta meta, byte[] body)
 {
     this.Meta = meta;
     this.Body = body != null ? body : Empty;
 }