fix: Improve logging for menu transitions and resolve top-level canvas references in ServerBrowser
This commit is contained in:
5
Main.cs
5
Main.cs
@@ -232,6 +232,7 @@ namespace KCM
|
|||||||
FirstSibling = true,
|
FirstSibling = true,
|
||||||
OnClick = () =>
|
OnClick = () =>
|
||||||
{
|
{
|
||||||
|
Main.helper?.Log("Multiplayer button clicked");
|
||||||
SfxSystem.PlayUiSelect();
|
SfxSystem.PlayUiSelect();
|
||||||
TransitionTo(MenuState.ServerBrowser);
|
TransitionTo(MenuState.ServerBrowser);
|
||||||
}
|
}
|
||||||
@@ -320,6 +321,10 @@ namespace KCM
|
|||||||
if (ServerBrowser.KCMUICanvas != null)
|
if (ServerBrowser.KCMUICanvas != null)
|
||||||
{
|
{
|
||||||
ServerBrowser.KCMUICanvas.gameObject.SetActive((int)state > 21);
|
ServerBrowser.KCMUICanvas.gameObject.SetActive((int)state > 21);
|
||||||
|
if (state == MenuState.ServerBrowser)
|
||||||
|
{
|
||||||
|
Main.helper?.Log($"TransitionTo ServerBrowser: browserRef={(ServerBrowser.serverBrowserRef != null ? "ready" : "null")}, canvas={(ServerBrowser.KCMUICanvas != null ? "ready" : "null")}");
|
||||||
|
}
|
||||||
helper.Log(((int)state > 21).ToString());
|
helper.Log(((int)state > 21).ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -305,11 +305,10 @@ namespace KCM
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var topLevelCanvas = Constants.MainMenuUI_T.Find("MainMenu/TopLevel")
|
var topLevelCanvas = ResolveMenuCanvas();
|
||||||
?? Constants.MainMenuUI_T.Find("TopLevelUICanvas");
|
|
||||||
if (topLevelCanvas == null)
|
if (topLevelCanvas == null)
|
||||||
{
|
{
|
||||||
Main.helper.Log("TopLevel/TopLevelUICanvas not found in ServerBrowser");
|
Main.helper.Log("Failed to resolve top-level menu canvas in ServerBrowser");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -319,7 +318,16 @@ namespace KCM
|
|||||||
Destroy(kcmUICanvas.transform.GetChild(i).gameObject);
|
Destroy(kcmUICanvas.transform.GetChild(i).gameObject);
|
||||||
|
|
||||||
kcmUICanvas.name = "KCMUICanvas";
|
kcmUICanvas.name = "KCMUICanvas";
|
||||||
kcmUICanvas.transform.SetParent(Constants.MainMenuUI_T);
|
kcmUICanvas.transform.SetParent(Constants.MainMenuUI_T, false);
|
||||||
|
kcmUICanvas.transform.SetAsLastSibling();
|
||||||
|
kcmUICanvas.SetActive(false);
|
||||||
|
|
||||||
|
var canvasComponent = kcmUICanvas.GetComponent<Canvas>();
|
||||||
|
if (canvasComponent != null)
|
||||||
|
{
|
||||||
|
canvasComponent.overrideSorting = true;
|
||||||
|
canvasComponent.sortingOrder = 999;
|
||||||
|
}
|
||||||
|
|
||||||
KCMUICanvas = kcmUICanvas.transform;
|
KCMUICanvas = kcmUICanvas.transform;
|
||||||
|
|
||||||
@@ -336,6 +344,8 @@ namespace KCM
|
|||||||
serverLobbyPlayerRef = serverLobbyRef.transform.Find("Container/PlayerList/Viewport/Content");
|
serverLobbyPlayerRef = serverLobbyRef.transform.Find("Container/PlayerList/Viewport/Content");
|
||||||
serverLobbyChatRef = serverLobbyRef.transform.Find("Container/PlayerChat/Viewport/Content");
|
serverLobbyChatRef = serverLobbyRef.transform.Find("Container/PlayerChat/Viewport/Content");
|
||||||
serverLobbyRef.SetActive(false);
|
serverLobbyRef.SetActive(false);
|
||||||
|
serverBrowserRef.transform.SetAsLastSibling();
|
||||||
|
serverLobbyRef.transform.SetAsLastSibling();
|
||||||
//browser.transform.position = new Vector3(0, 0, 0);
|
//browser.transform.position = new Vector3(0, 0, 0);
|
||||||
|
|
||||||
|
|
||||||
@@ -449,6 +459,29 @@ namespace KCM
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Transform ResolveMenuCanvas()
|
||||||
|
{
|
||||||
|
string[] candidatePaths =
|
||||||
|
{
|
||||||
|
"MainMenu/TopLevel/TopLevelUICanvas",
|
||||||
|
"MainMenu/TopLevel",
|
||||||
|
"TopLevelUICanvas",
|
||||||
|
"TopLevel"
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach (var path in candidatePaths)
|
||||||
|
{
|
||||||
|
var transform = Constants.MainMenuUI_T.Find(path);
|
||||||
|
if (transform != null)
|
||||||
|
{
|
||||||
|
Main.helper.Log($"ServerBrowser: using canvas path '{path}'.");
|
||||||
|
return transform;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
private void Preload(KCModHelper helper)
|
private void Preload(KCModHelper helper)
|
||||||
{
|
{
|
||||||
helper.Log("Hello?");
|
helper.Log("Hello?");
|
||||||
|
|||||||
Reference in New Issue
Block a user