Не переказ, а показ. Тягни мишею або пальцем по кожній арені — усі демо працюють на тому ж алгоритмі й тих самих числах, що в грі (SmashPlayer.cs + GameConfig.asset). Скрізь є цілі-манекени — вони підсвічуються, коли потрапляють у зону удару меча (їх не б'є й не руйнує, це лише для прицілювання).
Погравши обома, легко відчути різницю. Золотий пунктир навколо меча — зона удару (база ≈ 1 одиниця). Манекени золотіють, коли в неї потрапляють. Лічильник «у зоні» — угорі кожної арени.
Відносне перетягування: де торкнувся — там якір, меч їде пропорційно зсуву. З інерцією.
Короткий тап — меч їде в точку. Затиснув і тягнеш — меч іде під пальцем (абсолютно).
У мить дотику гра запам'ятовує дві точки: де стоїть палець (червоний якір) і де стоїть меч (зелений якір). Далі щокадру: меч = якір_меча + (палець − якір_пальця) × чутливість.
Ключове: це рахується від якоря щокадру, а не накопичується. Тому немає дрейфу й «мертвої зони»: упреш меч у край — він там стоїть; потягнув назад — одразу їде. Кожен новий дотик ставить якорі заново, тож меч ніколи не «стрибає» до пальця.
Тягни — червоний і зелений якорі показують, від чого рахується зсув. Манекени золотіють у зоні удару.
SwordDragSensitivity — скільки одиниць проходить меч на одну одиницю зсуву пальця. У грі стоїть 2 (у коді дефолт 1.5, але ассет перекриває на 2). Більше за 1 — підсилення: маленький свайп = великий шлях меча.
Тягни. Фіолетовий — реальний меч. Блідий привид — де був би меч при чутливості 1×. Дивись, як легко дістаєш манекени по кутах при вищій чутливості.
1 меч точно повторює палець. При 2 — вдвічі далі: та сама арена долається вдвічі меншим рухом руки. При 4 стає нервово: ледь смикнув — меч уже в кутку.Коли прибираєш палець, меч не завмирає намертво. Він продовжує їхати з останньою швидкістю й плавно гальмує:
GlideDamping = 9 — швидкість згасання (за секунду). Більше = зупиняється швидше. 0 = ковзання вимкнено.GlideMinSpeed = 0.6 — швидкість, нижче якої меч паркується.Різко смикни й відпусти — меч докотиться сам. Смуга показує залишкову швидкість. Постав damping 0, щоб відчути «сухий» рух (моє питання №2 у чаті).
damping 0 — меч завмирає в мить відпускання (точніше, але «роботизовано»). 9 — рух живий, з докочуванням, але може трохи проскочити ціль/під атаку.Меч не виходить за арену. Прямокутник у грі підганяється під камеру (FitToCamera). Плюс SpawnMargin = 0.5: відступ по краю (сіра смуга), за який меч не заходить.
Тягни в кут і далі — меч упреться в межу (стане червоним) і паркується. Манекени по кутах допомагають відчути досяжність краю.
Кільце з кнобом — декорація. Меч читає «сирий» зсув пальця, а НЕ згладжену позицію кноба. Тому налаштування вигляду джойстика не змінюють керування.
Кноб: тримається в межах maxKnobRadius = 100px і пружинить до пальця зі швидкістю knobFollow = 22.
Крути різко по колу: кноб трохи відстає й обмежений радіусом — а меч (і його зона удару на манекенах) реагує миттєво.
Чутливість не завжди 2 під час гри. Реальне значення:
ефект = 2 × (1 + MoveSpeedPct) × (1 + AllStatsPct)
MoveSpeedPct — з вузлів швидкості. AllStatsPct — вузол «Insight». Додаються наживо: купив вузол посеред сесії — діє з наступного перетягування.
Вмикай апгрейди — дивись, як росте формула й досяжність.
2 × 1.5 × 1.25 = 3.75. Той самий свайп несе меч майже вдвічі далі — гравець стає «слизьким».| Параметр | Що робить | Значення | Де заданий |
|---|---|---|---|
SwordDragSensitivity | Од. руху меча на од. зсуву пальця. Головний важіль швидкості. | 2 | GameConfig.asset (перекриває дефолт 1.5) |
SwordGlideDamping | Швидкість згасання ковзання (за сек). 0 = вимкнено. | 9 | GameConfig.asset |
SwordGlideMinSpeed | Швидкість, нижче якої меч паркується. | 0.6 | GameConfig.asset |
GlideVelocitySmoothing | Як швидко відстежувана швидкість наздоганяє реальну. Не GD-важіль. | 20 | SmashPlayer.csconst |
| зона удару (база) | Радіус, у якому меч «дістає» ворогів (для прицілювання в демо). | ≈1 од. | CombatManager BaseCircleRadius 28 / 28 = 1 |
WorldRect | Прямокутник арени. Задано 8×12, наживо підганяється під камеру. | fit-to-camera | GameArea.asset + GameManager |
SpawnMargin | Відступ по кожному краю. | 0.5 | GameArea.asset |
maxKnobRadius / knobFollow | Радіус і пружність кноба (косметика). | 100px / 22 | JoystickView.cs дефолти коду |
| ефект. чутливість | Базова × апгрейди руху. | 2×(1+move)×(1+insight) | SmashPlayer.cs наживо |
GameConfig.asset, GameArea.asset, SmashPlayer.cs, JoystickView.cs, CombatManager.cs.SmashPlayer.Update()/Glide().BaseCircleRadius 28 / 28).JoystickView — дефолти коду; префаб міг перекрити. Не відкривав префаб.MoveSpeedPct не знайдено в Assets/Data (ймовірно Google Sheet / BakingSheet).