public override void OnStateEnter() { if (_originSO.whenToRun == SpecificMoment.OnStateEnter) { _protagonist.StartCoroutine(SetParameter()); } }
private IEnumerator StartDash(Protagonist battler) { CharacterController cc = battler.GetComponent <CharacterController>(); cc.detectCollisions = false; Vector3 direction = battler.movementInput; if (direction == Vector3.zero) { direction = battler.transform.forward; } battler.transform.forward = direction; while (startTime + Duration > Time.time) { cc.Move(direction.normalized * _speed * Time.deltaTime); cc.Move(new Vector3(0, -10f * Time.deltaTime, 0)); yield return(null); } cc.detectCollisions = true; battler.StartCoroutine(Done(battler)); }