Решили: титр (TitleReveal) кладётся ПРЯМО В СЛОЙ, мимо навигатора, и снимает себя по времени.
Почему: титр ничего не решает и никого не ждёт, а каждый ScreenKind навигатора что-нибудь да
делает: Page прячет нижнее (титр стёр бы карту или арену), Modal глушит геймплейный ввод (бой
встал бы на время надписи), Sheet прячет Page под собой (то же, что первое). Ни один из трёх не
описывает «показался поверх всего и ушёл». Тем же приёмом уже живёт заслонка выхода. Отвергнуто:
(1) четвёртый ScreenKind под титр — тип экрана определяет ПОВЕДЕНИЕ в стеке, а титра в стеке нет;
(2) показывать титр экраном и гасить его эффекты параметрами — это ровно те CSS-классы-флаги, из-за
которых навигатор и заводили.
Сказано: «берем такой эффект появления для “Победы” (в конце боя и в конце игры - свое),
“Поражения”, входа в бой (В бой! с мечами). Т.е. будет много где, единый стиль и источник и
переюзание под всякие ситуации» (2026-08-22, вердикт по стенду ui-uplift, пункт 7А).
Грабли:
(long)Mathf.Max(0.05f, hold) * 1000приводит секунды к целому ДО умножения: 1.1 с превращается в 1.0, а 0.6 — в ноль. Скобки обязательны.- Проверять титр двумя вызовами инструмента нельзя: между ними проходят секунды, и он успевает отыграть целиком — в дереве пусто, и это читается как «не показался». Снимок заказывается планировщиком панели в том же вызове, что и публикация.
Владелец правды: Assets/_Project/Scripts/UI/Components/TitleReveal.cs,
Assets/_Project/Scripts/Core/Flow/TitleRevealMessages.cs (случаи и их времена),
Assets/_Project/UI/Theme/components/title-reveal.uss (движение и тона).