Вы уж извините, но описание как в World of Warships - так себе пояснение. или видео искать или вообще качать игру, чтоб посмотреть как камера вращается. а вам "так же как там" только без пары режимов.(слава богу по коду вроде понятно что вы хотите)
так вот, на сколько я понял, вы хотите по сфере вокруг цели вращаться камерой и иметь возможность менять радиус.
тогда предложил бы просто использовать сферические координаты 
relativePosition = SphericalToCartesian(longitude, latitude, orbitRadius);
transform.position = target.transform.position + relativePosition;
private Vector3 SphericalToCartesian(float longitude, float latitude, float radius)
    {
        float x = radius * Mathf.Sin(latitude) * Mathf.Cos(longitude);
        float y = radius * Mathf.Cos(latitude);
        float z = radius * Mathf.Sin(latitude) * Mathf.Sin(longitude);
        return new Vector3(x, y, z);
    }
По сути у вас есть долгота  и широта (как на глобусе) и радиус сферы.
Вычисляете координаты на сфере и плюсуете их к  позиции target.
Менять широту, долготу и радиус на основе инпута - тут я вижу вы в курсе как.
ну и так к слову- скрипт тут на пару десятков строк, и мало связанный с другим функционалом - даже весь переписав - капитальным ремонтом это сложно назвать