Files
onboarding-project/docs/worklog/14-payzone-flight-from-head.md
2026-08-14 15:03:43 +03:00

2.1 KiB

PayZoneC: політ депозиту тепер з голови гравця, не з юайки (2026-08-13)

Був: політ ресурсу в Pay Zone стартував з HudC.getWorldAnchorPosition() (іконка лічильника). Користувач попросив: з персонажа, летить від голови вгору й плавно спускається в центр зони (не з юайки взагалі).

PlayerC.getHeadWorldPosition() — новий публічний метод, `object.position

  • (0, PLAYER_HEIGHT, 0)—PLAYER_HEIGHT вже був реальним заміряним розміром рига (PLAYER_SIZE.y), не вигаданим числом, тож верх голови рахується без нової магічної константи. PayZoneC.playDepositFlightтепер цілиться в геометричний центрzoneBounds(не в pivot самого маркер-ноду — не гарантовано, що він точно в центрі footprint-у), і лишень до прямого lerp додаєMath.sin(t * Math.PI) * DEPOSIT_FLIGHT_ARC_HEIGHT(той самий трюк дуги, що вже вResourceC`) — вгору-і-плавно-вниз замість прямої лінії.

Знайдено й виправлено: DEPOSIT_FLIGHT_SCALE_MULTIPLIER був підкручений (0.3) під СТАРИЙ політ, де перспективна компенсація (perspectiveCompensationScale, camera-distance ratio) відчутно збільшувала розмір за час польоту, бо старт був близько до камери (HUD), а кінець далеко. Тепер старт — голова гравця, приблизно та ж дистанція до камери, що й Pay Zone (камера жорстко слідує за гравцем) — компенсація майже не працює, і 0.3 робив токен практично невидимим. Підняли до 1.3.