private IEnumerator SmoothMovement(Vector2?end)
{
_isMoving = true;
float remainingDistance = (Rb.position - end.Value).sqrMagnitude;
Sprite.flipX = false;
if (_movement.x < 0)
{
Sprite.flipX = true;
}
while (remainingDistance > float.Epsilon)
{
Vector2 newPosition = Vector2.MoveTowards(Rb.position, end.Value, _moveSpeed * Time.fixedDeltaTime);
Rb.position = newPosition;
remainingDistance = (Rb.position - end).Value.sqrMagnitude;
yield return(null);
}
ToggleFog(Vector3Int.FloorToInt(_movement));
_isMoving = false;
}