Input Systemは(一般的に)UNITY標準のInputManagerとの併用が推奨されていないため、PlayerSettingsから入力処理「(New)InputSystem」に切り替えますよね。
その状態でFungusと併用しようとするとこんなエラーが出ます。
InvalidOperationException: You are trying to read Input using the UnityEngine.Input class, but you have switched active Input handling to Input System package in Player Settings.
---
Invalid Operation Exception(無効な操作の例外):
あなたはUnityEngine.Inputクラスを使用してInputを読み込もうとしていますが、既にPlayer Settingsで入力処理をInput Systemに切り替えています。
---
Invalid Operation Exception(無効な操作の例外):
あなたはUnityEngine.Inputクラスを使用してInputを読み込もうとしていますが、既にPlayer Settingsで入力処理をInput Systemに切り替えています。
つまり「旧InputManagerを使おうとしてるスクリプトが存在するよ!」という意味ですね。
そのため、Fungus内のスクリプトを編集して、FungusがInputSystemを使うように変更する必要があります。
Fungus > Scripts > Components フォルダにある DialogInput.cs の、この部分
if (writer != null) { if (Input.GetButtonDown(currentStandaloneInputModule.submitButton) || (cancelEnabled && Input.GetButton(currentStandaloneInputModule.cancelButton))) { SetNextLineFlag(); } }
この「Input.GetButtonDown」をInputSystemの「アクション」処理に書き換えるわけですが、とりあえずこちらの記事を参考に特定のキーを割り当ててしまえばエラーは消えます。マウスも同様です。
ちなみに、マウスを無効化したい場合はSayDialog内のDialogInputコンポーネントでClickModeをDisableにすることでも解決可能です。私はマウスを使わないのでDisableにしています。
それでも上記のエラーが消えないので色々探したところ、EventSystem内にTouchInputModuleというコンポーネントがアタッチされていることが原因でした。これを削除すればエラーが消えます。