UnityのInputSystemとPointerIdについて

746 views
Skip to first unread message

Roseverte Games

unread,
Jan 14, 2022, 4:38:47 AM1/14/22
to 宴ユーザーグループ
Utage3.11.2とUnity2019.4.29を利用しております。

いつもお世話になっております。
この度、ユーザーにPC版を遊ぶときにPS4コントローラーを使うと動作がおかしいという指摘を受けたため、Unityの新InputSystemを導入することにしました。
ただ、宴では、古いほうのInputManagerが使われているよう(InputUtil.cs)なので、念のためにActiveInputHandlingを「Both」にしました。

ここまではいいのですが、問題はUguiButtonSeのOnPointerClickが鳴らなくなります。
調べてみたら、どうも新しいInputSystemを使うと、data.pointeridが右クリックも左クリックも2になります。

なので、OnPointerClickに
            if (data.button.ToString()=="Left") PlayeSe(clickedPlayMode, clicked);
を追加してみました。これで解決しましたが、調べてみたらpointeridを使われているところ、ほかにuguipointerdownseとadvselectionmanagerがありましたが、こちらのonspriteclickに同じく追加する必要がありますか?

よろしくお願いします。

マッドネスラボ

unread,
Jan 14, 2022, 10:44:54 AM1/14/22
to 宴ユーザーグループ
ご報告ありがとうございます。
確認したところプログラムの書き方が悪かったようなので、修正しました。
添付のパッケージファイルを適用してみてください。

問題になっているのは、左クリックだけ反応して右クリックに反応させないようにするコードなのですが、
Unityの公式UIシステムのソースコードと同じ書き方をするようにしました。
                        //左クリックのみに反応
                        if(data.button != PointerEventData.InputButton.Left) return;
と変更しました。
公式と同じ書き方なので、新InputManagerにも対応できるかと思います。
お手数ですが、動作確認していただけるでしょうか。
(ボタンの音が左クリックのみで鳴って、右クリックでは鳴らないというのが正しい動作です)


一応、以下細かい説明となります。

>UguiButtonSe
ボタンクリック時のSE音などを鳴らします。
>uguipointerdownse
これはデフォルトでは使用しないものです。要望に応じてサンプル的に追加したものなので、使用していないなら気にしなくて良いです。
>advselectionmanager
これは「SelectionClick」コマンドを使ったときに使用されます。

InputUtil.csは、GUIボタンを介さない入力処理で使っています。
主にPCのノベルゲームでよくある「右クリックで画面を閉じる」などのために、あちこちで使ってます。
宴では、Inputクラスを直接使わず、InputUtilを通してから使うようにしていますので、
新InputManagerを使う場合、仮に追加で対応が必要となったとしても、InputUtilだけ書き換えれば対応可能かと思います。
また、例外としてデバッグ用の Utage\Scripts\GameLib\SystemUI\DebugPauseEditor.cs
でもInputを使っていますが、デバッグ用のものなのであまり関係ないと思います。



2022年1月14日金曜日 18:38:47 UTC+9 rosever...@gmail.com:
FixPointerClick.unitypackage

Roseverte Games

unread,
Jan 30, 2022, 3:04:04 AM1/30/22
to 宴ユーザーグループ
返事が遅くなってすみません。いつもメールで返事があると通知が来ますが、なぜか突然全部スパムフォルダに入ってしまいました。

修正データを確認しました。ありがとうございました。

マッドネスラボ

unread,
Jan 31, 2022, 2:54:53 AM1/31/22
to 宴ユーザーグループ
了解です。ご確認ありがとうございます。
次回のアップデートで今回の変更を反映させます。


2022年1月30日日曜日 17:04:04 UTC+9 rosever...@gmail.com:
Reply all
Reply to author
Forward
0 new messages