UIと重なったオブジェクトをタップする
モバイルアプリで、オブジェクトのタップをRayCastで検知する実装の場合
オブジェクトと重なったUIの操作とオブジェクトのタップの両方を
処理してしまう場合があります。
EventSystem .IsPointerOverGameObjectを使う
そんな時は、EventSystem .IsPointerOverGameObjectを使用すると良いらしいです。
if (Input.GetMouseButtonDown(0)) {
// UIの上なら、タップとみなさない
if (EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId)){
return;
}
}
知っていれば、すぐに使える機能。
だけど、知っていなければ使えない。
知るためには、とにかくコードを書いて、いろんな状況に出くわして
そして調べていかなければならない。
知識を深めるために、今はとにかく
いろんなコードを書いてみようと思いました。