Rotate a UI around a gameobject, facing the camera, and rotates based on the camera position

So this might be a little complicated, maybe not? I am able to rotate a UI around a gameobject using transform.RotateAround. This does what I want for the most part (minus the UI is mirrored/flipped. Ultimately what I want is for the UI to move as the camera/player moves around said object. I can’t figure out how to get the UI to only rotate around the gameobject, based off the camera’s rotation around the gameobeject.

For example, the player/camera approaches a sphere/gameobject. The sphere/gameobject has a UI Canvas with buttons, etc, next to it (not necessarily a child of the gameobject as the gameobject doesn’t rotate). As the player moves around the sphere/game object, the UI rotates around the sphere/gameobject. Similar to the moon orbiting the earth, right. Essentially when you are looking at the sphere/gameobject, from any angle, the UI would always be just off to the side of that sphere/gameobject.

Attached is a graphic which hopefully depicts the issue. Any help would be appreciated. I’ve searched all the forums and couldn’t find a similar problem, but maybe I missed something?

That is ultimately what I did. Here is the scripts:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RotateTo : MonoBehaviour {
public GameObject target;

// Use this for initialization
void Start () {

// Update is called once per frame
void Update () {
    var me = transform.position;
    var him = target.transform.position;

    transform.rotation = Quaternion.LookRotation(me - him, Vector3.up);