Galaxy Noteでのみ、しかもタッチペンを使ったときのみ描けなくなるというバグ
私のリリースしているお絵かきアプリのユーザーさんから、タッチペンを使うときだけ絵が描けないという報告を受けました。調べていくと、奇妙な現象でして、
調べてみると、以下のような投稿をForumで見かけました。
どうもGalaxy Note特有の現象なようです。
Unity側で対処すべき問題なのかGalaxy Note側の問題なのかは分からないのですが、とにかく不具合なことは確かです。
こちらを見ると1月中旬に修正が入ったそうですが、自分の使っているUnity2018.4.15fでビルドしたバージョンでは未だに発生するようでした。
仕方がないので先のフォーラムに書いてあったワークアラウンドを試してみたところ解決できました。
ワークアラウンドというのは見えないUIレイヤーを一つ挟んでそこでタッチとタッチポジションを検知するというもの。
ざっくりこういう感じのコンポーネントを作って、このisPointerDownやpointerPositionをInput.GetMouseButton( 0 )やInput.mousePositionの代わりに使うことで解決できました。
2020/3/6 修正
以前のIDragHandlerを使うバージョンだと僅かな移動の場合にポジションが更新されなかったのでpositionは、Input.mousePositionで取ることにして、downしたかどうかだけをOnPointer関数で取得することにしました。
public class UILayer : IPointerDownHandler, IPointerUpHandler { public bool isPointerDown; //------------------------------------------------------------------------------ public void OnPointerDown(PointerEventData pointerEventData) { isPointerDown = true; } //------------------------------------------------------------------------------ public void OnPointerUp(PointerEventData pointerEventData) { isPointerDown = false; } }