Unity-オブジェクトの判定がズレて挙動してしまう
お久しぶりです。
明けましておめでとうございます。
最近Unityでマインスイーパ(のようなもの)を製作してみたんですが途中でButtonコンポーネントがアタッチされているGameObjectをクリックした際に何故か位置がズレて動作してしまう現象に遭遇しました
原因.
子オブジェクトのサイズ > 親オブジェクトのサイズ
以上の環境だとおかしくなる
解決策(2通り).
- 子オブジェクトのサイズ <= 親オブジェクトのサイズ
- 子オブジェクトのコンポーネント内のRaycast TargetをFalseにする(判定を無効化)
環境及び現象は以下の通り
環境.
バージョン.
Unity:2017.2.1f1
簡易な実装記述.
親オブジェクト:Buttonコンポーネント
子オブジェクト:Textコンポーネント
親オブジェクトをクリック
→子オブジェクトのテキストが出力される
以下、現象
図1.一番左下のブロックをクリック
図2.何故かクリックしたブロックの上が反応。why!?
これらの画像では上のブロックが反応していますがブロックの端付近をクリックすると上だけでなく右上・右の計3箇所にズレる事を確認。(上端なら上、右端なら右にズレる)
これに2,3日間ずっとハマって精神的に参ってました...俺がおかしいのかそれとも
Unityがおかしいのか...(色々試して泥沼になって本当にキツかった)。
お師匠様に相談して無事解決。
今年はどんどんブログを更新していきたいと思います。
誤った知識・理解の上で投稿することもあると思うので色々ご指摘頂きたいと思います。今年も宜しくお願いします