0
0

Q. UIをCanvasの子要素から外したら見えなくなった。位置を調整しても見えない A. Canvasのなかに入れてください

Last updated at Posted at 2024-09-12

不具合の内容

Canvas0とCanvas1がある。

Canvas0はSort Orderが0
Canvas1はSort Orderが1
である。

Canvas0のなかに入れていた要素をcanvas1のUIより上に表示したくなったので
Canvas0から外したら、見えなくなってしまった。
位置を調整しても見えない。

解決方法

UIはCanvasの外に配置すると見えなくなるので、
Canvas1の中の下の方に配置する。

詳細

見えなくなるだけで、スクリプトは実行される。
非アクティブ状態ではない。
ただし、操作はできず、視覚的なインタラクションは不能となる。

UIのGameObjectとそれ以外のGameObjectは
レンダリング方法(画面への描画方法)が異なる。

UIはCanvasの子になることで
はじめて描画される。

ちなみUIである必要十分条件はRect Transformを持つことである。

追加の疑問

Q.
Canvasを分けるか
同じCanvasにいれるかどっちがいい?

A.
独立した機能なら分ける、
関連した機能なら分けない。

別々に動的な表示・非表示をさせたいなら分ける、
同時にさせたいなら分けない。

Q.
UIの「Panel」ってどう使うの?

A.
UI版の空のGameObject。
(UI以外の)GameObjectをまとめる時の
空のGameObjectと同じノリで使えばいい。
Imageコンポーネントで背景をつけられたりと、
完全に空ではないけど。

ちなみにヒエラルキータブ内のものは
シーンを除いてすべてGameObject。

今日のだいじなポイント

UIはCanvas(=Canvasコンポーネントを持つGameObject)
の子要素にすることではじめて描画される。

==
コメント歓迎です。
ご指摘をいただけるとうれしいです!

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