From 0461e0702d3575dd44840968d5e2b156be75f121 Mon Sep 17 00:00:00 2001 From: Stefan Richter <o-s-r1993@web.de> Date: Mon, 20 May 2024 22:29:52 +0200 Subject: [PATCH] Bugfix: MouseCursor not visible in Unity Editor --- .../InteractionEngine/CommunicationEvents.cs | 1 + Assets/Scripts/UI/HideUI.cs | 3 ++ Assets/Scripts/UI/HideUI_mobile.cs | 2 +- Assets/Scripts/UI/InGame/Pause_Menu_mobile.cs | 7 +++- .../Scripts/UI/NetwMenu/updateMouseCursor.cs | 32 ++++++++++++++++++- 5 files changed, 42 insertions(+), 3 deletions(-) diff --git a/Assets/Scripts/InteractionEngine/CommunicationEvents.cs b/Assets/Scripts/InteractionEngine/CommunicationEvents.cs index 70867258..bca75d87 100644 --- a/Assets/Scripts/InteractionEngine/CommunicationEvents.cs +++ b/Assets/Scripts/InteractionEngine/CommunicationEvents.cs @@ -81,6 +81,7 @@ public enum OperationSystem WindowsStoreApps = 3, } public static bool CursorVisDefault = true; //Script. + public static bool CursorVisLastUsedIngame = true; //Script. public static bool GadgetCanBeUsed = false; diff --git a/Assets/Scripts/UI/HideUI.cs b/Assets/Scripts/UI/HideUI.cs index 1408bd6b..0b86b7a3 100644 --- a/Assets/Scripts/UI/HideUI.cs +++ b/Assets/Scripts/UI/HideUI.cs @@ -246,10 +246,12 @@ void CheckIf() if (!UICanvas.enabled) { updateMouseCursor.setMouse(); + CommunicationEvents.CursorVisLastUsedIngame = true; } else { updateMouseCursor.setMouse_Off(); + CommunicationEvents.CursorVisLastUsedIngame = false; } SetCamControl123(UICanvas.enabled); @@ -320,6 +322,7 @@ void CheckIf() void CheckUI_Vis() { GadgetCanBeUsed = true; + setMouse_ingame(); } diff --git a/Assets/Scripts/UI/HideUI_mobile.cs b/Assets/Scripts/UI/HideUI_mobile.cs index 9d818037..6dc8e19d 100644 --- a/Assets/Scripts/UI/HideUI_mobile.cs +++ b/Assets/Scripts/UI/HideUI_mobile.cs @@ -468,7 +468,7 @@ void CheckUI_Vis() else { //Cursor.visible = true; - updateMouseCursor.setMouse(); + updateMouseCursor.setMouse_Off(); SetCursorRenderer123(true); //SetCamControl123(false); SetCamControl123(true); diff --git a/Assets/Scripts/UI/InGame/Pause_Menu_mobile.cs b/Assets/Scripts/UI/InGame/Pause_Menu_mobile.cs index 69099529..804575ea 100644 --- a/Assets/Scripts/UI/InGame/Pause_Menu_mobile.cs +++ b/Assets/Scripts/UI/InGame/Pause_Menu_mobile.cs @@ -102,8 +102,9 @@ private void setPauseToken() } else { - //Cursor.visible = false; + Cursor.visible = false; } + //updateMouseCursor.setMouse(); UIconfig.GamePaused = true; PauseGame(); @@ -119,7 +120,11 @@ private void PauseGame() } private void ResumeGame() { + Time.timeScale = UIconfig.Game_TimeScale; + + if (!CommunicationEvents.CursorVisLastUsedIngame) { Cursor.visible = false; } + if (ResetLevel) { //Restart resClass = new Restart(); diff --git a/Assets/Scripts/UI/NetwMenu/updateMouseCursor.cs b/Assets/Scripts/UI/NetwMenu/updateMouseCursor.cs index 2dc0b7fb..95a2f4ce 100644 --- a/Assets/Scripts/UI/NetwMenu/updateMouseCursor.cs +++ b/Assets/Scripts/UI/NetwMenu/updateMouseCursor.cs @@ -5,9 +5,27 @@ public static class updateMouseCursor { + private static int setMouseCursorAlreadyDone = 0; + + public static void setMouse_ingame() + { + + if (CommunicationEvents.CursorVisLastUsedIngame) + { + setMouse(); + } + else + { + setMouse_Off(); + } + } + + + + public static void setMouse_Off() { Cursor.visible = false; @@ -28,13 +46,22 @@ public static void setMouse() } else { + DefineCursorBefore(); Cursor.visible = true; CommunicationEvents.CursorVisDefault = true; } + + } + private static void DefineCursorBefore() + { + if (setMouseCursorAlreadyDone < 10) { if (DefineCursor()) { setMouseCursorAlreadyDone++; } } + } + private static bool DefineCursor() + { //Android crashes in level scene; if (CommunicationEvents.Opsys != CommunicationEvents.OperationSystem.Android) { @@ -63,8 +90,11 @@ public static void setMouse() Cursor.SetCursor(bestCursTextur, Vector2.zero, CursorMode.ForceSoftware); //print("bestCursTexturSize " + bestCursTexturSize + " " + CursorTexture_List_01.Count); - + return true; } + + return false; } + } \ No newline at end of file -- GitLab