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(); }
public override NetworkState.NETWORK_STATE_TYPE Deserialize() { NetworkState.NETWORK_STATE_TYPE state = NetworkState.NETWORK_STATE_TYPE.SUCCESS; levelName = BufferedNetworkUtilsClient.ReadString(ref state); FduClusterLevelLoader.Instance._slaveStartLoadScene(levelName); return(state); }
public override void OnReceiveData(ref NetworkState.NETWORK_STATE_TYPE state) { //是否监控enable状态 if (getObservedState(1)) { _renderer.enabled = BufferedNetworkUtilsClient.ReadBool(ref state); } //是否监控shader状态 if (getObservedState(2)) { if (!invalideCheck) { return; } for (int i = 0; i < attrList.Count; ++i) { for (int j = 0; j < attrList[i].propertyType.Count; ++j) { if (bitArrList[i][j]) { DeserializeOnePara(attrList[i].propertyType[j], _renderer.materials[i], attrList[i].propertyName[j], ref state); } } } } #if UNITY_EDITOR if (BufferedNetworkUtilsClient.ReadString(ref state) != "RenderObserverFlag") { Debug.LogError("Wrong end"); } #endif }
public override void OnReceiveData(ref NetworkState.NETWORK_STATE_TYPE state) { #if !UNSAFE_MODE byte[] temp = BufferedNetworkUtilsClient.ReadByteArray(ref state); _bitArray = new BitArray(temp); #endif switchCaseFunc(FduMultiAttributeObserverOP.Receive_Direct, ref state); }
void switchCaseFunc(FduMultiAttributeObserverOP op, ref NetworkState.NETWORK_STATE_TYPE state) { for (int i = 1; i < attributeList.Length; ++i) { if (!getObservedState(i)) { continue; } switch (i) { case 1: //position if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendVector3(_transform.position); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { _transform.position = BufferedNetworkUtilsClient.ReadVector3(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { appendNewPos(BufferedNetworkUtilsClient.ReadVector3(ref state)); } break; case 2: //rotation if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendQuaternion(_transform.rotation); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { _transform.rotation = BufferedNetworkUtilsClient.ReadQuaternion(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { appendNewRotation(BufferedNetworkUtilsClient.ReadQuaternion(ref state)); } break; case 3: //scale if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendVector3(_transform.localScale); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { _transform.localScale = BufferedNetworkUtilsClient.ReadVector3(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { appendNewScale(BufferedNetworkUtilsClient.ReadVector3(ref state)); } break; } } }
public override NetworkState.NETWORK_STATE_TYPE Deserialize() { if (this == null) //由于跨场景时 在新的view 没有在start中完成注册之前 旧的view会接收数据 { return(NetworkState.NETWORK_STATE_TYPE.SUCCESS); } if (ViewId == FduSyncBaseIDManager.getInvalidSyncId()) { return(NetworkState.NETWORK_STATE_TYPE.SUCCESS); } UnityEngine.Profiling.Profiler.BeginSample("OnReceiveData"); NetworkState.NETWORK_STATE_TYPE networkState = NetworkState.NETWORK_STATE_TYPE.SUCCESS; FduObserverBase observer = null; for (index = 0; index < observerList.Count; ++index) { try { observer = observerList[index]; #if !UNSAFE_MODE if (observer != null) { bool receiveOrNot = BufferedNetworkUtilsClient.ReadBool(ref networkState); if (receiveOrNot) { observer.OnReceiveData(ref networkState); FduClusterViewManager.updateSentDataObserverCount(); } } #else if (observer.getDataTransmitStrategy().receiveOrNot()) { observer.OnReceiveData(ref networkState); #if DEBUG FduClusterViewManager.updateSentDataObserverCount(); #endif } #endif } catch (System.NullReferenceException) { } catch (System.Exception e) { string erroMessage = string.Format("An error occured when observer {0} call OnReceiveDataMethod. Game Object Name:{1},View Id:{2}, Error Message:{3}, Stack Trace:{4}", observer.GetType().Name, observer.name, ViewId, e.Message, e.StackTrace); Debug.LogError(erroMessage); throw; } if (networkState == NetworkState.NETWORK_STATE_TYPE.FORMAT_ERROR) { Debug.LogError("Data length not match in this observer! Observer name" + observer.GetType().FullName + " View id " + ViewId + " Game Object name " + observer.gameObject.name); } } UnityEngine.Profiling.Profiler.EndSample(); return(networkState); }
public override void OnReceiveData(ref NetworkState.NETWORK_STATE_TYPE state) { _transform.SetPositionAndRotation(BufferedNetworkUtilsClient.ReadVector3(ref state), BufferedNetworkUtilsClient.ReadQuaternion(ref state)); if ((FrameCounter.frameCount) % FrameCounter.interval == 0) { gsc.mpbs[0].SetVector(GPUSkinningPlayerResources.shaderPorpID_GPUSkinning_FrameIndex_PixelSegmentation, BufferedNetworkUtilsClient.ReadVector4(ref state)); gsc.mrs[0].SetPropertyBlock(gsc.mpbs[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); } }
public virtual NetworkState.NETWORK_STATE_TYPE Deserialize() { var state = NetworkState.NETWORK_STATE_TYPE.SUCCESS; _mouseState = _mouseState ?? new FDUObjectSync.MouseState(); _mouseState.buttonStateList.ForEach(buttonState_ => { buttonState_.button = (InputButton)BufferedNetworkUtilsClient.ReadInt(ref state); buttonState_.position = BufferedNetworkUtilsClient.ReadVector2(ref state); buttonState_.delta = BufferedNetworkUtilsClient.ReadVector2(ref state); buttonState_.scrollDelta = BufferedNetworkUtilsClient.ReadVector2(ref state); buttonState_.buttonState = (FramePressState)BufferedNetworkUtilsClient.ReadInt(ref state); }); return(state); }
public override void OnReceiveData(ref NetworkState.NETWORK_STATE_TYPE state) { processPlayState(BufferedNetworkUtilsClient.ReadByte(ref state)); particleSys.time = BufferedNetworkUtilsClient.ReadFloat(ref state); if (isUsingRandomSeed) { uint seed = (uint)BufferedNetworkUtilsClient.ReadInt(ref state); if (particleSys.randomSeed != seed) { if (!particleSys.isPlaying) { particleSys.randomSeed = seed; } } } }
public override void OnReceiveData(ref NetworkState.NETWORK_STATE_TYPE state) { CustomClassDataInstance = (CustomClassData)BufferedNetworkUtilsClient.ReadSerializableClass(ref state); IntInstance = BufferedNetworkUtilsClient.ReadInt(ref state); Vector3Instance = BufferedNetworkUtilsClient.ReadVector3(ref state); StringInstance = BufferedNetworkUtilsClient.ReadString(ref state); CustomDataInstance = (CustomStructData)BufferedNetworkUtilsClient.ReadStruct(typeof(CustomStructData), ref state); ListData = BufferedNetworkUtilsClient.ReadList <InsideCustomData>(ref state); DicData = BufferedNetworkUtilsClient.ReadDic <string, Vector3>(ref state); }
void switchCaseFunc(FduMultiAttributeObserverOP op, ref NetworkState.NETWORK_STATE_TYPE state) { if (_ObservedComponent == null || _props == null) { return; } for (int i = 0; i < _bitArray.Length; ++i) { if (!_bitArray[i]) { continue; } if (op == FduMultiAttributeObserverOP.SendData) { if (_props[i].PropertyType.IsEnum) { BufferedNetworkUtilsServer.SendInt(System.Convert.ToInt32(_props[i].GetValue(_ObservedComponent, null))); } else if (_props[i].PropertyType.Equals(typeof(string))) { BufferedNetworkUtilsServer.SendString((string)_props[i].GetValue(_ObservedComponent, null)); } else { BufferedNetworkUtilsServer.SendStruct(_props[i].GetValue(_ObservedComponent, null)); } } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { if (_props[i].PropertyType.IsEnum) { _props[i].SetValue(_ObservedComponent, BufferedNetworkUtilsClient.ReadInt(ref state), null); } else if (_props[i].PropertyType.Equals(typeof(string))) { _props[i].SetValue(_ObservedComponent, BufferedNetworkUtilsClient.ReadString(ref state), null); } else { _props[i].SetValue(_ObservedComponent, BufferedNetworkUtilsClient.ReadStruct(_props[i].PropertyType, ref state), null); } } } }
public override void OnReceiveData(ref FDUObjectSync.NetworkState.NETWORK_STATE_TYPE state) { #if !UNSAFE_MODE observedState = new System.Collections.Specialized.BitVector32(BufferedNetworkUtilsClient.ReadInt(ref state)); #endif bool interFlag = false; if (dataTransmitStrategy.getCustomData(FduDTSCustomDataType.EveryNFrame_CurFrameCount) != null && getInterpolationState()) { interFlag = true; } if (!interFlag) { switchCaseFunc(FduMultiAttributeObserverOP.Receive_Direct, ref state); } else { switchCaseFunc(FduMultiAttributeObserverOP.Receive_Interpolation, ref state); } }
void switchCaseFunc(FduMultiAttributeObserverOP op, ref NetworkState.NETWORK_STATE_TYPE state) { for (int i = 1; i < attrList.Length; ++i) { if (!getObservedState(i)) { continue; } switch (i) { case 1: //Interactable if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendBool(button.interactable); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { button.interactable = BufferedNetworkUtilsClient.ReadBool(ref state); } break; case 2: //Transition if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendByte((byte)button.transition); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { button.transition = (Selectable.Transition)BufferedNetworkUtilsClient.ReadByte(ref state); } break; case 30: //remove func break; case 31: //Interpolation Option break; } } }
void DeserializeOnePara(byte propertyType, Material mat, string propertyName, ref NetworkState.NETWORK_STATE_TYPE state) { switch (propertyType) { case 0: //Color mat.SetColor(propertyName, BufferedNetworkUtilsClient.ReadColor(ref state)); break; case 1: //Vector mat.SetVector(propertyName, BufferedNetworkUtilsClient.ReadVector4(ref state)); break; case 2: //Float mat.SetFloat(propertyName, BufferedNetworkUtilsClient.ReadFloat(ref state)); break; case 3: //Range mat.SetFloat(propertyName, BufferedNetworkUtilsClient.ReadFloat(ref state)); break; case 4: //TexEnv break; } }
//接收到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); }
public override NetworkState.NETWORK_STATE_TYPE Deserialize() { NetworkState.NETWORK_STATE_TYPE state = NetworkState.NETWORK_STATE_TYPE.SUCCESS; clearClusterCommands(); int CommandCount = BufferedNetworkUtilsClient.ReadInt(ref state); //total number of cluster Commands try { for (int i = 0; i < CommandCount; ++i) { ClusterCommand newCommand = new ClusterCommand("1"); newCommand.DeserializeParameterData(ref state); newCommand.DeserializeGenericData(ref state); _clusterCommandWatingList.Add(newCommand); } ClusterCommandStatisticClass.instance.RefreshData(); FduClusterCommandDispatcher.NotifyDispatch(); } catch (InvalidSendableDataException e) { Debug.LogError(e.Message); } return(state); }
public override NetworkState.NETWORK_STATE_TYPE Deserialize() { NetworkState.NETWORK_STATE_TYPE state = NetworkState.NETWORK_STATE_TYPE.SUCCESS; _bitArr = new BitVector32(BufferedNetworkUtilsClient.ReadInt(ref state)); for (int i = 1; i < 30; ++i) { if (!_bitArr[FduGlobalConfig.BIT_MASK[i]]) { continue; } switch (i) { case 1: //deltaTime _timeDataMap["deltaTime"].setValue(BufferedNetworkUtilsClient.ReadFloat(ref state)); break; case 2: //unscaledDeltaTime _timeDataMap["unscaledDeltaTime"].setValue(BufferedNetworkUtilsClient.ReadFloat(ref state)); break; case 3: //time _timeDataMap["time"].setValue(BufferedNetworkUtilsClient.ReadFloat(ref state)); break; case 4: //unscaledTime _timeDataMap["unscaledTime"].setValue(BufferedNetworkUtilsClient.ReadFloat(ref state)); break; case 5: //fixedTime _timeDataMap["fixedTime"].setValue(BufferedNetworkUtilsClient.ReadFloat(ref state)); break; case 6: //fixedUnscaledTime _timeDataMap["fixedUnscaledTime"].setValue(BufferedNetworkUtilsClient.ReadFloat(ref state)); break; case 7: //fixedDeltaTime _timeDataMap["fixedDeltaTime"].setValue(BufferedNetworkUtilsClient.ReadFloat(ref state)); if (_timeDataMap["fixedDeltaTime"]._setValue != Time.fixedDeltaTime) { Time.fixedDeltaTime = _timeDataMap["fixedDeltaTime"]._setValue; } break; case 8: //fixedUnscaledDeltaTime _timeDataMap["fixedUnscaledDeltaTime"].setValue(BufferedNetworkUtilsClient.ReadFloat(ref state)); break; case 9: //smoothDeltaTime _timeDataMap["smoothDeltaTime"].setValue(BufferedNetworkUtilsClient.ReadFloat(ref state)); break; case 10: //timeSinceLevelLoad _timeDataMap["timeSinceLevelLoad"].setValue(BufferedNetworkUtilsClient.ReadFloat(ref state)); break; case 11: //timeScale _timeDataMap["timeScale"].setValue(BufferedNetworkUtilsClient.ReadFloat(ref state)); if (_timeDataMap["timeScale"]._setValue != Time.timeScale) { Time.timeScale = _timeDataMap["timeScale"]._setValue; } break; case 12: //captureFramerate _timeDataMap["captureFramerate"].setValue(BufferedNetworkUtilsClient.ReadFloat(ref state)); if ((int)_timeDataMap["captureFramerate"]._setValue != Time.captureFramerate) { Time.captureFramerate = (int)_timeDataMap["captureFramerate"]._setValue; } break; case 13: //renderedFrameCount _timeDataMap["renderedFrameCount"].setValue(BufferedNetworkUtilsClient.ReadFloat(ref state)); break; case 14: //maximumDeltaTime _timeDataMap["maximumDeltaTime"].setValue(BufferedNetworkUtilsClient.ReadFloat(ref state)); if (_timeDataMap["maximumDeltaTime"]._setValue != Time.maximumDeltaTime) { Time.maximumDeltaTime = _timeDataMap["maximumDeltaTime"]._setValue; } break; case 15: //maximumParticleDeltaTime _timeDataMap["maximumParticleDeltaTime"].setValue(BufferedNetworkUtilsClient.ReadFloat(ref state)); if (_timeDataMap["maximumParticleDeltaTime"]._setValue != Time.maximumParticleDeltaTime) { Time.maximumParticleDeltaTime = _timeDataMap["maximumParticleDeltaTime"]._setValue; } break; } } //string end = BufferedNetworkUtilsClient.ReadString(ref state); //if (end != "FduClusterTimeEndFlag") //{ // Debug.LogError("Wrong end of Cluseter Time!"); //} //StartCoroutine(SwapCo()); return(state); }
//解析需要创建和销毁的数据 并通知对应类完成创建和销毁工作 public override NetworkState.NETWORK_STATE_TYPE Deserialize() { NetworkState.NETWORK_STATE_TYPE state = NetworkState.NETWORK_STATE_TYPE.SUCCESS; string sceneName = BufferedNetworkUtilsClient.ReadString(ref state); int count = BufferedNetworkUtilsClient.ReadInt(ref state); int viewId, assetId, subViewCount, viewObCount; Vector3 position; Quaternion rotation; string path; for (int i = 0; i < count; i++) { viewId = BufferedNetworkUtilsClient.ReadInt(ref state); assetId = BufferedNetworkUtilsClient.ReadInt(ref state); position = BufferedNetworkUtilsClient.ReadVector3(ref state); rotation = BufferedNetworkUtilsClient.ReadQuaternion(ref state); path = BufferedNetworkUtilsClient.ReadString(ref state); ClusterGameObjectCreatePara para = new ClusterGameObjectCreatePara(viewId, assetId, position, rotation, path); viewObCount = BufferedNetworkUtilsClient.ReadInt(ref state); if (viewObCount > 0) { para.viewFrameCount = new Dictionary <int, int>(); for (int j = 0; j < viewObCount; ++j) { int obId = BufferedNetworkUtilsClient.ReadInt(ref state); int obFrameCount = BufferedNetworkUtilsClient.ReadInt(ref state); para.viewFrameCount.Add(obId, obFrameCount); } } subViewCount = BufferedNetworkUtilsClient.ReadInt(ref state); if (subViewCount > 0) { para.subViewId = new List <int>(); para.subViewFrameCount = new List <Dictionary <int, int> >(); } for (int j = 0; j < subViewCount; ++j) { para.subViewId.Add(BufferedNetworkUtilsClient.ReadInt(ref state)); int obCount = BufferedNetworkUtilsClient.ReadInt(ref state); para.subViewFrameCount.Add(new Dictionary <int, int>()); for (int k = 0; k < obCount; ++k) { var oneSubViewData = para.subViewFrameCount[para.subViewFrameCount.Count - 1]; var obId = BufferedNetworkUtilsClient.ReadInt(ref state); var obFrameCount = BufferedNetworkUtilsClient.ReadInt(ref state); oneSubViewData.Add(obId, obFrameCount); } } _waitForCreateList.Add(para); } count = BufferedNetworkUtilsClient.ReadInt(ref state); for (int i = 0; i < count; ++i) { _wairForDestoryList.Add(BufferedNetworkUtilsClient.ReadInt(ref state)); } count = BufferedNetworkUtilsClient.ReadInt(ref state); for (int i = 0; i < count; ++i) { SyncViewIdData data = new SyncViewIdData(); data.name = BufferedNetworkUtilsClient.ReadString(ref state); data.id = BufferedNetworkUtilsClient.ReadInt(ref state); _waitForAssignViewIdList.Add(data); } if (BufferedNetworkUtilsClient.ReadString(ref state) != "FduClusterViewManagerEndFlag") { Debug.LogError("Wrong end of FduClusterViewManagerEndFlag!"); } if (sceneName == UnityEngine.SceneManagement.SceneManager.GetActiveScene().name) { ProcessCreateRequest(); ProcessDestoryRequest(); ProcessAssignViewIdRequest(); } ClearListData(); return(state); }
void switchCaseFunc(FduMultiAttributeObserverOP op, ref NetworkState.NETWORK_STATE_TYPE state) { for (int i = 1; i < attributeList.Length; ++i) { if (!getObservedState(i)) //如果editor中没有选择监控该属性 则直接跳过 { continue; } switch (i) { case 1: //position if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { _transform.position = FduInterpolationInterface.getNextVector3Value_new(_transform.position, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendVector3(_transform.position); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { _transform.position = BufferedNetworkUtilsClient.ReadVector3(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty_append(i, BufferedNetworkUtilsClient.ReadVector3(ref state)); } break; case 2: //rotation if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { _transform.rotation = FduInterpolationInterface.getNextQuaternionValue_new(_transform.rotation, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendQuaternion(_transform.rotation); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { _transform.rotation = BufferedNetworkUtilsClient.ReadQuaternion(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty_append(i, BufferedNetworkUtilsClient.ReadQuaternion(ref state)); } break; case 3: //scale if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { _transform.localScale = FduInterpolationInterface.getNextVector3Value_new(_transform.localScale, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendVector3(_transform.localScale); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { _transform.localScale = BufferedNetworkUtilsClient.ReadVector3(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty_append(i, BufferedNetworkUtilsClient.ReadVector3(ref state)); } break; case 4: //parent: 对于父节点的监控 这里只是一个不完全的解决方案 获取到父节点的路径 传输过去 然后在从节点解析。如果路径不唯一(因为可以同名)就会找不到对于的父节点 if (op == FduMultiAttributeObserverOP.SendData) { string parentPath; if (_transform.parent == null) { parentPath = ""; } else { parentPath = FduSupportClass.getGameObjectPath(_transform.parent.gameObject); } if (parentPath == null) { parentPath = ""; } BufferedNetworkUtilsServer.SendString(parentPath); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { string parentPath; if (_transform.parent == null) { parentPath = ""; } else { parentPath = FduSupportClass.getGameObjectPath(_transform.parent.gameObject); } if (parentPath == null) { parentPath = ""; } string getPath = BufferedNetworkUtilsClient.ReadString(ref state); if (parentPath != getPath) //hierarchy changed { GameObject go = FduSupportClass.getGameObjectByPath(getPath); if (go == null) { _transform.SetParent(null); } else { _transform.SetParent(go.transform); } } } break; case 5: //LocalPosition if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { _transform.localPosition = FduInterpolationInterface.getNextVector3Value_new(_transform.localPosition, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendVector3(_transform.localPosition); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { _transform.localPosition = BufferedNetworkUtilsClient.ReadVector3(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty_append(i, BufferedNetworkUtilsClient.ReadVector3(ref state)); } break; case 6: //LocalRotation; if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { _transform.localRotation = FduInterpolationInterface.getNextQuaternionValue_new(_transform.localRotation, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendQuaternion(_transform.localRotation); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { _transform.localRotation = BufferedNetworkUtilsClient.ReadQuaternion(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty_append(i, BufferedNetworkUtilsClient.ReadQuaternion(ref state)); } break; case 7: //LocalScale if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { _transform.localScale = FduInterpolationInterface.getNextVector3Value_new(_transform.localScale, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendVector3(_transform.localScale); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { _transform.localScale = BufferedNetworkUtilsClient.ReadVector3(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty_append(i, BufferedNetworkUtilsClient.ReadVector3(ref state)); } break; case 8: //EulerAngle if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { _transform.eulerAngles = FduInterpolationInterface.getNextVector3Value_new(_transform.eulerAngles, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendVector3(_transform.eulerAngles); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { _transform.eulerAngles = BufferedNetworkUtilsClient.ReadVector3(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty_append(i, BufferedNetworkUtilsClient.ReadVector3(ref state)); } break; case 9: //LocalEulerAngle if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { _transform.localEulerAngles = FduInterpolationInterface.getNextVector3Value_new(_transform.localEulerAngles, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendVector3(_transform.localEulerAngles); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { _transform.localEulerAngles = BufferedNetworkUtilsClient.ReadVector3(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty_append(i, BufferedNetworkUtilsClient.ReadVector3(ref state)); } break; default: break; } } }
public override NetworkState.NETWORK_STATE_TYPE Deserialize() { NetworkState.NETWORK_STATE_TYPE state = NetworkState.NETWORK_STATE_TYPE.SUCCESS; receiveState = (Random.State)BufferedNetworkUtilsClient.ReadStruct(typeof(Random.State), ref state); return(state); }
void switchCaseFunc(FduMultiAttributeObserverOP op, ref NetworkState.NETWORK_STATE_TYPE state) { for (int i = 1; i < attrList.Length; ++i) { if (!getObservedState(i)) { continue; } switch (i) { case 1: //TextContent if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendString(text.text); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { text.text = BufferedNetworkUtilsClient.ReadString(ref state); } break; case 2: //Color if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { text.color = FduInterpolationInterface.getNextColorValue_new(text.color, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendColor(text.color); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { text.color = BufferedNetworkUtilsClient.ReadColor(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty_append(i, BufferedNetworkUtilsClient.ReadColor(ref state)); } break; case 3: //FontStyle if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendByte((byte)text.fontStyle); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { text.fontStyle = (FontStyle)BufferedNetworkUtilsClient.ReadByte(ref state); } break; case 4: //FontSize if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { text.fontSize = FduInterpolationInterface.getNextIntValue_new(text.fontSize, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendInt(text.fontSize); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { text.fontSize = BufferedNetworkUtilsClient.ReadInt(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty(i, BufferedNetworkUtilsClient.ReadInt(ref state)); } break; case 5: //LineSpacing if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { text.lineSpacing = FduInterpolationInterface.getNextFloatValue_new(text.lineSpacing, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendFloat(text.lineSpacing); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { text.lineSpacing = BufferedNetworkUtilsClient.ReadFloat(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty(i, BufferedNetworkUtilsClient.ReadFloat(ref state)); } break; case 6: //SupportRichText if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendBool(text.supportRichText); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { text.supportRichText = BufferedNetworkUtilsClient.ReadBool(ref state); } break; case 7: //Aligment if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendByte((byte)text.alignment); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { text.alignment = (TextAnchor)BufferedNetworkUtilsClient.ReadByte(ref state); } break; case 8: //AlignByGeometry if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendBool(text.alignByGeometry); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { text.alignByGeometry = BufferedNetworkUtilsClient.ReadBool(ref state); } break; case 9: //HorizontalOverflow if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendByte((byte)text.horizontalOverflow); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { text.horizontalOverflow = (HorizontalWrapMode)BufferedNetworkUtilsClient.ReadByte(ref state); } break; case 10: //VerticalOverflow if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendByte((byte)text.verticalOverflow); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { text.verticalOverflow = (VerticalWrapMode)BufferedNetworkUtilsClient.ReadByte(ref state); } break; case 11: //BestFit if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendBool(text.resizeTextForBestFit); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { text.resizeTextForBestFit = BufferedNetworkUtilsClient.ReadBool(ref state); } break; case 12: //RaycastTarget if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendBool(text.raycastTarget); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { text.raycastTarget = BufferedNetworkUtilsClient.ReadBool(ref state); } break; case 31: //Interpolation Option break; } } }
void switchCaseFunc(FduMultiAttributeObserverOP op, ref NetworkState.NETWORK_STATE_TYPE state) { for (int i = 1; i < attrList.Length; ++i) { if (!getObservedState(i)) { continue; } switch (i) { case 1: //MaxValue if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { slider.maxValue = FduInterpolationInterface.getNextFloatValue_new(slider.maxValue, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendFloat(slider.maxValue); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { slider.maxValue = BufferedNetworkUtilsClient.ReadFloat(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty_append(i, BufferedNetworkUtilsClient.ReadFloat(ref state)); } break; case 2: //CurrentValue if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { slider.value = FduInterpolationInterface.getNextFloatValue_new(slider.value, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendFloat(slider.value); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { slider.value = BufferedNetworkUtilsClient.ReadFloat(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty_append(i, BufferedNetworkUtilsClient.ReadFloat(ref state)); } break; case 3: //MinValue if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { slider.minValue = FduInterpolationInterface.getNextFloatValue_new(slider.minValue, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendFloat(slider.minValue); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { slider.minValue = BufferedNetworkUtilsClient.ReadFloat(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty_append(i, BufferedNetworkUtilsClient.ReadFloat(ref state)); } break; case 4: //Direction if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendByte((byte)slider.direction); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { slider.direction = (Slider.Direction)BufferedNetworkUtilsClient.ReadByte(ref state); } break; case 5: //NormalizedValue if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { slider.normalizedValue = FduInterpolationInterface.getNextFloatValue_new(slider.normalizedValue, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendFloat(slider.normalizedValue); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { slider.normalizedValue = BufferedNetworkUtilsClient.ReadFloat(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty_append(i, BufferedNetworkUtilsClient.ReadFloat(ref state)); } break; case 6: //WholeNumbers if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendBool(slider.wholeNumbers); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { slider.wholeNumbers = BufferedNetworkUtilsClient.ReadBool(ref state); } break; } } }
void switchCaseFunc(FduMultiAttributeObserverOP op, ref NetworkState.NETWORK_STATE_TYPE state) { for (int i = 0; i < m_parameterList.Count; ++i) { FduAnimatorParameter para = m_parameterList[i]; if (para.type == AnimatorControllerParameterType.Bool) //参数为布尔类型 { if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendBool(animator.GetBool(para.name)); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { animator.SetBool(para.name, BufferedNetworkUtilsClient.ReadBool(ref state)); } } else if (para.type == AnimatorControllerParameterType.Trigger)//参数为trigger类型 { if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendBool(triggerCacheList.Contains(para.name)); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { animator.SetBool(para.name, BufferedNetworkUtilsClient.ReadBool(ref state)); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { bool triggerValue = BufferedNetworkUtilsClient.ReadBool(ref state); if (triggerValue) { animator.SetTrigger(para.name); } else { animator.ResetTrigger(para.name); } } } else if (para.type == AnimatorControllerParameterType.Int)//参数为int类型 { if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendInt(animator.GetInteger(para.name)); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { animator.SetInteger(para.name, BufferedNetworkUtilsClient.ReadInt(ref state)); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty_append(i, BufferedNetworkUtilsClient.ReadInt(ref state)); } else if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { animator.SetInteger(para.name, FduInterpolationInterface.getNextIntValue_new(animator.GetInteger(para.name), i, this)); } } } else if (para.type == AnimatorControllerParameterType.Float)//参数为float类型 { if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendFloat(animator.GetFloat(para.name)); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { animator.SetFloat(para.name, BufferedNetworkUtilsClient.ReadFloat(ref state)); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty_append(i, BufferedNetworkUtilsClient.ReadFloat(ref state)); } else if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { animator.SetFloat(para.name, FduInterpolationInterface.getNextFloatValue_new(animator.GetFloat(para.name), i, this)); } } } } }
public override NetworkState.NETWORK_STATE_TYPE Deserialize() { NetworkState.NETWORK_STATE_TYPE state = NetworkState.NETWORK_STATE_TYPE.SUCCESS; int count = BufferedNetworkUtilsClient.ReadInt(ref state); for (int i = 0; i < count; ++i) { string name = BufferedNetworkUtilsClient.ReadString(ref state); FduClusterInputType type = (FduClusterInputType)BufferedNetworkUtilsClient.ReadByte(ref state); switch (type) { case FduClusterInputType.Axis: float fvalue = BufferedNetworkUtilsClient.ReadFloat(ref state); if (!_axisMap.ContainsKey(name)) { AxisData _data = new AxisData(); _data.reset(); _data.setValue(fvalue); _axisMap.Add(name, _data); } else { _axisMap[name].setValue(fvalue); } break; case FduClusterInputType.Button: bool bvalue = BufferedNetworkUtilsClient.ReadBool(ref state); if (!_buttonMap.ContainsKey(name)) { ButtonData _data = new ButtonData(); _data.reset(); _data.setValue(bvalue); _buttonMap.Add(name, _data); } else { _buttonMap[name].setValue(bvalue); } break; case FduClusterInputType.Tracker: Vector3 v3Value = BufferedNetworkUtilsClient.ReadVector3(ref state); Quaternion quValue = BufferedNetworkUtilsClient.ReadQuaternion(ref state); if (!_trackerMap.ContainsKey(name)) { TrackerData _data = new TrackerData(); _data.reset(); _data.setPosValue(v3Value); _data.setRotValue(quValue); _trackerMap.Add(name, _data); } else { _trackerMap[name].setPosValue(v3Value); _trackerMap[name].setRotValue(quValue); } break; } } //if(!BufferedNetworkUtilsClient.ReadString(ref state).Equals("ClusterInputMgrEndFlag")) //{ // Debug.LogError("Wrong end!"); //} //StartCoroutine(swapValueCo()); return(state); }
internal void DeserializeGenericData(ref NetworkState.NETWORK_STATE_TYPE state) { int genCount = BufferedNetworkUtilsClient.ReadInt(ref state); for (int i = 0; i < genCount; ++i) { string genName = BufferedNetworkUtilsClient.ReadString(ref state); string keyTypeName = BufferedNetworkUtilsClient.ReadString(ref state); string valueTypeName = BufferedNetworkUtilsClient.ReadString(ref state); string containerTypeName = BufferedNetworkUtilsClient.ReadString(ref state); System.Type valueType = System.Type.GetType(valueTypeName); System.Type keyType = System.Type.GetType(keyTypeName); genericData _data = new genericData(); _data.valueTypeName = valueTypeName; _data.containerTypeName = containerTypeName; int valueCount = BufferedNetworkUtilsClient.ReadInt(ref state); bool isStringK = false; bool isStringV = false; if (valueType != null && valueType.Equals(typeof(string))) { isStringV = true; } if (keyType != null && keyType.Equals(typeof(string))) { isStringK = true; } if (_data.containerTypeName == "dic") { for (int j = 0; j < valueCount; j = j + 2) { if (isStringK) { _data.valueData.Add(BufferedNetworkUtilsClient.ReadString(ref state)); } else if (keyType.IsEnum) { _data.valueData.Add(BufferedNetworkUtilsClient.ReadInt(ref state)); } else { _data.valueData.Add(BufferedNetworkUtilsClient.ReadStruct(keyType, ref state)); } if (isStringV) { _data.valueData.Add(BufferedNetworkUtilsClient.ReadString(ref state)); } else if (valueType.IsEnum) { _data.valueData.Add(BufferedNetworkUtilsClient.ReadInt(ref state)); } else { _data.valueData.Add(BufferedNetworkUtilsClient.ReadStruct(valueType, ref state)); } } } else if (_data.containerTypeName == "queue" || _data.containerTypeName == "list" || _data.containerTypeName == "stack") { for (int j = 0; j < valueCount; ++j) { if (isStringV) { _data.valueData.Add(BufferedNetworkUtilsClient.ReadString(ref state)); } else if (valueType.IsEnum) { _data.valueData.Add(BufferedNetworkUtilsClient.ReadInt(ref state)); } else { _data.valueData.Add(BufferedNetworkUtilsClient.ReadStruct(valueType, ref state)); } } } _genericMap.Add(genName, _data); } }
void switchCaseFunc(FduMultiAttributeObserverOP op, ref NetworkState.NETWORK_STATE_TYPE state) { for (int i = 1; i < attrList.Length; ++i) { if (!getObservedState(i)) { continue; } switch (i) { case 1: //InputContent if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendString(inputField.text); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { inputField.text = BufferedNetworkUtilsClient.ReadString(ref state); } break; case 2: //CaretPosition if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { inputField.caretPosition = FduInterpolationInterface.getNextIntValue_new(inputField.caretPosition, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendInt(inputField.caretPosition); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { inputField.caretPosition = BufferedNetworkUtilsClient.ReadInt(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty(i, BufferedNetworkUtilsClient.ReadInt(ref state)); } break; case 3: //CharacterValidation if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendByte((byte)inputField.characterValidation); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { inputField.characterValidation = (InputField.CharacterValidation)BufferedNetworkUtilsClient.ReadByte(ref state); } break; case 4: //ContentType if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendByte((byte)inputField.contentType); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { inputField.contentType = (InputField.ContentType)BufferedNetworkUtilsClient.ReadByte(ref state); } break; case 5: //InputType if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendByte((byte)inputField.inputType); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { inputField.inputType = (InputField.InputType)BufferedNetworkUtilsClient.ReadByte(ref state); } break; case 6: //KeyboardType if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendByte((byte)inputField.keyboardType); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { inputField.keyboardType = (TouchScreenKeyboardType)BufferedNetworkUtilsClient.ReadByte(ref state); } break; case 7: //LineType if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendByte((byte)inputField.lineType); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { inputField.lineType = (InputField.LineType)BufferedNetworkUtilsClient.ReadByte(ref state); } break; case 29: //Remove On Value Change CallBack On Slave break; case 30: //Remove On End Edit CallBack On Slave break; case 31: //Interpolation Option break; } } }
void switchCaseFunc(FduMultiAttributeObserverOP op, ref NetworkState.NETWORK_STATE_TYPE state) { for (int i = 1; i < attrList.Length; ++i) { if (!getObservedState(i)) { continue; } switch (i) { case 1: //Color if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { image.color = FduInterpolationInterface.getNextColorValue_new(image.color, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendColor(image.color); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { image.color = BufferedNetworkUtilsClient.ReadColor(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty_append(i, BufferedNetworkUtilsClient.ReadColor(ref state)); } break; case 2: //RaycastTarget if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendBool(image.raycastTarget); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { image.raycastTarget = BufferedNetworkUtilsClient.ReadBool(ref state); } break; case 3: //FillMethod if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendByte((byte)image.fillMethod); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { image.fillMethod = (Image.FillMethod)BufferedNetworkUtilsClient.ReadByte(ref state); } break; case 4: //FillAmount if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { image.fillAmount = FduInterpolationInterface.getNextFloatValue_new(image.fillAmount, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendFloat(image.fillAmount); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { image.fillAmount = BufferedNetworkUtilsClient.ReadFloat(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty_append(i, BufferedNetworkUtilsClient.ReadFloat(ref state)); } break; case 5: //FillCenter if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendBool(image.fillCenter); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { image.fillCenter = BufferedNetworkUtilsClient.ReadBool(ref state); } break; case 6: //FillClockwise if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendBool(image.fillClockwise); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { image.fillClockwise = BufferedNetworkUtilsClient.ReadBool(ref state); } break; case 7: //FillOrigin if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { image.fillOrigin = FduInterpolationInterface.getNextIntValue_new(image.fillOrigin, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendInt(image.fillOrigin); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { image.fillOrigin = BufferedNetworkUtilsClient.ReadInt(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty_append(i, BufferedNetworkUtilsClient.ReadInt(ref state)); } break; case 8: //ImageType if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendByte((byte)image.type); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { image.type = (Image.Type)BufferedNetworkUtilsClient.ReadByte(ref state); } break; case 9: //Image if (op == FduMultiAttributeObserverOP.SendData) { bool changeFlag = false; if (image.sprite != null && image.sprite.GetInstanceID() != spriteId) { //通过对比InstanceId判断该精灵是否被替换 changeFlag = true; spriteId = image.sprite.GetInstanceID(); } BufferedNetworkUtilsServer.SendBool(changeFlag); if (changeFlag) //若已经变化了 则将图片分解为JPG格式传送至节点 { byte[] arr; try { arr = image.sprite.texture.EncodeToJPG(); BufferedNetworkUtilsServer.SendByteArray(arr); BufferedNetworkUtilsServer.SendRect(image.sprite.textureRect); BufferedNetworkUtilsServer.SendVector2(image.sprite.pivot); } catch (System.Exception e) { Debug.LogError(e.Message); } } } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) //从节点先判断有没有图片传来 然后再解析 { bool changeFlag = BufferedNetworkUtilsClient.ReadBool(ref state); if (changeFlag) { byte[] bytes = BufferedNetworkUtilsClient.ReadByteArray(ref state); Rect rect = BufferedNetworkUtilsClient.ReadRect(ref state); Vector2 pivot = BufferedNetworkUtilsClient.ReadVector2(ref state); Texture2D texture = new Texture2D((int)GetComponent <RectTransform>().rect.width, (int)GetComponent <RectTransform>().rect.height); texture.LoadImage(bytes); image.sprite = Sprite.Create(texture, rect, pivot); } } break; } } }
public override NetworkState.NETWORK_STATE_TYPE Deserialize() { NetworkState.NETWORK_STATE_TYPE state = NetworkState.NETWORK_STATE_TYPE.SUCCESS; //active部分数据 int count = BufferedNetworkUtilsClient.ReadInt(ref state); int viewId, obCount; FduClusterView view; int obId, obFrameCount; for (int i = 0; i < count; ++i) { viewId = BufferedNetworkUtilsClient.ReadInt(ref state); obCount = BufferedNetworkUtilsClient.ReadInt(ref state); view = FduClusterViewManager.getClusterView(viewId); if (view != null) { try { for (int j = 0; j < obCount; ++j) { obId = BufferedNetworkUtilsClient.ReadInt(ref state); obFrameCount = BufferedNetworkUtilsClient.ReadInt(ref state); view.setFrameCountForEveryNFrameDTS(obId, obFrameCount); } view.gameObject.SetActive(true); } catch (System.Exception e) { Debug.LogError(e.Message); } } else { //view是空的也要读完 for (int j = 0; j < obCount; ++j) { obId = BufferedNetworkUtilsClient.ReadInt(ref state); obFrameCount = BufferedNetworkUtilsClient.ReadInt(ref state); } Debug.LogWarning("[FduActiveSyncManager-active]Can not find a view with ViewId " + viewId); } } //Inactive部分数据 count = BufferedNetworkUtilsClient.ReadInt(ref state); for (int i = 0; i < count; ++i) { viewId = BufferedNetworkUtilsClient.ReadInt(ref state); obCount = BufferedNetworkUtilsClient.ReadInt(ref state); view = FduClusterViewManager.getClusterView(viewId); if (view != null) { try { for (int j = 0; j < obCount; ++j) { obId = BufferedNetworkUtilsClient.ReadInt(ref state); obFrameCount = BufferedNetworkUtilsClient.ReadInt(ref state); view.setFrameCountForEveryNFrameDTS(obId, obFrameCount); } view.gameObject.SetActive(false); } catch (System.Exception e) { Debug.LogError(e.Message); } } else { //view是空的也要读完 for (int j = 0; j < obCount; ++j) { obId = BufferedNetworkUtilsClient.ReadInt(ref state); obFrameCount = BufferedNetworkUtilsClient.ReadInt(ref state); } Debug.LogWarning("[FduActiveSyncManager-Inactive]Can not find a view with ViewId " + viewId); } } if (BufferedNetworkUtilsClient.ReadString(ref state) != "FduActieSyncManagerEndFlag") { Debug.LogError("Wrong end of FduActiveSyncManager!"); } return(state); }
void switchCaseFunc(FduMultiAttributeObserverOP op, ref NetworkState.NETWORK_STATE_TYPE state) { for (int i = 1; i < attrList.Length; ++i) { if (!getObservedState(i)) { continue; } switch (i) { case 1: //AnchoredPosition if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { rectTransform.anchoredPosition = FduInterpolationInterface.getNextVector2Value_new(rectTransform.anchoredPosition, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendVector2(rectTransform.anchoredPosition); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { rectTransform.anchoredPosition = BufferedNetworkUtilsClient.ReadVector2(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty_append(i, BufferedNetworkUtilsClient.ReadVector2(ref state)); } break; case 2: //AnchoredPosition3D if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { rectTransform.anchoredPosition3D = FduInterpolationInterface.getNextVector3Value_new(rectTransform.anchoredPosition3D, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendVector3(rectTransform.anchoredPosition3D); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { rectTransform.anchoredPosition3D = BufferedNetworkUtilsClient.ReadVector3(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty_append(i, BufferedNetworkUtilsClient.ReadVector3(ref state)); } break; case 3: //Rotation if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { rectTransform.rotation = FduInterpolationInterface.getNextQuaternionValue_new(rectTransform.rotation, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendQuaternion(rectTransform.rotation); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { rectTransform.rotation = BufferedNetworkUtilsClient.ReadQuaternion(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty_append(i, BufferedNetworkUtilsClient.ReadQuaternion(ref state)); } break; case 4: //Scale if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { rectTransform.localScale = FduInterpolationInterface.getNextVector3Value_new(rectTransform.localScale, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendVector3(rectTransform.localScale); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { rectTransform.localScale = BufferedNetworkUtilsClient.ReadVector3(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty_append(i, BufferedNetworkUtilsClient.ReadVector3(ref state)); } break; case 5: //Parent if (op == FduMultiAttributeObserverOP.SendData) { string parentPath; if (rectTransform.parent == null) { parentPath = ""; } else { parentPath = FduSupportClass.getGameObjectPath(rectTransform.parent.gameObject); } if (parentPath == null) { parentPath = ""; } BufferedNetworkUtilsServer.SendString(parentPath); } else if (op == FduMultiAttributeObserverOP.Receive_Direct || op == FduMultiAttributeObserverOP.Receive_Interpolation) { string parentPath; if (rectTransform.parent == null) { parentPath = ""; } else { parentPath = FduSupportClass.getGameObjectPath(rectTransform.parent.gameObject); } if (parentPath == null) { parentPath = ""; } string getPath = BufferedNetworkUtilsClient.ReadString(ref state); if (parentPath != getPath) //hierarchy changed { GameObject go = FduSupportClass.getGameObjectByPath(getPath); if (go == null) { rectTransform.SetParent(null); } else { rectTransform.SetParent(go.transform); } } } break; case 6: //AnchorMax if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { rectTransform.anchorMax = FduInterpolationInterface.getNextVector2Value_new(rectTransform.anchorMax, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendVector2(rectTransform.anchorMax); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { rectTransform.anchorMax = BufferedNetworkUtilsClient.ReadVector2(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty(i, BufferedNetworkUtilsClient.ReadVector2(ref state)); } break; case 7: //AnchorMin if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { rectTransform.anchorMin = FduInterpolationInterface.getNextVector2Value_new(rectTransform.anchorMin, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendVector2(rectTransform.anchorMin); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { rectTransform.anchorMin = BufferedNetworkUtilsClient.ReadVector2(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty(i, BufferedNetworkUtilsClient.ReadVector2(ref state)); } break; case 8: //OffsetMax if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { rectTransform.offsetMax = FduInterpolationInterface.getNextVector2Value_new(rectTransform.offsetMax, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendVector2(rectTransform.offsetMax); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { rectTransform.offsetMax = BufferedNetworkUtilsClient.ReadVector2(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty(i, BufferedNetworkUtilsClient.ReadVector2(ref state)); } break; case 9: //OffsetMin if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { rectTransform.offsetMin = FduInterpolationInterface.getNextVector2Value_new(rectTransform.offsetMin, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendVector2(rectTransform.offsetMin); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { rectTransform.offsetMin = BufferedNetworkUtilsClient.ReadVector2(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty(i, BufferedNetworkUtilsClient.ReadVector2(ref state)); } break; case 10: //Pivot if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { rectTransform.pivot = FduInterpolationInterface.getNextVector2Value_new(rectTransform.pivot, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendVector2(rectTransform.pivot); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { rectTransform.pivot = BufferedNetworkUtilsClient.ReadVector2(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty(i, BufferedNetworkUtilsClient.ReadVector2(ref state)); } break; case 11: //SizeDelta if (op == FduMultiAttributeObserverOP.Update) { if (getCachedProperytyCount(i) > 0) { rectTransform.sizeDelta = FduInterpolationInterface.getNextVector2Value_new(rectTransform.sizeDelta, i, this); } } else if (op == FduMultiAttributeObserverOP.SendData) { BufferedNetworkUtilsServer.SendVector2(rectTransform.sizeDelta); } else if (op == FduMultiAttributeObserverOP.Receive_Direct) { rectTransform.sizeDelta = BufferedNetworkUtilsClient.ReadVector2(ref state); } else if (op == FduMultiAttributeObserverOP.Receive_Interpolation) { setCachedProperty(i, BufferedNetworkUtilsClient.ReadVector2(ref state)); } break; } } }