Public metody pro vlastní Menu.
This commit is contained in:
@@ -23,47 +23,47 @@ namespace MegaKoop.UI
|
||||
private GameObject groupJoin;
|
||||
private GameObject groupHost;
|
||||
|
||||
// Header & Code
|
||||
private TMP_Text textStatus;
|
||||
private TMP_Text textLobbyCodeValue;
|
||||
private Button btnCopyCode;
|
||||
[Header("Manual Wiring - Header & Code")]
|
||||
[SerializeField] private TMP_Text textStatus;
|
||||
[SerializeField] private TMP_Text textLobbyCodeValue;
|
||||
[SerializeField] private Button btnCopyCode;
|
||||
|
||||
// Tabs
|
||||
private Button btnHostTab;
|
||||
private Button btnJoinTab;
|
||||
[Header("Manual Wiring - Tabs")]
|
||||
[SerializeField] private Button btnHostTab;
|
||||
[SerializeField] private Button btnJoinTab;
|
||||
|
||||
// Join
|
||||
private TMP_InputField inputLobbyCode;
|
||||
private Button btnConnect;
|
||||
[Header("Manual Wiring - Join Section")]
|
||||
[SerializeField] private TMP_InputField inputLobbyCode;
|
||||
[SerializeField] private Button btnConnect;
|
||||
|
||||
// Host
|
||||
private TMP_Dropdown ddMaxPlayers;
|
||||
private Toggle tgPublicLobby;
|
||||
private Button btnCreateLobby;
|
||||
[Header("Manual Wiring - Host Section")]
|
||||
[SerializeField] private TMP_Dropdown ddMaxPlayers;
|
||||
[SerializeField] private Toggle tgPublicLobby;
|
||||
[SerializeField] private Button btnCreateLobby;
|
||||
|
||||
// Players
|
||||
private TMP_Text textPlayerCount;
|
||||
private ScrollRect scrollPlayers;
|
||||
private Transform contentPlayers;
|
||||
private GameObject playerItemTemplate;
|
||||
private GameObject emptyPlayers;
|
||||
[Header("Manual Wiring - Players List")]
|
||||
[SerializeField] private TMP_Text textPlayerCount;
|
||||
[SerializeField] private ScrollRect scrollPlayers;
|
||||
[SerializeField] private Transform contentPlayers;
|
||||
[SerializeField] private GameObject playerItemTemplate;
|
||||
[SerializeField] private GameObject emptyPlayers;
|
||||
|
||||
// Friends picker (fallback when overlay unavailable)
|
||||
private GameObject panelFriends;
|
||||
private Transform contentFriends;
|
||||
private GameObject emptyFriends;
|
||||
private Button btnBackFromFriends;
|
||||
private Button btnCloseFriendsOverlay;
|
||||
[Header("Manual Wiring - Friends Picker")]
|
||||
[SerializeField] private GameObject panelFriends;
|
||||
[SerializeField] private Transform contentFriends;
|
||||
[SerializeField] private GameObject emptyFriends;
|
||||
[SerializeField] private Button btnBackFromFriends;
|
||||
[SerializeField] private Button btnCloseFriendsOverlay;
|
||||
|
||||
// Host controls
|
||||
private Button btnInviteFriends;
|
||||
private Button btnKickSelected;
|
||||
[Header("Manual Wiring - Host Controls")]
|
||||
[SerializeField] private Button btnInviteFriends;
|
||||
[SerializeField] private Button btnKickSelected;
|
||||
|
||||
// Ready & footer
|
||||
private Button btnToggleReady;
|
||||
private Button btnStartGame;
|
||||
private Button btnLeaveLobby;
|
||||
private Button btnBackFromLobby;
|
||||
[Header("Manual Wiring - Footer")]
|
||||
[SerializeField] private Button btnToggleReady;
|
||||
[SerializeField] private Button btnStartGame;
|
||||
[SerializeField] private Button btnLeaveLobby;
|
||||
[SerializeField] private Button btnBackFromLobby;
|
||||
|
||||
[Header("Player Ready Styling")]
|
||||
[SerializeField] private Color readyBorderColor = new Color(0.2f, 0.82f, 0.35f, 1f);
|
||||
@@ -92,44 +92,44 @@ namespace MegaKoop.UI
|
||||
private void Awake()
|
||||
{
|
||||
// Find UI (including inactive)
|
||||
panelLobby = FindAnyGO("Panel_Lobby");
|
||||
groupJoin = FindAnyGO("Group_Join");
|
||||
groupHost = FindAnyGO("Group_Host");
|
||||
panelLobby = EnsureGO(panelLobby, "Panel_Lobby");
|
||||
groupJoin = EnsureGO(groupJoin, "Group_Join");
|
||||
groupHost = EnsureGO(groupHost, "Group_Host");
|
||||
|
||||
textStatus = FindText("Text_Status");
|
||||
textLobbyCodeValue = FindText("Text_LobbyCodeValue");
|
||||
btnCopyCode = FindButton("Button_CopyCode");
|
||||
textStatus = EnsureText(textStatus, "Text_Status");
|
||||
textLobbyCodeValue = EnsureText(textLobbyCodeValue, "Text_LobbyCodeValue");
|
||||
btnCopyCode = EnsureButton(btnCopyCode, "Button_CopyCode");
|
||||
|
||||
btnHostTab = FindButton("Button_HostTab");
|
||||
btnJoinTab = FindButton("Button_JoinTab");
|
||||
btnHostTab = EnsureButton(btnHostTab, "Button_HostTab");
|
||||
btnJoinTab = EnsureButton(btnJoinTab, "Button_JoinTab");
|
||||
|
||||
inputLobbyCode = FindInput("Input_LobbyCode");
|
||||
btnConnect = FindButton("Button_Connect");
|
||||
inputLobbyCode = EnsureInput(inputLobbyCode, "Input_LobbyCode");
|
||||
btnConnect = EnsureButton(btnConnect, "Button_Connect");
|
||||
|
||||
ddMaxPlayers = FindDropdown("Dropdown_MaxPlayers");
|
||||
tgPublicLobby = FindToggle("Toggle_PublicLobby");
|
||||
btnCreateLobby = FindButton("Button_CreateLobby");
|
||||
ddMaxPlayers = EnsureDropdown(ddMaxPlayers, "Dropdown_MaxPlayers");
|
||||
tgPublicLobby = EnsureToggle(tgPublicLobby, "Toggle_PublicLobby");
|
||||
btnCreateLobby = EnsureButton(btnCreateLobby, "Button_CreateLobby");
|
||||
|
||||
textPlayerCount = FindText("Text_PlayerCount");
|
||||
scrollPlayers = FindScroll("Scroll_Players");
|
||||
contentPlayers = FindAnyGO("Content_PlayersList")?.transform;
|
||||
emptyPlayers = FindAnyGO("Empty_Players");
|
||||
playerItemTemplate = FindAnyGO("PlayerItemTemplate");
|
||||
textPlayerCount = EnsureText(textPlayerCount, "Text_PlayerCount");
|
||||
scrollPlayers = EnsureScroll(scrollPlayers, "Scroll_Players");
|
||||
contentPlayers = EnsureTransform(contentPlayers, "Content_PlayersList");
|
||||
emptyPlayers = EnsureGO(emptyPlayers, "Empty_Players");
|
||||
playerItemTemplate = EnsureGO(playerItemTemplate, "PlayerItemTemplate");
|
||||
|
||||
btnInviteFriends = FindButton("Button_InviteFriends");
|
||||
btnKickSelected = FindButton("Button_KickSelected");
|
||||
btnInviteFriends = EnsureButton(btnInviteFriends, "Button_InviteFriends");
|
||||
btnKickSelected = EnsureButton(btnKickSelected, "Button_KickSelected");
|
||||
|
||||
btnToggleReady = FindButton("Button_ToggleReady");
|
||||
btnStartGame = FindButton("Button_StartGame");
|
||||
btnLeaveLobby = FindButton("Button_LeaveLobby");
|
||||
btnBackFromLobby = FindButton("Button_BackFromLobby");
|
||||
btnToggleReady = EnsureButton(btnToggleReady, "Button_ToggleReady");
|
||||
btnStartGame = EnsureButton(btnStartGame, "Button_StartGame");
|
||||
btnLeaveLobby = EnsureButton(btnLeaveLobby, "Button_LeaveLobby");
|
||||
btnBackFromLobby = EnsureButton(btnBackFromLobby, "Button_BackFromLobby");
|
||||
|
||||
// Friends picker
|
||||
panelFriends = FindAnyGO("Panel_Friends");
|
||||
contentFriends = FindAnyGO("Content_FriendsList")?.transform;
|
||||
emptyFriends = FindAnyGO("Empty_Friends");
|
||||
btnBackFromFriends = FindButton("Button_BackFromFriends");
|
||||
btnCloseFriendsOverlay = FindButton("Button_CloseFriendsOverlay");
|
||||
panelFriends = EnsureGO(panelFriends, "Panel_Friends");
|
||||
contentFriends = EnsureTransform(contentFriends, "Content_FriendsList");
|
||||
emptyFriends = EnsureGO(emptyFriends, "Empty_Friends");
|
||||
btnBackFromFriends = EnsureButton(btnBackFromFriends, "Button_BackFromFriends");
|
||||
btnCloseFriendsOverlay = EnsureButton(btnCloseFriendsOverlay, "Button_CloseFriendsOverlay");
|
||||
|
||||
EnsureSteamServices();
|
||||
RegisterSteamEvents();
|
||||
@@ -322,12 +322,78 @@ namespace MegaKoop.UI
|
||||
panelLobbyRef = root;
|
||||
}
|
||||
|
||||
private TMP_Text FindText(string name) => FindAnyComponent<TMP_Text>(name);
|
||||
private Button FindButton(string name) => FindAnyComponent<Button>(name);
|
||||
private Toggle FindToggle(string name) => FindAnyComponent<Toggle>(name);
|
||||
private TMP_Dropdown FindDropdown(string name) => FindAnyComponent<TMP_Dropdown>(name);
|
||||
private TMP_InputField FindInput(string name) => FindAnyComponent<TMP_InputField>(name);
|
||||
private ScrollRect FindScroll(string name) => FindAnyComponent<ScrollRect>(name);
|
||||
public void SetHostJoinGroups(GameObject hostGroup, GameObject joinGroup)
|
||||
{
|
||||
groupHost = hostGroup;
|
||||
groupJoin = joinGroup;
|
||||
}
|
||||
|
||||
public void SetHeaderControls(TMP_Text status, TMP_Text lobbyCode, Button copyCode)
|
||||
{
|
||||
textStatus = status;
|
||||
textLobbyCodeValue = lobbyCode;
|
||||
btnCopyCode = copyCode;
|
||||
}
|
||||
|
||||
public void SetTabButtons(Button hostTab, Button joinTab)
|
||||
{
|
||||
btnHostTab = hostTab;
|
||||
btnJoinTab = joinTab;
|
||||
}
|
||||
|
||||
public void SetJoinSection(TMP_InputField lobbyCodeInput, Button connectButton)
|
||||
{
|
||||
inputLobbyCode = lobbyCodeInput;
|
||||
btnConnect = connectButton;
|
||||
}
|
||||
|
||||
public void SetHostSection(TMP_Dropdown maxPlayersDropdown, Toggle publicToggle, Button createLobbyButton)
|
||||
{
|
||||
ddMaxPlayers = maxPlayersDropdown;
|
||||
tgPublicLobby = publicToggle;
|
||||
btnCreateLobby = createLobbyButton;
|
||||
}
|
||||
|
||||
public void SetPlayersList(TMP_Text playerCountText, ScrollRect playersScroll, Transform playersContent, GameObject itemTemplate, GameObject emptyState)
|
||||
{
|
||||
textPlayerCount = playerCountText;
|
||||
scrollPlayers = playersScroll;
|
||||
contentPlayers = playersContent;
|
||||
playerItemTemplate = itemTemplate;
|
||||
emptyPlayers = emptyState;
|
||||
}
|
||||
|
||||
public void SetFriendsPicker(GameObject friendsPanel, Transform friendsContent, GameObject friendsEmpty, Button backButton, Button closeOverlayButton)
|
||||
{
|
||||
panelFriends = friendsPanel;
|
||||
contentFriends = friendsContent;
|
||||
emptyFriends = friendsEmpty;
|
||||
btnBackFromFriends = backButton;
|
||||
btnCloseFriendsOverlay = closeOverlayButton;
|
||||
}
|
||||
|
||||
public void SetHostControls(Button inviteFriendsButton, Button kickSelectedButton)
|
||||
{
|
||||
btnInviteFriends = inviteFriendsButton;
|
||||
btnKickSelected = kickSelectedButton;
|
||||
}
|
||||
|
||||
public void SetFooterControls(Button toggleReadyButton, Button startGameButton, Button leaveLobbyButton, Button backButton)
|
||||
{
|
||||
btnToggleReady = toggleReadyButton;
|
||||
btnStartGame = startGameButton;
|
||||
btnLeaveLobby = leaveLobbyButton;
|
||||
btnBackFromLobby = backButton;
|
||||
}
|
||||
|
||||
private TMP_Text EnsureText(TMP_Text existing, string name) => existing ? existing : FindAnyComponent<TMP_Text>(name);
|
||||
private Button EnsureButton(Button existing, string name) => existing ? existing : FindAnyComponent<Button>(name);
|
||||
private Toggle EnsureToggle(Toggle existing, string name) => existing ? existing : FindAnyComponent<Toggle>(name);
|
||||
private TMP_Dropdown EnsureDropdown(TMP_Dropdown existing, string name) => existing ? existing : FindAnyComponent<TMP_Dropdown>(name);
|
||||
private TMP_InputField EnsureInput(TMP_InputField existing, string name) => existing ? existing : FindAnyComponent<TMP_InputField>(name);
|
||||
private ScrollRect EnsureScroll(ScrollRect existing, string name) => existing ? existing : FindAnyComponent<ScrollRect>(name);
|
||||
private Transform EnsureTransform(Transform existing, string name) => existing ? existing : FindAnyGO(name)?.transform;
|
||||
private GameObject EnsureGO(GameObject existing, string name) => existing ? existing : FindAnyGO(name);
|
||||
|
||||
#region Steam
|
||||
private void EnsureSteamServices()
|
||||
|
||||
Reference in New Issue
Block a user