Haruma-K / UnityDebugSheet

Hierarchical debug menu system for Unity that makes it easy to create intuitive and organized debug menus.
MIT License
458 stars 28 forks source link

🐛 Windowsネイティブビルドにてショートカットを使用してデバッグ画面が起動しない件について #4

Closed KeigoTakamura closed 2 years ago

KeigoTakamura commented 2 years ago

初めまして。 Windowsビルドにて正しく動作してないと思われる挙動と実装を確認いたしましたのでissueを立てさせていただきます。

再現環境

確認した事象

UnityEditor(Windows10)ではcurl+shift+Dでデバッグ画面が立ち上がるがWindowsビルドだと特に何も立ち上がらない現象を確認しました。

image

推測される原因

Assets\UnityDebugSheet\Runtime\Core\Scripts\KeyboardShortcut.cs の72行目付近にあるプラットフォーム指定マクロの条件漏れかと思われます。

#if UNITY_EDITOR_WIN
            return InputAdapter.GetKey(KeyCode.LeftControl) || InputAdapter.GetKey(KeyCode.RightControl);
#else
            return InputAdapter.GetKey(KeyCode.LeftCommand) || InputAdapter.GetKey(KeyCode.RightCommand);
#endif

でEditor以外ではLeftCommand が指定されている為、Macintoshのキーコードでしか認識しないのが原因と推測されます。 まだ動作検証を行っていませんがこのロジックでは恐らく一般的な105配列を使用することが多いLinux版Unityユーザーなども同様の現象を観測するものと推測します。

修正案

本来であればPRを出すべきなのですが諸事情ですぐPRを出せる環境にないのでこちらの方提案させて頂きます。 私のWindows環境では動作を確認済みです。 ただこのライブラリはモバイル端末のデバッグ前提に開発された感を私が勝手に感じているのでショートカット機能は Editor専用機能ということあればこのFIXは却下していただいても構いません。

diff --git a/Assets/UnityDebugSheet/Runtime/Core/Scripts/KeyboardShortcut.cs b/Assets/UnityDebugSheet/Runtime/Core/Scripts/KeyboardShortcut.cs
index 6b27a17..e001060 100644
--- a/Assets/UnityDebugSheet/Runtime/Core/Scripts/KeyboardShortcut.cs
+++ b/Assets/UnityDebugSheet/Runtime/Core/Scripts/KeyboardShortcut.cs
@@ -69,7 +69,7 @@ namespace UnityDebugSheet.Runtime.Core.Scripts

         private bool GetControlKey()
         {
-#if UNITY_EDITOR_WIN
+#if UNITY_EDITOR_LINUX || UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX
             return InputAdapter.GetKey(KeyCode.LeftControl) || InputAdapter.GetKey(KeyCode.RightControl);
 #else
             return InputAdapter.GetKey(KeyCode.LeftCommand) || InputAdapter.GetKey(KeyCode.RightCommand);
Haruma-K commented 2 years ago

@KeigoTakamura 情報、原因の特定までありがとうございます!

おっしゃる通り、こちら実装漏れになります(普段使っているエディタ用のコードのまま使ってしまいました)。 こちら修正しますので少々お待ちください。

Haruma-K commented 2 years ago

@KeigoTakamura 1.1.1としてリリースしました。

https://github.com/Haruma-K/UnityDebugSheet/releases/tag/1.1.1

改めまして情報ありがとうございました!助かりました。

KeigoTakamura commented 2 years ago

素早いご対応ありがとうございます!