public void MoveUpdateCallBack() { XShake shake = gameObject.GetComponent <XShake>(); if (shake != null) { GameObject.Destroy(shake); } }
public void Beattack_1(int skillId, int skillLv, bool playAnim = true, bool isDead = false, bool isDodge = false, BattleActor attacker = null, bool playEffect = true) { //SkillData skill = SkillData.GetData(skillId); BattleActor entity = Battle.Instance.GetActorByInstId(PlayerID); if (entity == null) { return; } if (entity.isDead) { Reborn(); } else if (skillId == 1031)//崩击 { int effId = GetStateBeattackEffectID(skillId); if (effId != -1) { // 如果是防御特效 ExcuteState(StateInst.ExcuteType.ET_Beattack, null, null, true); //die if (isDead) { GlobalInstanceFunction.Instance.setTimeScale(Battle.Instance.reportPlaySpeed_ * 0.3f); m_EntityAnimator.Play("Base Layer.beattack02", -1, 0.1f); SetEntityActionTime(0f); XShake shake = ActorObj.GetComponent <XShake>(); if (shake != null) { GameObject.Destroy(shake); } shake = ActorObj.AddComponent <XShake>(); shake.battlePos = Battle.Instance.GetActorByInstId(PlayerID).BattlePos; shake.originPos_ = ActorObj.transform.position; shake.OnBeattackActionFinish += OnBeattackActionFinish; shake.OnMoveBackActionFinish += OnMoveBackActionFinish; m_bPlayingBeattackAction = true; } else { if (playAnim) { if (takeDmgAction.Equals(GlobalValue.TTakeDmg)) { //if (!m_bPlayingBeattackAction) //{ // m_EntityAnimator.Play("Base Layer.beattack02", -1, 0.1f); SetAnimationParam(takeDmgAction, AnimatorParamType.APT_Trigger); // m_EntityAnimator.StartRecording(0); // m_bPlayingBeattackAction = true; //} //else //{ // m_EntityAnimator.StopRecording(); // m_EntityAnimator.StartPlayback(); // m_EntityAnimator.playbackTime = 0f; // isPlayBack = true; //} //SetEntityActionTime(0); //GlobalInstanceFunction.Instance.Invoke(() => //{ XShake shake = ActorObj.GetComponent <XShake>(); if (shake != null) { GameObject.Destroy(shake); } shake = ActorObj.AddComponent <XShake>(); shake.OnlyBack(); selfActor_ = Battle.Instance.GetActorByInstId(m_PlayerID); shake.battlePos = selfActor_.BattlePos; shake.originPos_ = ActorObj.transform.position;//Battle.Instance.GetStagePointByIndex(selfActor_.BattlePos).position; shake.OnBeattackActionFinish += OnBeattackActionFinish; shake.OnMoveBackActionFinish += OnMoveBackActionFinish; //SetEntityActionTime(1); //}, 1); } else { //if (!m_bPlayingBeattackAction) //{ SetAnimationParam(takeDmgAction, AnimatorParamType.APT_Trigger); // m_EntityAnimator.StartRecording(0); // m_bPlayingBeattackAction = true; //} //else //{ // m_EntityAnimator.StopRecording(); // m_EntityAnimator.StartPlayback(); // m_EntityAnimator.playbackTime = 0f; // isPlayBack = true; //} } } } } else { m_bPlayingBeattackAction = false; EffectAPI.PlaySceneEffect(EFFECT_ID.EFFECT_BengjiMiss, Vector3.zero, ActorObj.transform, null, true); } } else if (/*skill != null &&*/ skillId != 2391 /*复活技能不调用受击动作*/) { if (playEffect) { int effId = GetStateBeattackEffectID(skillId); if (effId != -1) { SkillData skilldata = null; if (attacker != null) { skilldata = SkillData.GetData(skillId, skillLv); if (skilldata != null) { //如果该闪避但没有闪避状态 强制闪避一下。。。 if (isDodge && !HasState(StateType.ST_Dodge)) { if (crtStateData_._BeattackPkg.effectId_ != 0) { EffectAPI.Play(EFFECT_ID.EFFECT_DODGE, ActorObj, null, null, null, (EffectInst ei, ParamData data) => { ei.transform.parent = ActorObj.transform; ei.transform.localScale = Vector3.one; }); } } ExcuteState(StateInst.ExcuteType.ET_Beattack, null, null, skilldata._IsPhysic, isDodge); takeDmgAction = GlobalValue.TDodge; } } } } //die if (isDead) { GlobalInstanceFunction.Instance.setTimeScale(Battle.Instance.reportPlaySpeed_ * 0.7f); m_EntityAnimator.Play("Base Layer.beattack02", -1, 0.1f); SetEntityActionTime(0f); XShake shake = ActorObj.GetComponent <XShake>(); if (shake != null) { GameObject.Destroy(shake); } shake = ActorObj.AddComponent <XShake>(); shake.battlePos = Battle.Instance.GetActorByInstId(PlayerID).BattlePos; shake.originPos_ = ActorObj.transform.position; shake.OnBeattackActionFinish += OnBeattackActionFinish; shake.OnMoveBackActionFinish += OnMoveBackActionFinish; m_bPlayingBeattackAction = true; } else { if (playAnim) { if (takeDmgAction.Equals(GlobalValue.TTakeDmg)) { //if (!m_bPlayingBeattackAction) //{ SetAnimationParam(takeDmgAction, AnimatorParamType.APT_Trigger); //m_EntityAnimator.StartRecording(0); //m_bPlayingBeattackAction = true; //} //else //{ // m_EntityAnimator.StopRecording(); // m_EntityAnimator.StartPlayback(); // m_EntityAnimator.playbackTime = 0f; // isPlayBack = true; //} //SetEntityActionTime(0); //GlobalInstanceFunction.Instance.Invoke(() => //{ XShake shake = ActorObj.GetComponent <XShake>(); if (shake != null) { GameObject.Destroy(shake); } shake = ActorObj.AddComponent <XShake>(); shake.OnlyBack(); selfActor_ = Battle.Instance.GetActorByInstId(m_PlayerID); shake.battlePos = selfActor_.BattlePos; shake.originPos_ = ActorObj.transform.position;//Battle.Instance.GetStagePointByIndex(selfActor_.BattlePos).position; shake.OnBeattackActionFinish += OnBeattackActionFinish; shake.OnMoveBackActionFinish += OnMoveBackActionFinish; //SetEntityActionTime(1); //}, 1); } else { //if (!m_bPlayingBeattackAction) //{ SetAnimationParam(takeDmgAction, AnimatorParamType.APT_Trigger); // m_EntityAnimator.StartRecording(0); // m_bPlayingBeattackAction = true; //} //else //{ // m_EntityAnimator.StopRecording(); // m_EntityAnimator.StartPlayback(); // m_EntityAnimator.playbackTime = 0f; // isPlayBack = true; //} } } } } takeDmgAction = GlobalValue.TTakeDmg; }