diff options
author | chai <chaifix@163.com> | 2020-11-16 08:30:54 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2020-11-16 08:30:54 +0800 |
commit | f325841eff10ae492ce6c634d4b07cf058a068c6 (patch) | |
tree | 980d81a4b87d571fcb893fc44f8809af97466bca /Assets/Scripts/Test/SaionjiScript_States.cs | |
parent | be3ca8b172f22ce7c4c4316745e0df05de58b069 (diff) |
*state system
Diffstat (limited to 'Assets/Scripts/Test/SaionjiScript_States.cs')
-rw-r--r-- | Assets/Scripts/Test/SaionjiScript_States.cs | 382 |
1 files changed, 382 insertions, 0 deletions
diff --git a/Assets/Scripts/Test/SaionjiScript_States.cs b/Assets/Scripts/Test/SaionjiScript_States.cs new file mode 100644 index 00000000..68d09280 --- /dev/null +++ b/Assets/Scripts/Test/SaionjiScript_States.cs @@ -0,0 +1,382 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public partial class SaionjiScript : Avatar +{ + + /// <summary> + /// 设置states + /// </summary> + void SetupStates() + { + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // states + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + IdleState idle = new IdleState(animator, Anim_Idle); + + MoveState move = new MoveState(animator, Anim_Run); + MoveState dash = new MoveState(animator, Anim_DashWithSword); + + JumpStateConfig jumpConfig = new JumpStateConfig + { + animator = animator, + collider = m_BodyCollider, + body = m_Body, + neutralJumpSpeedY = 13f, + fowardJumpSpeedX = 5f, + backwardJumpSpeedX = -5f, + animJump = Anim_JumpStart, + animJumpEnd = Anim_JumpEnd, + animNU = Anim_JumpUp, + animND = Anim_JumpDown, + animFU = Anim_JumpUp, + animFD = Anim_JumpDown, + animBU = Anim_JumpUp, + animBD = Anim_JumpDown, + skipStart = true, + }; + JumpState jump = new JumpState(jumpConfig); + + AttackState airDash = new AttackState(animator, Anim_AirDash, m_Body); + + AttackStateConfig config; + + //招式会绑定一个motion + HitDefination hitDef = new HitDefination + { + type = HitType.Air, + hurtAddForce = new Vector3(0, 10000, 0) + }; + AttackState attk1 = new AttackState(animator, Anim_LightAttack1, m_Body); + attk1.AddHitDefination(hitDef); + AttackState attk2 = new AttackState(animator, Anim_LightAttack2, m_Body); + attk2.AddHitDefination(hitDef); + AttackState attk3 = new AttackState(animator, Anim_LightAttack3, m_Body); + attk3.AddHitDefination(hitDef); + AttackState attk4 = new AttackState(animator, Anim_LightAttack4, m_Body); + attk4.AddHitDefination(hitDef); + AttackState attk5 = new AttackState(animator, Anim_LightAttack5, m_Body); + attk5.AddHitDefination(hitDef); + AttackState attkRush = new AttackState(animator, Anim_LightAttackRush, m_Body); + + config = new AttackStateConfig() { + animator = this.animator, + body = this.m_Body, + motion = Anim_SideKick, + velocity = new Vector3(20, 1.5f, 0) + }; + AttackState sideKick = new AttackState(config); + + AttackState sideKickRush = new AttackState(animator, Anim_SideKickRush, m_Body); + AttackState superKick = new AttackState(animator, Anim_SuperKick, m_Body); + AttackState gun1 = new AttackState(animator, Anim_Gun1, m_Body); + AttackState gun2 = new AttackState(animator, Anim_Gun2, m_Body); + AttackState gun3 = new AttackState(animator, Anim_Gun3, m_Body); + AttackState gun4 = new AttackState(animator, Anim_Gun4, m_Body); + + AttackState airAttk1 = new AttackState(animator, Anim_AirAttack1, m_Body); + hitDef = new HitDefination + { + type = HitType.Air, + hurtAddForce = new Vector3(0,5000,0) + }; + airAttk1.AddHitDefination(hitDef); + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // actions + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ActionTurn180 turn180 = new ActionTurn180(this.transform); + ActionTowardLeft towardLeft = new ActionTowardLeft(this.transform); + ActionTowardRight towardRight = new ActionTowardRight(this.transform); + + ActionJump toJump = new ActionJump(m_StateSystem, jump); + ActionJumpForward toJumpForward = new ActionJumpForward(m_StateSystem, jump); + + ActionSwitchState switchToMove = new ActionSwitchState(m_StateSystem, move); + ActionSwitchState switchToIdle = new ActionSwitchState(m_StateSystem, idle); + ActionSwitchState switchToAttk1 = new ActionSwitchState(m_StateSystem, attk1); + ActionSwitchState switchToAttk2 = new ActionSwitchState(m_StateSystem, attk2); + ActionSwitchState switchToAttk3 = new ActionSwitchState(m_StateSystem, attk3); + ActionSwitchState switchToAttk4 = new ActionSwitchState(m_StateSystem, attk4); + ActionSwitchState switchToAttk5 = new ActionSwitchState(m_StateSystem, attk5); + ActionSwitchState switchToAttkRush = new ActionSwitchState(m_StateSystem, attkRush); + ActionSwitchState switchToSideKick = new ActionSwitchState(m_StateSystem, sideKick); + ActionSwitchState switchToSideKickRush = new ActionSwitchState(m_StateSystem, sideKickRush); + ActionSwitchState switchToDash = new ActionSwitchState(m_StateSystem, dash); + ActionSwitchState switchToSuperKick = new ActionSwitchState(m_StateSystem, superKick); + ActionSwitchState switchToGun1 = new ActionSwitchState(m_StateSystem, gun1); + ActionSwitchState switchToGun2 = new ActionSwitchState(m_StateSystem, gun2); + ActionSwitchState switchToGun3 = new ActionSwitchState(m_StateSystem, gun3); + ActionSwitchState switchToGun4 = new ActionSwitchState(m_StateSystem, gun4); + + ActionSwitchState switchToAirDash = new ActionSwitchState(m_StateSystem, airDash); + ActionSwitchState switchToAirAttk1 = new ActionSwitchState(m_StateSystem, airAttk1); + + ActionWipeCmdRecord wipeCmdRecord = new ActionWipeCmdRecord(); + + ActionEffectGhost enableGhost = new ActionEffectGhost(Effects[0] as CharacterGhostEffect); + ActionDisableGhost disableGhost = new ActionDisableGhost(Effects[0] as CharacterGhostEffect); + + ActionActivateAfterImage enableAfterImage = new ActionActivateAfterImage(true); + ActionActivateAfterImage disaleAfterImage = new ActionActivateAfterImage(false); + ActionAfterImageInterval smallAfterImageInterval = new ActionAfterImageInterval(2); + ActionAfterImageInterval midiumAfterImageInterval = new ActionAfterImageInterval(5); + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // conditions + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ConditionCommand condLeftCmd = new ConditionCommand(GamepadButton.Left); + ConditionCommand condRightCmd = new ConditionCommand(GamepadButton.Right); + ConditionNoMoveButtonHold condNoMoveButtonHold = new ConditionNoMoveButtonHold(); + ConditionButtonHold condRightButtonHold = new ConditionButtonHold(GamepadButton.Right); + ConditionButtonHold condLeftButtonHold = new ConditionButtonHold(GamepadButton.Left); + ConditionCommand condUpCmd = new ConditionCommand(GamepadButton.Up); + ConditionCommand condTriangleCmd = new ConditionCommand(GamepadButton.Triangle); + ConditionCommand condCircleCmd = new ConditionCommand(GamepadButton.Circle); + ConditionCommand condCrossCmd = new ConditionCommand(GamepadButton.Cross); + ConditionCommand condSquareCmd = new ConditionCommand(GamepadButton.Square); + ConditionTowardLeft condTowardLeft = new ConditionTowardLeft(this.transform); + ConditionTowardRight condTowardRight = new ConditionTowardRight(this.transform); + ConditionCommandSeq condRight2Cmd = new ConditionCommandSeq(new List<GamepadButton>{GamepadButton.Right, GamepadButton.Right }, 0.8f); + ConditionCommandSeq condLeft2Cmd = new ConditionCommandSeq(new List<GamepadButton> { GamepadButton.Left, GamepadButton.Left }, 0.8f); + ConditionCommandSeq condDRC = new ConditionCommandSeq(new List<GamepadButton> { GamepadButton.Down, GamepadButton.Right, GamepadButton.Circle}, 1f); + ConditionCommandSeq condDLC = new ConditionCommandSeq(new List<GamepadButton> { GamepadButton.Down, GamepadButton.Left, GamepadButton.Circle}, 1f); + + ConditionHit condIsHit = new ConditionHit(this); + + ConditionJumpDone condJumpDone = new ConditionJumpDone(jump); + ConditionJumpOnGround condJumpOnGround = new ConditionJumpOnGround(jump); + + ConditionInAir condInAir = new ConditionInAir(m_BodyCollider); + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // common triggers + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + Trigger triggerTurnRight = new Trigger(And(condRightCmd, Not(condTowardRight)), towardRight); + Trigger triggerTurnLeft = new Trigger(And(condLeftCmd, Not(condTowardLeft)), towardLeft); + + Trigger trigger = null; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // state setup + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + // idle state + trigger = new Trigger(condTriangleCmd, toJump) ; + idle.AddTrigger(trigger); + trigger = new Trigger(And(condTowardRight, condDRC), new List<ActionBase> { wipeCmdRecord, switchToSuperKick }); + idle.AddTrigger(trigger); + trigger = new Trigger(And(condTowardLeft, condDLC), new List<ActionBase> { wipeCmdRecord, switchToSuperKick }); + idle.AddTrigger(trigger); + trigger = new Trigger(And(condTowardRight, And(condRightCmd, condRight2Cmd)), new List<ActionBase> { wipeCmdRecord , switchToDash }); + idle.AddTrigger(trigger); + trigger = new Trigger(And(condTowardLeft, And(condLeftCmd, condLeft2Cmd)), new List<ActionBase> { wipeCmdRecord , switchToDash }); + idle.AddTrigger(trigger); + trigger = new Trigger(condRightButtonHold, new List<ActionBase> { switchToMove, towardRight }); + idle.AddTrigger(trigger); + trigger = new Trigger(condLeftButtonHold, new List<ActionBase> { switchToMove, towardLeft }); + idle.AddTrigger(trigger); + trigger = new Trigger(condCircleCmd, switchToAttk1); + idle.AddTrigger(trigger); + trigger = new Trigger(condCrossCmd, switchToSideKick); + idle.AddTrigger(trigger); + trigger = new Trigger(condSquareCmd, switchToGun1); + idle.AddTrigger(trigger); + idle.AddTrigger(triggerTurnRight); + idle.AddTrigger(triggerTurnLeft); + + // move state + //trigger = new Trigger(Or(Ands(condRightButtonHold, condTowardRight, condTriangleCmd), Ands(condLeftButtonHold, condTowardLeft, condTriangleCmd)), toJumpForward); + //move.AddTrigger(trigger); + trigger = new Trigger(condTriangleCmd, toJump); + move.AddTrigger(trigger); + trigger = new Trigger(And(condTowardRight, And(condRightCmd, condRight2Cmd)), new List<ActionBase> { wipeCmdRecord, switchToDash, }); + move.AddTrigger(trigger); + trigger = new Trigger(And(condTowardLeft, And(condLeftCmd, condLeft2Cmd)), new List<ActionBase> { wipeCmdRecord, switchToDash }); + move.AddTrigger(trigger); + trigger = new Trigger(And(condRightButtonHold, condCircleCmd), new List<ActionBase> { towardRight, switchToAttkRush }); + move.AddTrigger(trigger); + trigger = new Trigger(And(condLeftButtonHold, condCircleCmd), new List<ActionBase> { towardLeft, switchToAttkRush }); + move.AddTrigger(trigger); + trigger = new Trigger(And(condRightButtonHold, condCrossCmd), new List<ActionBase> { towardRight, switchToSideKickRush }); + move.AddTrigger(trigger); + trigger = new Trigger(And(condLeftButtonHold, condCrossCmd), new List<ActionBase> { towardLeft, switchToSideKickRush }); + move.AddTrigger(trigger); + trigger = new Trigger(And(condTowardRight, Not(condRightButtonHold)), switchToIdle); + move.AddTrigger(trigger); + trigger = new Trigger(And(condTowardLeft, Not(condLeftButtonHold)), switchToIdle); + move.AddTrigger(trigger); + trigger = new Trigger(condCircleCmd, switchToAttk1); + move.AddTrigger(trigger); + trigger = new Trigger(condCrossCmd, switchToSideKick); + move.AddTrigger(trigger); + + // jump state + trigger = new Trigger(condJumpOnGround, new ActionSetVelocity(m_Body, Vector3.zero), TriggerOnlyOnce.On, TriggerSwallow.Off); + jump.AddTrigger(trigger); + trigger = new Trigger(Ands(condInAir, condRightCmd, condRight2Cmd), new List<ActionBase> { towardRight, switchToAirDash, new ActionSetVelocity(m_Body, new Vector3(25, 0, 0)), new ActionDontUseGravity(m_Body), enableAfterImage, midiumAfterImageInterval}); + jump.AddTrigger(trigger); + trigger = new Trigger(Ands(condInAir, condLeftCmd, condLeft2Cmd), new List<ActionBase> { towardLeft, switchToAirDash, new ActionSetVelocity(m_Body, new Vector3(-25, 0, 0)), new ActionDontUseGravity(m_Body), enableAfterImage, midiumAfterImageInterval }); + jump.AddTrigger(trigger); + trigger = new Trigger(Ands(condInAir, condCircleCmd), new List<ActionBase> { switchToAirAttk1, new ActionSetLocalVelocity(m_Body, new Vector3(0, 0, 0)), new ActionDontUseGravity(m_Body), enableAfterImage, smallAfterImageInterval}); + jump.AddTrigger(trigger); + ConditionCheckJumpState condCheckJump = new ConditionCheckJumpState(jump, JumpState.Stage.None, JumpState.Direction.Neutral); + trigger = new Trigger(And(condRightButtonHold, condCheckJump), new List<ActionBase> { towardRight, new ActionSetVelocityX(m_Body, 4)}, TriggerOnlyOnce.Off, TriggerSwallow.Off); + jump.AddTrigger(trigger); + trigger = new Trigger(And(condLeftButtonHold, condCheckJump), new List<ActionBase> { towardLeft, new ActionSetVelocityX(m_Body,-4) }, TriggerOnlyOnce.Off, TriggerSwallow.Off); + jump.AddTrigger(trigger); + //trigger = new Trigger(Ands(condCheckJump, Not(condRightButtonHold), Not(condLeftButtonHold)), new ActionSetVelocityX(m_Body, 0), TriggerOnlyOnce.Off, TriggerSwallow.Off); + //jump.AddTrigger(trigger); + trigger = new Trigger(Ands(new ConditionJumpDone(jump, 0.4f), condJumpOnGround, Or(condRightButtonHold, condLeftButtonHold)), switchToMove); + jump.AddTrigger(trigger); + trigger = new Trigger(condJumpDone, switchToIdle); + jump.AddTrigger(trigger); + + // dash state + trigger = new Trigger(And(new ConditionMotionRange(animator, 0.5f, 1.0f), condCircleCmd), switchToAttk1); + dash.AddTrigger(trigger); + trigger = new Trigger(new ConditionMotionAtEnd(animator, Anim_DashWithSword), switchToIdle); + dash.AddTrigger(trigger); + + // attack states + float expireTime = 0.3f; + + // sword normal attack + ConditionMotionAtEnd condAttk1AtEnd = new ConditionMotionAtEnd(animator, Anim_LightAttack1); + trigger = new Trigger(And(condAttk1AtEnd, condCircleCmd), switchToAttk2); + attk1.AddTrigger(trigger); + ConditionAttkExpireTime condAttk1ExpireTime = new ConditionAttkExpireTime(attk1, expireTime); + trigger = new Trigger(condAttk1ExpireTime, switchToIdle); + attk1.AddTrigger(trigger); + attk1.AddTrigger(triggerTurnRight); + attk1.AddTrigger(triggerTurnLeft); + //trigger = new Trigger(condIsHit, new ActionLog("hit!!!")); + //attk1.AddLateTrigger(trigger); + + //ConditionMotionRange condAttkRushGhostRange = new ConditionMotionRange(animator, 0f, 0.8f); + //trigger = new Trigger(condAttkRushGhostRange, enableGhost, false); + //attkRush.AddTrigger(trigger); + //ConditionMotionRange condAttkRushGhostDisableRange = new ConditionMotionRange(animator, 0.8f, 10f); + //trigger = new Trigger(condAttkRushGhostDisableRange, disableGhost, false); + //attkRush.AddTrigger(trigger); + ConditionMotionRange condAttkRushAtRange = new ConditionMotionRange(animator, 0.5f, 1f); + trigger = new Trigger(And(condAttkRushAtRange, condCircleCmd), switchToAttk2); + attkRush.AddTrigger(trigger); + //trigger = new Trigger(And(And(condAttkRushAtRange, condTowardRight), condRightCmd), switchToAttkRush); + //attkRush.AddTrigger(trigger); + //trigger = new Trigger(And(And(condAttkRushAtRange, condTowardLeft), condLeftCmd), switchToAttkRush); + //attkRush.AddTrigger(trigger); + ConditionAttkExpireTime condAttkRushExpireTime = new ConditionAttkExpireTime(attkRush, expireTime); + trigger = new Trigger(condAttkRushExpireTime, switchToIdle); + attkRush.AddTrigger(trigger); + //attkRush.AddTrigger(triggerTurnRight); + //attkRush.AddTrigger(triggerTurnLeft); + + ConditionMotionAtEnd condAttk2AtEnd = new ConditionMotionAtEnd(animator, Anim_LightAttack2); + trigger = new Trigger(And(condAttk2AtEnd, condCircleCmd), switchToAttk3); + attk2.AddTrigger(trigger); + ConditionAttkExpireTime condAttk2ExpireTime = new ConditionAttkExpireTime(attk2, expireTime); + trigger = new Trigger(condAttk2ExpireTime, switchToIdle); + attk2.AddTrigger(trigger); + attk2.AddTrigger(triggerTurnRight); + attk2.AddTrigger(triggerTurnLeft); + + ConditionMotionAtEnd condAttk3AtEnd = new ConditionMotionAtEnd(animator, Anim_LightAttack3); + trigger = new Trigger(And(condAttk3AtEnd, condCircleCmd), switchToAttk4); + attk3.AddTrigger(trigger); + ConditionAttkExpireTime condAttk3ExpireTime = new ConditionAttkExpireTime(attk3, expireTime); + trigger = new Trigger(condAttk3ExpireTime, switchToIdle); + attk3.AddTrigger(trigger); + attk3.AddTrigger(triggerTurnRight); + attk3.AddTrigger(triggerTurnLeft); + + ConditionMotionAtEnd condAttk4AtEnd = new ConditionMotionAtEnd(animator, Anim_LightAttack4); + trigger = new Trigger(And(condAttk4AtEnd, condCircleCmd), switchToAttk5); + attk4.AddTrigger(trigger); + ConditionAttkExpireTime condAttk4ExpireTime = new ConditionAttkExpireTime(attk4, expireTime); + trigger = new Trigger(condAttk4ExpireTime, switchToIdle); + attk4.AddTrigger(trigger); + attk4.AddTrigger(triggerTurnRight); + attk4.AddTrigger(triggerTurnLeft); + + ConditionMotionAtEnd condAttk5AtEnd = new ConditionMotionAtEnd(animator, Anim_LightAttack5); + trigger = new Trigger(condAttk5AtEnd, switchToIdle); + attk5.AddTrigger(trigger); + ConditionAttkExpireTime condAttk5ExpireTime = new ConditionAttkExpireTime(attk5, expireTime); + trigger = new Trigger(condAttk5ExpireTime, switchToIdle); + attk5.AddTrigger(trigger); + attk5.AddTrigger(triggerTurnRight); + attk5.AddTrigger(triggerTurnLeft); + + // side kick normal + ConditionMotionAtEnd condKickMotionEnd = new ConditionMotionAtEnd(animator, Anim_SideKick); + trigger = new Trigger(condKickMotionEnd, new ActionSetVelocity(m_Body, Vector3.zero), TriggerOnlyOnce.On, TriggerSwallow.Off); + sideKick.AddTrigger(trigger); + ConditionAttkExpireTime condSideKickExpireTime = new ConditionAttkExpireTime(sideKick, expireTime); + trigger = new Trigger(condSideKickExpireTime, switchToIdle); + sideKick.AddTrigger(trigger); + + // side kick rush + ConditionAttkExpireTime condSideKickRushExpireTime = new ConditionAttkExpireTime(sideKickRush, expireTime); + trigger = new Trigger(condSideKickRushExpireTime, switchToIdle); + sideKickRush.AddTrigger(trigger); + ConditionMotionRange condSideKickRushMotionRange = new ConditionMotionRange(animator, 0.5f, 10f); + trigger = new Trigger(And(condSideKickRushMotionRange, And(condRightButtonHold, condCircleCmd)), new List<ActionBase> { towardRight, switchToAttkRush }); + sideKickRush.AddTrigger(trigger); + trigger = new Trigger(And(condSideKickRushMotionRange, And(condLeftButtonHold, condCircleCmd)), new List<ActionBase> { towardLeft, switchToAttkRush }); + sideKickRush.AddTrigger(trigger); + + // super kick combo + ConditionAttkExpireTime condSuperKickExpireTime = new ConditionAttkExpireTime(superKick, expireTime); + trigger = new Trigger(condSuperKickExpireTime, switchToIdle); + superKick.AddTrigger(trigger); + + // gun normal + ConditionMotionAtEnd condGun1AtEnd = new ConditionMotionAtEnd(animator, Anim_Gun1); + trigger = new Trigger(And(condGun1AtEnd, condSquareCmd), switchToGun2); + gun1.AddTrigger(trigger); + ConditionAttkExpireTime condGun1ExpireTime = new ConditionAttkExpireTime(gun1, expireTime); + trigger = new Trigger(condGun1ExpireTime, switchToIdle); + gun1.AddTrigger(trigger); + + ConditionMotionAtEnd condGun2AtEnd = new ConditionMotionAtEnd(animator, Anim_Gun2); + trigger = new Trigger(And(condGun2AtEnd, condSquareCmd), switchToGun3); + gun2.AddTrigger(trigger); + ConditionAttkExpireTime condGun2ExpireTime = new ConditionAttkExpireTime(gun2, expireTime); + trigger = new Trigger(condGun2ExpireTime, switchToIdle); + gun2.AddTrigger(trigger); + + ConditionMotionAtEnd condGun3AtEnd = new ConditionMotionAtEnd(animator, Anim_Gun3); + trigger = new Trigger(And(condGun3AtEnd, condSquareCmd), switchToGun4); + gun3.AddTrigger(trigger); + ConditionAttkExpireTime condGun3ExpireTime = new ConditionAttkExpireTime(gun3, expireTime); + trigger = new Trigger(condGun3ExpireTime, switchToIdle); + gun3.AddTrigger(trigger); + + ConditionAttkExpireTime condGun4ExpireTime = new ConditionAttkExpireTime(gun4, expireTime); + trigger = new Trigger(condGun4ExpireTime, switchToIdle); + gun4.AddTrigger(trigger); + ConditionMotionRange condGun4MotionRange = new ConditionMotionRange(animator, 0.6f, 1f); + trigger = new Trigger(And(condGun4MotionRange, condRight2Cmd), new List<ActionBase> { switchToDash, towardRight }); + gun4.AddTrigger(trigger); + trigger = new Trigger(And(condGun4MotionRange, condLeft2Cmd), new List<ActionBase> { switchToDash, towardLeft }); + gun4.AddTrigger(trigger); + + // air dash + trigger = new Trigger(new ConditionMotionRange(animator, 0.8f, 1f), disaleAfterImage, TriggerOnlyOnce.On, TriggerSwallow.Off); + airDash.AddTrigger(trigger); + trigger = new Trigger(new ConditionMotionAtEnd(animator, Anim_AirDash), new List<ActionBase> { new ActionSetVelocity(m_Body, Vector3.zero), new ActionUseGravity(m_Body), toJump }); + airDash.AddTrigger(trigger); + + trigger = new Trigger(new ConditionMotionRange(animator, 0.18f, 1f), new ActionPlayEffect("Air_Attk1", this, new Vector3(-136.805f, 0, 0), new Vector3(0.8f, 0.8f, 0.8f)), TriggerOnlyOnce.On, TriggerSwallow.Off); + airAttk1.AddTrigger(trigger); + trigger = new Trigger(new ConditionMotionRange(animator, 0.6f,1f), disaleAfterImage, TriggerOnlyOnce.On, TriggerSwallow.Off); + airAttk1.AddTrigger(trigger); + trigger = new Trigger(new ConditionMotionAtEnd(animator, Anim_AirAttack1), new List<ActionBase> { new ActionSetVelocity(m_Body, Vector3.zero), new ActionUseGravity(m_Body), toJump}); + airAttk1.AddTrigger(trigger); + + m_StateSystem.ForceStart(idle); + } + +}
\ No newline at end of file |