public class TransformsController : MonoBehaviour
{
    [SerializeField] private Transform m_player;
    [SerializeField] private Transform m_targetTransform;

    private void Awake()
    {
        Assert.IsNotNull(m_player);
        Assert.IsNotNull(m_targetTransform);
    }

    private float GetDistanceBetweenTransforms()
    {
        var playerPosition = m_player.position;
        var targetPosition = m_targetTransform.position;
        
        var x = playerPosition.x - targetPosition.x;
        var y = playerPosition.y - targetPosition.y;
        var z = playerPosition.z - targetPosition.z;
        return (float) Math.Sqrt(Mathf.Pow(x,2) +  Mathf.Pow(y,2) + Mathf.Pow(z,2));
    }
    
    private float GetAngle()
    {
        var dirVector = m_targetTransform.position - m_player.position;
        var dir = Vector3.Angle (m_player.forward, new Vector3(dirVector.x,0f,dirVector.z));
        return dir;
    }

    private void GetDirection()
    {
        var relativePoint = m_player.InverseTransformPoint(transform.position);
        if (relativePoint.x < 0f)
        {
            Debug.Log("Left");
        }
        else if (relativePoint.x > 0f)
        {
            Debug.Log("Right");
        }
    }
    private void Update()
    {
        if (m_player == null || m_targetTransform == null)
        {
            return;
        }
        
        GetDirection();
        
        Debug.Log("Distance " + GetDistanceBetweenTransforms());
        Debug.Log("Angle " + GetAngle());
        
    }

    #if UNITY_EDITOR
    private void OnDrawGizmos()
    {
        var playerDirection = m_player.TransformDirection(Vector3.forward) * 5;
        Gizmos.DrawRay(m_player.position, playerDirection);
    
        var targetTransformDirection = m_targetTransform.TransformDirection(Vector3.forward) * 5;
        Gizmos.DrawRay(m_targetTransform.position, targetTransformDirection);
    }
    #endif
}

Add a code snippet to your website: www.paste.org