LoginSignup
0
0

More than 1 year has passed since last update.

NGUI要素と普通のColliderが被った場合マウスイベントはどっちで発火するか

Last updated at Posted at 2021-06-05

超概要

普通のcolliderとNGUIで作ったボタン要素が被った場合、
マウスイベントはどっちで発火するか調べた

結果:普通のcolliderとNGUIの両方で発火する

環境

Unity 2018.4.31f1
NGUI: Next-Gen UI 2018.3.0f

経緯

やりたいこと

既存プロジェクトのマウスイベントをマウスもタッチパネルも使えない環境に対応することになった
プログラムでマウスイベントを呼びたいがNGUIとUnityのマウスイベントがわからなかったので調べた

hierarchyに普通のカメラと普通のコライダーも混ざった場合、
クリック判定はどうなるのか?

実験

↓↓サンプルScene↓↓
NGUI_タップ処理テスト.png

結果

どっちも当たる
上の画像ならbuttonの判定と後ろのCubeの判定の両方が来る
※OnMouseイベントでテスト

NGUIはUnityのクリック判定を無視して独自に処理するらしい

なので
NGUIのUICameraを書き換えてプログラムからマウスイベントを呼べるように修正し、
UICamera以外のカメラからもRaycastしてマウスイベントを無理やりコールすることで解決

追記(2021/06/05)

uGUIでも同様の結果になりました

uGUI_タップ処理テスト.png

全部重なったところを押すと
・uGUIで一番上の要素
・uGUI以外で一番上の要素
のマウスイベントが呼ばれるのでなんじゃこれ感ありますね

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0