//Protobuffer从MemoryStream进行反序列化 public bool FromMemoryStream(MemoryStream protoMS) { ActionCommandInfoV1 pb = ProtoBuf.Serializer.Deserialize <ActionCommandInfoV1>(protoMS); FromPB(pb); return(true); }
//从Protobuffer类型初始化 public void FromPB(ActionCommandInfoV1 v) { if (v == null) { return; } m_CommandType = v.CommandType; m_StartTime = v.StartTime; m_DurationTime = v.DurationTime; m_AnimationTriggerCondition = v.AnimationTriggerCondition; m_EffectName = v.EffectName; m_EffectBoneHook = v.EffectBoneHook; m_EffectPositionOffset.FromPB(v.EffectPositionOffset); m_EffectStayInLocalSpace = v.EffectStayInLocalSpace; m_EffectControlObjectId = v.EffectControlObjectId; m_TranslateControlId = v.TranslateControlId; m_TranslateOffset.FromPB(v.TranslateOffset); m_ActorAttackPart.Clear(); for (int i = 0; i < v.ActorAttackPart.Count; i++) { m_ActorAttackPart.Add(v.ActorAttackPart[i]); } m_TranslateEase = v.TranslateEase; m_AttackShowHitEffect = v.AttackShowHitEffect; m_AttackHitEffectName = v.AttackHitEffectName; m_AttackHitEffectDuration = v.AttackHitEffectDuration; m_AttackFragmentCount = v.AttackFragmentCount; m_AttackFragmentIntervalTime = v.AttackFragmentIntervalTime; m_AttackDamageRadio = v.AttackDamageRadio; m_BuffSelfActive = v.BuffSelfActive; m_BuffTargetActive = v.BuffTargetActive; m_AttackBehaviourBackDistance = v.AttackBehaviourBackDistance; m_AttackBehaviourAirHeight = v.AttackBehaviourAirHeight; m_EffectRotationOffset.FromPB(v.EffectRotationOffset); m_FlashControlObjectId = v.FlashControlObjectId; m_AttackStiffTime = v.AttackStiffTime; m_AttackShake = v.AttackShake; m_AttackFlash = v.AttackFlash; m_AttackBehaviourBackSpeed = v.AttackBehaviourBackSpeed; m_AttackBehaviourAirSpeed = v.AttackBehaviourAirSpeed; m_AttackBehaviourBack = v.AttackBehaviourBack; m_AttackBehaviourAir = v.AttackBehaviourAir; m_AttackBehaviourZoom = v.AttackBehaviourZoom; m_SoundName = v.SoundName; m_Trigger = v.Trigger; m_TriggerIndex = v.TriggerIndex; m_AttackHitDummy = v.AttackHitDummy; m_AttackHitSound = v.AttackHitSound; m_HitShakeCameraXRange = v.HitShakeCameraXRange; m_HitShakeCameraYRange = v.HitShakeCameraYRange; m_HitShakeCameraCount = v.HitShakeCameraCount; m_HitShakeCameraDurationTime = v.HitShakeCameraDurationTime; m_HiddenWeaponMode = v.HiddenWeaponMode; m_NextActionName = v.NextActionName; m_TranslateWrapMode = v.TranslateWrapMode; m_IsTriggerSecondAttack = v.IsTriggerSecondAttack; m_IsHitGround = v.IsHitGround; m_SkillActionName = v.SkillActionName; m_WarningRes1 = v.WarningRes1; m_WarningRes2 = v.WarningRes2; m_WarningMaxScale.FromPB(v.WarningMaxScale); m_WarningScaleMode = v.WarningScaleMode; m_WarningLockAxle = v.WarningLockAxle; m_WarningPositionOffset.FromPB(v.WarningPositionOffset); m_IsEffectFollow = v.IsEffectFollow; m_IsWarningTarget = v.IsWarningTarget; m_AttackBehaviourAirDurationTime = v.AttackBehaviourAirDurationTime; m_IsColliderDestroy = v.IsColliderDestroy; m_IsAttackRangeFollow = v.IsAttackRangeFollow; m_IsAnimationLoop = v.IsAnimationLoop; m_TranslateAngle = v.TranslateAngle; m_IsAttackRangeShade = v.IsAttackRangeShade; m_AttackInterval = v.AttackInterval; m_IsShowAttackRect = v.IsShowAttackRect; m_EffectBulletLaunchAngle = v.EffectBulletLaunchAngle; m_EffectBulletSpeed = v.EffectBulletSpeed; m_EffectBulletLaunchTimeIntervalRange.FromPB(v.EffectBulletLaunchTimeIntervalRange); m_EffectBulletMaxCout = v.EffectBulletMaxCout; m_EffectBulletLifeTimeInteralRange.FromPB(v.EffectBulletLifeTimeInteralRange); m_EffectBulletType = v.EffectBulletType; m_EffectBulletInitPosList.Clear(); for (int i = 0; i < v.EffectBulletInitPosList.Count; i++) { m_EffectBulletInitPosList.Add(new ActionV3WraperV1()); } for (int i = 0; i < v.EffectBulletInitPosList.Count; i++) { m_EffectBulletInitPosList[i].FromPB(v.EffectBulletInitPosList[i]); } m_EffectBulletLaunchMaxCount = v.EffectBulletLaunchMaxCount; m_EffectBulletIsFollow = v.EffectBulletIsFollow; m_AttackBehaviourAirDownSpeed = v.AttackBehaviourAirDownSpeed; m_EffectDirectionLockType = v.EffectDirectionLockType; m_IsIrregularityEffect = v.IsIrregularityEffect; m_EffectSize.FromPB(v.EffectSize); m_AttackRangePostion.FromPB(v.AttackRangePostion); m_AttackRangeSize.FromPB(v.AttackRangeSize); m_AttackShape = v.AttackShape; m_AttackCircleOrigin.FromPB(v.AttackCircleOrigin); m_AttackCircleRadius = v.AttackCircleRadius; m_AttackCircleAngle = v.AttackCircleAngle; }
//转化成Protobuffer类型函数 public ActionCommandInfoV1 ToPB() { ActionCommandInfoV1 v = new ActionCommandInfoV1(); v.CommandType = m_CommandType; v.StartTime = m_StartTime; v.DurationTime = m_DurationTime; v.AnimationTriggerCondition = m_AnimationTriggerCondition; v.EffectName = m_EffectName; v.EffectBoneHook = m_EffectBoneHook; v.EffectPositionOffset = m_EffectPositionOffset.ToPB(); v.EffectStayInLocalSpace = m_EffectStayInLocalSpace; v.EffectControlObjectId = m_EffectControlObjectId; v.TranslateControlId = m_TranslateControlId; v.TranslateOffset = m_TranslateOffset.ToPB(); for (int i = 0; i < (int)m_ActorAttackPart.Count; i++) { v.ActorAttackPart.Add(m_ActorAttackPart[i]); } v.TranslateEase = m_TranslateEase; v.AttackShowHitEffect = m_AttackShowHitEffect; v.AttackHitEffectName = m_AttackHitEffectName; v.AttackHitEffectDuration = m_AttackHitEffectDuration; v.AttackFragmentCount = m_AttackFragmentCount; v.AttackFragmentIntervalTime = m_AttackFragmentIntervalTime; v.AttackDamageRadio = m_AttackDamageRadio; v.BuffSelfActive = m_BuffSelfActive; v.BuffTargetActive = m_BuffTargetActive; v.AttackBehaviourBackDistance = m_AttackBehaviourBackDistance; v.AttackBehaviourAirHeight = m_AttackBehaviourAirHeight; v.EffectRotationOffset = m_EffectRotationOffset.ToPB(); v.FlashControlObjectId = m_FlashControlObjectId; v.AttackStiffTime = m_AttackStiffTime; v.AttackShake = m_AttackShake; v.AttackFlash = m_AttackFlash; v.AttackBehaviourBackSpeed = m_AttackBehaviourBackSpeed; v.AttackBehaviourAirSpeed = m_AttackBehaviourAirSpeed; v.AttackBehaviourBack = m_AttackBehaviourBack; v.AttackBehaviourAir = m_AttackBehaviourAir; v.AttackBehaviourZoom = m_AttackBehaviourZoom; v.SoundName = m_SoundName; v.Trigger = m_Trigger; v.TriggerIndex = m_TriggerIndex; v.AttackHitDummy = m_AttackHitDummy; v.AttackHitSound = m_AttackHitSound; v.HitShakeCameraXRange = m_HitShakeCameraXRange; v.HitShakeCameraYRange = m_HitShakeCameraYRange; v.HitShakeCameraCount = m_HitShakeCameraCount; v.HitShakeCameraDurationTime = m_HitShakeCameraDurationTime; v.HiddenWeaponMode = m_HiddenWeaponMode; v.NextActionName = m_NextActionName; v.TranslateWrapMode = m_TranslateWrapMode; v.IsTriggerSecondAttack = m_IsTriggerSecondAttack; v.IsHitGround = m_IsHitGround; v.SkillActionName = m_SkillActionName; v.WarningRes1 = m_WarningRes1; v.WarningRes2 = m_WarningRes2; v.WarningMaxScale = m_WarningMaxScale.ToPB(); v.WarningScaleMode = m_WarningScaleMode; v.WarningLockAxle = m_WarningLockAxle; v.WarningPositionOffset = m_WarningPositionOffset.ToPB(); v.IsEffectFollow = m_IsEffectFollow; v.IsWarningTarget = m_IsWarningTarget; v.AttackBehaviourAirDurationTime = m_AttackBehaviourAirDurationTime; v.IsColliderDestroy = m_IsColliderDestroy; v.IsAttackRangeFollow = m_IsAttackRangeFollow; v.IsAnimationLoop = m_IsAnimationLoop; v.TranslateAngle = m_TranslateAngle; v.IsAttackRangeShade = m_IsAttackRangeShade; v.AttackInterval = m_AttackInterval; v.IsShowAttackRect = m_IsShowAttackRect; v.EffectBulletLaunchAngle = m_EffectBulletLaunchAngle; v.EffectBulletSpeed = m_EffectBulletSpeed; v.EffectBulletLaunchTimeIntervalRange = m_EffectBulletLaunchTimeIntervalRange.ToPB(); v.EffectBulletMaxCout = m_EffectBulletMaxCout; v.EffectBulletLifeTimeInteralRange = m_EffectBulletLifeTimeInteralRange.ToPB(); v.EffectBulletType = m_EffectBulletType; for (int i = 0; i < (int)m_EffectBulletInitPosList.Count; i++) { v.EffectBulletInitPosList.Add(m_EffectBulletInitPosList[i].ToPB()); } v.EffectBulletLaunchMaxCount = m_EffectBulletLaunchMaxCount; v.EffectBulletIsFollow = m_EffectBulletIsFollow; v.AttackBehaviourAirDownSpeed = m_AttackBehaviourAirDownSpeed; v.EffectDirectionLockType = m_EffectDirectionLockType; v.IsIrregularityEffect = m_IsIrregularityEffect; v.EffectSize = m_EffectSize.ToPB(); v.AttackRangePostion = m_AttackRangePostion.ToPB(); v.AttackRangeSize = m_AttackRangeSize.ToPB(); v.AttackShape = m_AttackShape; v.AttackCircleOrigin = m_AttackCircleOrigin.ToPB(); v.AttackCircleRadius = m_AttackCircleRadius; v.AttackCircleAngle = m_AttackCircleAngle; return(v); }