How to rotate object towards where the player is facing?

Greetings, I’ve been searching throughout most of the google to try finding the solution to this and it seems like there isn’t any kind of help to my problem. The only thing I need is how to get the direction towards the player is facing and implementing the rotations. The intentions with this are, when the player moves the mouse vertically/horizontally while on rotation mode, the object will rotate forwards/sidewards, so the player can manipulate the grabbed object with much more efficiency.
Here’s an example image that may help you understand my problem:

Here’s my shot at it:

private void Update()
        {
            Horizontal = Input.GetAxis("Mouse X");
            Vertical = Input.GetAxis("Mouse Y");
        }


private void FixedUpdate()
        {
            //**ROTATE OBJECT**
            if (isRotate)
            {
                var step = rotatingSpeed * Time.deltaTime;
                if(Horizontal != 0f || Vertical != 0f)
                {
                    var direction = (Vector3.forward * Horizontal) + (Vector3.right * Vertical);
                    direction.Normalize();
                    if(Horizontal != 0 || Vertical != 0)
                    {
                        grabbedObject.transform.Rotate(direction * step);
                    }
                 }
            }
         }

Thanks in advance! :wink:

I haven’t tried it myself, but I assume you can use Transform.RotateAround() to Rotate an object, using transform.position as the point and player.transform.right and player.transform.up as the axis.

I already have a way to control the object’s position around the player, what I really needed was a way to rotate the object’s local rotation. Someone metioned me about this one AddTorque and it kind of works, just with some weird unwanted rotations. Allow me to show you:

private void Update()
        {
        Horizontal = Input.GetAxis("Mouse X");
        Vertical = Input.GetAxis("Mouse Y");
        }

private void FixedUpdate()
        {
            //**ROTATE OBJECT**
            if (isRotate)
            {
                var step = rotatingSpeed * Time.deltaTime;
                var direction = (Vector3.forward * Vertical) + (Vector3.right * Horizontal);
                if (Horizontal != 0f || Vertical != 0f)
                {
                    TorqueRigidbody.AddTorque(direction * step, ForceMode.Acceleration);
                }
            }
        }

With the main issue fixed I come here to ask you if you know any way to get the Horizontal and Vertical input only once? I ask this because once the mouse moves while on rotation mode, the object will spin infinitely until the mouse is on the center of the screen I guess… I’ll try to figure out the messy rotations myself, thank you!!