Help us understand the problem. What is going on with this article?

タッチとマウスが混在する環境でハマったこと (unity、Android)

More than 1 year has passed since last update.

前提

  • unity 2018.4.2f1
  • Android 6, 9
  • Bluetoothマウス
  • マウスは、複数ボタンあってもポインターは一つなので、単一のポインティングデバイスと見なします。
  • タッチは、個々の指が独立してポイント可能なので、指毎に個別のポインティングデバイスと見なします。

やろうとしたこと

  • タッチとマウスの両方で使えてマルチタッチでも支障のない排他制御を実現しようとしました。
  • 最初に操作されたポインティングデバイスに制御を占有させ、後から操作されたデバイスを排除しようとしました。 (先優先)

ハマったこと

  • Androidでは、マウス操作中にタッチするとマウスカーソルが消え、タッチ操作中にマウスを動かすだけでマウスカーソルが出現します。
  • この切り替わりの際には、unityのポインターコールバックが正しく発火しないようです。
  • 例えば、マウスでドラッグ中にタッチされた場合に、既にマウスボタンが押されていないのにOnDragが呼ばれ続ける等の症状が出ました。

やったこと

  • 新たにデバイスが操作された際に、既に他のデバイスが処理中であったら、先行デバイスの処理を強制終了させて、後行デバイスが新たに処理を開始するようにしました。 (後優先)
tetr4lab
自分がネットから受け取ってきたような価値を僅かでもネットに返せたらと思っています。 Unityで、主に1人で作っています。 受託開発もいたします。 業務外のご提案も歓迎いたします。
https://tetr4lab.nyanta.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away