Как построить геодезическую линию между двумя точками?
Можно лерпить кватернион для нахождения промежуточных точек. Насчёт оптимальности пути ничего не скажу, но выглядит корректно. Сначала находите локальные координаты объектов, потом нормализуете их и получаете направление. Создаёте вращение от одного направления к другому и ступеньками его применяете для расчёта точек. Рисовать проще всего с помощью LineRenderer.using UnityEngine;

public class LineExample : MonoBehaviour
{
    public LineRenderer lineRenderer;
    public Transform a;
    public Transform b;
    public float sphereRadius = 0.5f;
    public int positionCount = 10;

    private void Awake()
    {
        Vector3 aDirection = transform.InverseTransformPoint(a.position).normalized;
        Vector3 bDirection = transform.InverseTransformPoint(b.position).normalized;

        var fromRotation = Quaternion.identity;
        var toRotation = Quaternion.FromToRotation(aDirection, bDirection);

        lineRenderer.positionCount = positionCount;
        for (int i = 0; i < positionCount; i++)
        {
            float t = i/(positionCount - 1f);
            Quaternion rotation = Quaternion.Lerp(fromRotation, toRotation, t);
            Vector3 point = rotation*aDirection*sphereRadius;
            lineRenderer.SetPosition(i, point);
        }
    }
}
Пусть конечные точки имеют декартовы координаты {x0,y0,z0} и {x1,y1,z1}
Берём отрезок прямой, соединяющий конечные точки (проходящий внутри сферы); координаты его точек будут:
{x0+(x1-x0)*k,y0+(z1-z0)*k,z0+(z1-z0)*k}, где k пробегает все хначения от нуля до единицы.
Переводим эти координаты в сферическую систему, а затем принудительно делаем радиус равным радиусу окружности (углы не меняются). Всё, мы имеем все точки нужно Вам дуги окружности.
Как это использовать, т.е. какие именно точки Вам нужны (из того бесконечного набора, который я дал) - решайте сами.