長押し入力の問題
/icons/hr.icon
https://xelfia.github.io/Virtueld/image/xvrf-title-icon-1280x640.png
長押し入力の問題
0.3.303以降予定
追加の調査で、後述の問題は暫定的に解決見込みです。
見解 実質の現象として、Havok Physics preview - 0.1.1がInput System preview - 0.9.0~preview - 1.0.0(調査範囲。一部未確認)の動作を一部阻害しているようです。メカニズムは不明ですが、まだ動作比較対象としての導入であるHavok Physicsをひとまず外すことで当面の対策とする予定です。
この対策後においても、応答イベントのstartTimeは0のままのようです。
⚠以下は、これまでの経緯です(見込み)
/icons/hr.icon
0.3.302現在
長押し入力としている操作が、すぐに応答してしまう問題を観測しています。以下と同様の現象です。
上記1つめはすでに解消していて、別の問題であるのか、それとも上記が未解決なのか、正確には把握していません。
後者では修正済み扱いとなっていますが、はたして。
仮にNew Input Systemパッケージ側であるとすれば、簡単な対応が難しい問題となりそうです。
各版での確認状況
最新版preview - 1.0.0: 問題を観測している。また、さらに別の問題がある。設定の一部が保存されない。これは長押の問題に影響する可能性がある。
preview - 0.9.0: 問題を観測している。
preview - 0.2.8とそれ以前: 後に追加された依存ずみの機能がないため現状ビルドできない。大きな作業となる。
上記問題は、UnityエディタとWindows Playerで動作が違い、Unityエディタ上では正常で、Windows Player(Virtueld.exe)で問題が起きています。これは、もしかすると別の理由で問題が起きている可能性もありますが、まだわかっていません。
「長押し」(ホールド)で応答するボタンに対して、以下のようなデバッグ状態を得ています。
Unityエディタ Unity 2019.3.0b3
長押し応答でのみ応答
startTimeが常に0、timeが毎回増加した時間、これによりdurationは、入力応答毎に常に増加しています。
Windows Player(Virtueld.exe)
長押しでもタップ(短く押したとき)でも応答
startTimeが常に0、timeが毎回増加した時間、これによりdurationは、入力応答毎に常に増加しています。
推定仕様
startTimeは押下したときの時刻(ゲーム開始からの経過時間秒)
timeは長押し(ホールド)が成立してイベント発生した時刻
durationは押下継続時間(time-startTime)
「時刻」は実際にTime.realtimeSinceStartupとほぼ一致している。誤差は、型の違いによるものと推定。
現状まとめ
エディタとWindows Playerで一致しない問題。単にInput Systemの問題か、ほかの機能と食い合わせが悪いか、用法か、Unity本体側問題か?
応答イベントでのstartTimeがおかしい様子
preview - 1.0.0で設定の一部が保存されない