LoginSignup
3
3

More than 5 years have passed since last update.

World Spaceに置いたCanvasにボタン等を設置する時の注意点

Last updated at Posted at 2015-11-13

普通に置けば普通に反応すると思ってたんですが、教えてる学生さんのプロジェクトに置いてみたら全然反応しなかったので「何故じゃー」となってハマったので備忘録的に書いておきます。

結論から言うと
そのCanvasを映しているカメラのタグが "MainCamera" じゃないとUI部品はクリックできない
ということでした。普段からメインカメラのタグは MainCamera にしてたから全然気づきませんでした。

さらにこの原因を調査していく過程で発見した、しかし通常この知識が利用される機会は無いだろうなという点についても書いておきます。
それは
Canvasの方向がカメラの向きから90°を超えると見た目が押せそうに見えてもボタンは押せない
ということでした。Perspectiveなカメラだとカメラと直角な面でも画面中心にいなければ画面には見えていますが何故かこの状態だとボタンは反応しません(下図のような状態)。なんとなく裏向きだと反応しないんじゃないかとは思っていたものの見えててもダメとは。

スクリーンショット 2015-11-14 2.57.45.png

まあ普通ワールドスペースにボタンを置くならCanvasのrotationはカメラのrotationに合わすだろうからこの状況自体が「無い」とは思うものの一応見た目は押せそうなのでとりあえず注意点として。

おまけ: World Spaceに置いたCanvas用「いつでもカメラ方向を向くスクリプト」

void Update () {
    transform.rotation = Camera.main.transform.rotation;
}

カメラと同じ方向にすると裏向きになりそうな気がするけどこれがこちら向きなのです。なんとなくモヤモヤするけどいちいち向かい合わせにしなくて良い分スクリプトはスッキリしますね。

3
3
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
3
3