From ce98ea5ed30932935ff677ad76b25eeab87db28c Mon Sep 17 00:00:00 2001 From: MpakobecEx Date: Sun, 1 Nov 2026 15:43:18 +0500 Subject: [PATCH] =?UTF-8?q?client:=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D0=B0?= =?UTF-8?q?=20=C2=AB=D0=92=20=D0=BB=D0=BE=D0=B1=D0=B1=D0=B8=C2=BB=20=D0=B2?= =?UTF-8?q?=20=D1=82=D0=BE=D0=BF=D0=B1=D0=B0=D1=80=D0=B5=20DeckBuilder?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - PlayerTopBar рисует «← В лобби» слева от Rating/Community, если передан onLobby; в Lobby кнопки нет. - Тест PlayerTopBar проверяет наличие кнопки. - Проверки: EditMode 69/69, standalone собран. --- .../Vanguard/Runtime/UI/PlayerTopBar.cs | 19 +++++++++++++------ .../Vanguard/Tests/Editor/ClientSmokeTests.cs | 5 ++++- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/client/Assets/Vanguard/Runtime/UI/PlayerTopBar.cs b/client/Assets/Vanguard/Runtime/UI/PlayerTopBar.cs index efa56b1..6b13f3e 100644 --- a/client/Assets/Vanguard/Runtime/UI/PlayerTopBar.cs +++ b/client/Assets/Vanguard/Runtime/UI/PlayerTopBar.cs @@ -115,6 +115,8 @@ namespace Vanguard.UI AddAction(top, "Rating", "Рейтинг", -312f, 180f, onRating, LobbyIcon.Chart); AddAction(top, "Community", "Сообщество", -96f, 200f, onCommunity, LobbyIcon.Friends); + if (onLobby != null) + AddAction(top, "ToLobby", "← В лобби", -508f, 160f, onLobby, null); _menu = new HamburgerMenu( top, @@ -209,11 +211,16 @@ namespace Vanguard.UI else button.interactable = false; - var iconColor = onClick != null - ? Accent - : new Color(Accent.r, Accent.g, Accent.b, 0.35f); - var iconRect = Icon(buttonRect, new Vector2(30f, 30f), new Vector2(-width * 0.5f + 30f, 0f), 0.6f); - icon(iconRect, iconColor); + var textLeft = 18f; + if (icon != null) + { + var iconColor = onClick != null + ? Accent + : new Color(Accent.r, Accent.g, Accent.b, 0.35f); + var iconRect = Icon(buttonRect, new Vector2(30f, 30f), new Vector2(-width * 0.5f + 30f, 0f), 0.6f); + icon(iconRect, iconColor); + textLeft = 52f; + } var text = UiKit.CreateText( buttonRect, @@ -225,7 +232,7 @@ namespace Vanguard.UI var textRect = text.rectTransform; textRect.anchorMin = new Vector2(0f, 0f); textRect.anchorMax = new Vector2(1f, 1f); - textRect.offsetMin = new Vector2(52f, 0f); + textRect.offsetMin = new Vector2(textLeft, 0f); textRect.offsetMax = new Vector2(-14f, 0f); } diff --git a/client/Assets/Vanguard/Tests/Editor/ClientSmokeTests.cs b/client/Assets/Vanguard/Tests/Editor/ClientSmokeTests.cs index 151ff1c..92a189b 100644 --- a/client/Assets/Vanguard/Tests/Editor/ClientSmokeTests.cs +++ b/client/Assets/Vanguard/Tests/Editor/ClientSmokeTests.cs @@ -890,7 +890,7 @@ namespace Vanguard.Tests var canvas = UiKit.CreateCanvas("Test Canvas"); var bar = new PlayerTopBar( - canvas.transform, config, player, null, null, null, null); + canvas.transform, config, player, null, null, null, null, () => { }); var root = GameObject.Find(PlayerTopBar.RootName); Assert.IsNotNull(root, "PlayerTopBar не создан"); @@ -905,6 +905,9 @@ namespace Vanguard.Tests Assert.IsNotNull(community); Assert.IsFalse(rating.interactable, "Rating без обработчика должен быть неактивен"); Assert.IsFalse(community.interactable, "Community без обработчика должен быть неактивен"); + Assert.IsNotNull( + root.transform.Find("ToLobby"), + "Кнопка «В лобби» должна быть при переданном onLobby"); bar.Dispose(); Cleanup();