private void FixedUpdate()
    {
        direction_main = ship_direction_point.position - transform.position;
        if (Input.GetMouseButton(0) || Input.touchCount > 0)
        {
            // Расчет точки касания и направлений
            var     rbody          = GetComponent <Rigidbody2D>();
            Vector2 position_touch = rbody.position;
            if (Input.touchCount > 0)
            {
                position_touch = Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position);
            }
            else if (Input.GetMouseButton(0))
            {
                position_touch = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            }
            position_touch = -(rbody.position - position_touch);
            var direction = GetDirection(position_touch);
            var angle     = Vector2.SignedAngle(direction, direction_main);

            // Расчитывание углов для погашения вращения/ускорения
            var rotation_angle = Mathf.Abs(angle) / 180;
            var velocity_angle = 1 - rotation_angle;
            // Применение физики к игроку
            if ((Mathf.Abs(rbody.angularVelocity) < rotation_max) && (angle != 0))
            {
                rbody.AddTorque(-rotation_inc * Mathf.Sign(angle) * rotation_angle);
            }
            if (rbody.velocity.magnitude < speed_max)
            {
                rbody.AddForce(direction_main * speed_inc * velocity_angle);
            }

            // Генерация частиц
            ship_particle.Generate(angle, true);
        }
        else
        {
            // Нет газа - холостой ход
            ship_particle.Generate(0, false);
        }
    }