Решили: кривая жизни призрачной копии живёт в GhostImage.Sample — статическом методе, который
зовут ОБА: боевой Update и стенд Post FX Lab. Стенд волен расставлять копии сам (в редакторе нет
тика MonoBehaviour, проиграть настоящий компонент нельзя), но считать их прозрачность и рост —
не волен.
Почему: это ровно тот класс расхождения, который не виден. Своя формула затухания на стороне
стенда оставила бы копии нарисованными — просто гаснущими иначе, — и стенд показывал бы не тот
эффект, который увидит игрок. Ошибку такого рода ловят не глазами, а тем, что владельца ровно один.
Прецедент дороже: дуга за клинком чинилась четырежды, и трижды корень лежал не в ней;
SwingArcSingleOwnerTests держит там ту же границу.
Грабли: первая версия стенда была написана до Sample, с собственным Mathf.Pow(1 - t, power).
Формула совпадала — но совпадала бы ровно до первой правки степени затухания в бою.
Владелец правды: GhostImage.Sample (кривая), SilhouetteDraw (раскладка позы),
PostFxLabWindow.BuildGhosts (расстановка копий по фазе — и только она).