Потому, что камера при рендеренге использует всю цепочку скейлов - от родителя к объекту, чтобы рассчитать масштаб объекта. И чтобы он не изменился, скейл объекта надо пересчитать.
А в пустышку надо загонять не игрока, а платформу, чтобы по цепочке скейл везде был 1к1.
Так чтобы не проходила надо код писать. Либо через физику проверять столкновение с другими объектами и не давать ей двигаться. Либо шейдером на основе карты глубин делать близкие объекты прозрачными.
Есть ещё у камеры разные nearClipPlane или layerCullDistances/layerCullSpherical, можно поиграться как самый лёгкий путь, но и самый дубовый.
Делаешь свою сетку, только не округляй WGS84 получишь фигню, либо это тот же меркатор в котором отображаешь карту, либо H3. Проводишь эксперименты, чтобы найти баланс между выглядит жутко / весит до фига. База вообще пофиг какая.
Потому что yield return new WaitForSeconds(0.5f); должен участвовать только в корутинах. А в голом апдейте надо запоминать время (класс Time) нажатия и проверять когда уже прошло нужное количество секунд.
Алгоритм проверка нахождения точки в полигоне даже на вики описан. Зачем тут картографический сервис вообще не понятно. Но даже у них такие методы есть, естественно конструктор тут как бы не пре делах.