using System.Collections; using System.Collections.Generic; using UnityEngine; public class StepBackScript : MonoBehaviour { private Animator animatorController; private Controller controller; private Rigidbody2D rb; private bool isActive; private bool usingAxis; [SerializeField] float speedModifier; // Use this for initialization void Start () { controller = GetComponent<Controller>(); animatorController = GetComponent<Animator>(); rb = GetComponent<Rigidbody2D>(); StepBackBehaviour.action += updateState; isActive = false; usingAxis = false; } // Update is called once per frame private void Update() { if (controller.getStepBackInput() == 1) { if (controller.isMyturn() && !controller.isSkillUsing() && !usingAxis) { activateSkill("stepBack"); } usingAxis = true; } else { usingAxis = false; } } private IEnumerator stepBack() { controller.updateMovementLockStates(); animatorController.SetTrigger("StepBack"); while(isActive) { rb.velocity = new Vector2(1, controller.currentHand) * controller.getSpeed() * speedModifier; yield return null; } controller.updateMovementLockStates(); } private void activateSkill(string method) { StopCoroutine("move"); StartCoroutine(method); } private void updateState() { isActive = isActive == true? false : true; } }