Orbit Character around Pivot object

Hi there, I am looking to do something similar to this effect in Fantasy Life where you can move your character around an object.

Skip to 1:06 to see effect

I am just not sure how to go about it. My game math is very rusty and I have tried using transform.RotateAround() but that does not really do what I need (at least out of the box maybe?)

Essentially the effect I’m looking for is: while orbiting an interactable object, pressing the WASD keys will move the character around the interactable to match the direction of input. For example, if you were to view the game in 2D and your character was below or south of the interactable (0, -1) and then you pressed the W key, your character would move (orbit) around the object until it reaches the top. (0, 1)

You have to use RotateAround or Rotate indeed. Or use some custom code with a slerp

I have something from a space ship game. When you held F it activated a sort of vanity camera mode around the player. I capped it to 45 degree’s up and down but you could modify it I think.
I always heavily note my scripts.

void FreeCameraMovement()
{
if(Input.GetAxis(“Mouse ScrollWheel”) != 0f) // Scroll Mouse
{
DistanceFromTarget -= Input.GetAxis(“Mouse ScrollWheel”); // Adjust zoom.
}
if (DistanceFromTarget < 1.0f) { DistanceFromTarget = 1.0f; } // Min distance.
if (DistanceFromTarget > 15.0f) { DistanceFromTarget = 15.0f; } // Max distance.
// DistanceFromTarget = DistanceFromTarget + fMouseRoll; // Zoom in/out.
float fMouseX = Input.GetAxis(“Mouse X”) * MouseSensitivity; // Get Mouse X.
float fMouseY = Input.GetAxis(“Mouse Y”) * MouseSensitivity; // Get Mouse Y.
fRotationY += fMouseX; // Add the new X value to the new old Y value.
fRotationX -= fMouseY; // Remove the new Y value to the new old X value.
fRotationX = Mathf.Clamp(fRotationX, -45.0f, 45.0f); // Max Target Angle

Vector3 nextRotation = new Vector3(fRotationX + 40.0f, fRotationY + 40.0f); // Get where the camera should be next.
currentRotation = Vector3.SmoothDamp(currentRotation, nextRotation, ref SmoothVelosity, SmoothTime); // Calculate Rotation
transform.localEulerAngles = currentRotation; // Rotation.
transform.position = Target.position - transform.forward * DistanceFromTarget; // Set new camera transform.
}