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();