How to move rotated knife(RigidBody2D) diagonally?

Hello, I am new to Unity and so far enjoy my journey. Right now I have accomplished my knife constant rotation within [-30;30] degrees range. However, after the user presses any key, my knife should be moving fast in the direction it currently faces.

How can I achieve the following behavior? I tried addForce, changing velocity, but no results… Perhaps it is even impossible to do?
153301-amzz.png

Here my knife is facing the left angle and I would like to it to just move in that direction really fast. No fancy effects :slight_smile:

153341-base.png
Here is base position

Here is my source code for the rotating knife:

public void HandleRotation()
{
    if (transform.rotation.z >= 0.3f)
    {
        right = false;
    }
    else if (transform.rotation.z <= -0.3f)
    {
        right = true;
    }

    if (right)
    {
        begin = begin + 0.05f;
    }
    else
    {
        begin = begin - 0.05f;
    }

    var tiltAroundZ = begin * tiltAngle;
    var target = Quaternion.Euler (0, 0, tiltAroundZ);
    transform.rotation = Quaternion.Slerp(transform.rotation, target, Time.deltaTime * smooth);

}

Hello.

First, NEVER THINK THIS :Perhaps it is even impossible to do?

Second, about your problem, you have so many ways to move an object in the scene, basicly you have 2 “families” of function, the ones coming from transform, and the others coming from the Rigidbody (if exists)

I dont know whats the propouse of your knife to move so i dont know whichonce is better for your case.

As you are still “noobie” I recommend you to spend some hours reading/watching manuals/tutorials about this: (Dont try to go fast and find the solution to your only problem. A lot of things you dont even know they exists can be shown to you and give solutions you never imagined. Take your time)

Good luck!