Решили: редакторный стенд показывает эффект, ВЫЗЫВАЯ боевой код, а не повторяя его. Для дуги за
клинком это оформлено двумя владельцами, которых зовут оба потребителя: SwingArcGeometry (плечо и
остриё, вынесено из UnitView) и SwingArcVfx.Tick(deltaTime) (шаг жизни дуги; LateUpdate стал
однострочным вызовом).
Почему: стенд вёл дугу своим кодом — своя геометрия, свой угол, своё затухание. Выглядело
похоже и потому обмануло: в самоделке не было ни разворота угла через DeltaAngle (без него сектор
схлопывается ровно на середине удара), ни клампа по максимальному сектору, ни утекающего хвоста.
Дуга «почти такая же» — и неверная, а разбирать такое приходится по кадрам.
Публичный шаг с ЯВНЫМ временем нужен потому, что у редакторного стенда нет кадров: Update там не
идёт и идти не должен. Либо эффект умеет шагать по чужому времени, либо любой стенд обречён
изображать его поведение сам.
Сказано: «Дуга идет НЕ КОРРЕКТНО. Надо сделать 1 в 1 как в нас в реальности! Не создавай ничего нового, лучше сделай везде 1 источник правды, чтобы не было проблем!!!» (2026-08-06, сессия d760c178). На вопрос «нужен ли новый источник» ответ был: не нужен, он есть — его надо звать.
Грабли: правило «у факта один владелец» легко соблюсти в игре и нарушить в инструменте. Стенд кажется отдельной территорией, где «можно попроще», — а он ровно то место, по которому потом судят о поведении игры. Признак нарушения простой: если в стенде появился расчёт, который что-то ЗНАЧИТ (не кадрирование, не подписи, а логика показа), значит либо он уже есть в игре, либо его туда и надо класть.
Владелец правды: Assets/_Project/Scripts/Presentation/Effects/SwingArcGeometry.cs,
SwingArcVfx.Tick.