Ejemplo n.º 1
0
        public override void OnReceiveData(ref NetworkState.NETWORK_STATE_TYPE state)
        {
            _operationList.Clear();
            int opCount = BufferedNetworkUtilsClient.ReadInt(ref state);

            for (int i = 0; i < opCount; ++i)
            {
                FduParticleSystemOP.Operation operationType = (FduParticleSystemOP.Operation)BufferedNetworkUtilsClient.ReadByte(ref state);
                int paraCount          = BufferedNetworkUtilsClient.ReadInt(ref state);
                FduParticleSystemOP op = new FduParticleSystemOP();
                op.operation = operationType;
                if (paraCount > 0)
                {
                    op.paras = new object[paraCount];
                }
                for (int j = 0; j < paraCount; ++j)
                {
                    op.paras[j] = FduSupportClass.deserializeOneParameter(ref state);
                }
                _operationList.Add(op);
            }
            //反序列化结束 执行每一项粒子系统的操作
            foreach (FduParticleSystemOP op in _operationList)
            {
                op.executeOpOnSlave(particleSys);
            }
            _operationList.Clear();
        }
Ejemplo n.º 2
0
        internal void DeserializeParameterData(ref NetworkState.NETWORK_STATE_TYPE state)
        {
            _CommandName = BufferedNetworkUtilsClient.ReadString(ref state);    //Name of Command
            int parameterCount = BufferedNetworkUtilsClient.ReadInt(ref state); //Count of Command parameters

            for (int j = 0; j < parameterCount; ++j)
            {
                string paraName = BufferedNetworkUtilsClient.ReadString(ref state);   //Name of parameter
                object para     = FduSupportClass.deserializeOneParameter(ref state); //Value of parameter
                addParameter(paraName, para);
            }
        }
Ejemplo n.º 3
0
        //接收到rpc事件中的数据 反序列化为可用的事件实例
        void deserializeParameters(ref NetworkState.NETWORK_STATE_TYPE state)
        {
            _rpcData.Clear();
            _rpcData.Add((byte)0, BufferedNetworkUtilsClient.ReadInt(ref state));
            _rpcData.Add((byte)1, BufferedNetworkUtilsClient.ReadString(ref state));
            int paraCount = BufferedNetworkUtilsClient.ReadInt(ref state);

            _rpcData.Add((byte)2, paraCount);
            object[] parameters = new object[paraCount];
            try
            {
                for (int i = 0; i < paraCount; ++i)
                {
                    object ob = FduSupportClass.deserializeOneParameter(ref state);
                    parameters[i] = ob;
                }
            }
            catch (InvalidSendableDataException e)
            {
                Debug.LogError(e.Message);
                return;
            }
            _rpcData.Add((byte)3, (object[])parameters);
        }