Не работает механика Dash Unity2d
При написании кода для механики Dash возникает баг-ошибка. Ошибок Unity не выдаёт, но игрок не правильно себя ведёт. Вместо того чтобы быстро переместиться в другую точку. Он как-бы использует эффект парения. P.S. код dash писал в другом скрипте (не в скрипте игрока). В будущем (когда dash будет работать) я перенесу в скрипт игрока Вот мой код:
[SerializeField] private float _dashingVelocity = 14f;
[SerializeField] private float _dashingTime = 0.5f;
private Rigidbody2D _rigidbody;
private Vector2 _dashingDir;
private bool _isDashing;
private bool _canDash = true;
private void Start()
{
_rigidbody = GetComponent<Rigidbody2D>();
}
private void Update()
{
var inputX = Input.GetAxisRaw("Horizontal");
var dashInput = Input.GetButtonDown("Dash");
if (Input.GetKeyDown(KeyCode.LeftShift) && _canDash)
{
_isDashing = true;
_canDash = false;
_dashingDir = new Vector2(inputX, 0);
if (_dashingDir == Vector2.zero)
{
_dashingDir = new Vector2(transform.localScale.x, 0);
}
StartCoroutine(StopDashing());
}
if (_isDashing)
{
if(inputX == 1)
{
_rigidbody.velocity = Vector2.right * _dashingVelocity;
return;
}
else if(inputX == -1)
{
_rigidbody.velocity = Vector2.left * _dashingVelocity;
return;
}
}
if(Chara._isGrounded)
{
_canDash = true;
}
}
private IEnumerator StopDashing()
{
yield return new WaitForSeconds(_dashingTime);
_isDashing = false;
}
Заранее спасибо!