public override void DoBeforeEntering() { // SI hay suscriptores a este evento, NO lanzar ataque if (LaunchPunchAction != null) { LaunchPunchAction(); fsm.PerformTransition(Transition.CrushToMove); return; } //rigidbody2D.isKinematic = true; rigidBody2D.velocity = Vector2.zero; store_GravityScale = rigidBody2D.gravityScale; rigidBody2D.gravityScale = 0; anim.SetBool("isCrushing", true); anim.SetTrigger("CrushTrigger"); ManagerPause.SubscribeOnPauseGame(OnPauseGame); ManagerPause.SubscribeOnResumeGame(OnResumeGame); anim.SetFloat("CrushDir", directionAxis); //Defino al direccion del golpe: if (directionAxis > inputOffset && canPuchUp)//arriba { typeC = TypeCrush.Upper; useForceUp = true; canPuchUp = false; timerPuchUp = false; moveState.SetIsNONWhenJump(); StartCoroutine("StartCrush", TimeToCrushUp); StartCoroutine(timerVar.StartTime(SetTimerPushUp, TimeToPushUp + TimeToCrushUp)); highHitSFX.Spawn(transform.position, transform.rotation); } else if (directionAxis < -1 * inputOffset)//abajo { typeC = TypeCrush.Down; isDown = true; moveState.RemoveLayerToWhatisGround("Obstacle"); StartCoroutine("StartCrush", TimeToCrushDown); lowHitSFX.Spawn(transform.position, transform.rotation); } else//middle { typeC = TypeCrush.Middle; puno.enabled = true; punoRenderer.enabled = true; StartCoroutine("StartCrush", TimeToCrush); anim.SetFloat("CrushDir", 0); middleHitSFX.Spawn(transform.position, transform.rotation); } }