Решили: список участников остаётся ОДИН — ParticipantsPanelView; мой второй, написанный
параллельно, снесён, а в живой доведены группы «свои / противники», подпись «вы» и стили.
Почему: две сессии получили одну задачу с разницей в четыре часа и написали два экрана, делающих одно. Второй владелец экрана — это не «запасной вариант», а гарантированное расхождение: правку цвета или порядка групп сделали бы в одном, а на глаза игроку попал бы другой.
Сказано: «В PVP лучше иметь себя и союзников слева, а противников - справа. И как-то подписать, что ты - это ты» (03.08.2026, сессия b307a49b). Раскладка выбрана вторым вариантом — одна панель слева с двумя группами: панель у правого края даёт связь «сторона экрана = сторона арены», но стоит целого угла экрана.
Грабли:
- Панель инъецировалась, но не была зарегистрирована в контейнере.
UiRootBootstrap.ConstructпросилParticipantsPanelView, аRootLifetimeScopeо нём не знал — компиляция при этом зелёная, падает только рантайм, и падает целиком: без бутстрапа не поднимается ВЕСЬ интерфейс. Такую дыру не видит ниcompile-check, ни EditMode-тесты; ловится она запуском игры. - Отпечаток состава обязан включать свой номер. От него зависит разбивка на группы, а гостю его номер приезжает рукопожатием уже после первых пакетов состава: без этого список у гостя навсегда остался бы разложенным по чужой стороне.
- Проверять чужую работу в дереве стоит ДО того, как писать свою. Файл лежал под тем же
Scripts/UI/Presence/, что и мои курсоры, иgit statusпоказывал его как untracked всё время — я посмотрела туда только на ошибке компиляции.
Владелец правды: UI/Presence/ParticipantsPanelView.cs, Game/RootLifetimeScope.cs.