パパ先生のゲーム開発ブログ

二児のパパがゲーム開発アレコレを書いているブログ。Unity / UE4 / Scratch / プログラミングゼミ / プログラミング教育

【Unity】Canvas Overlay表示モード時に PosZが1000を超えると表示が消える

(Unity2019.3.7f1で動作確認)

uGUI  CanvasのRender Modeを Screen Space - Overlay設定時

表示するUIオブジェクトのPosZの値が一定値を超えると表示が消える問題です。

(Canvas Render Mode Screen Space - Overlay)

f:id:papa-sensei:20200816093024p:plain

症状

症状を確認するためサンプルプロジェクトを用意します。

f:id:papa-sensei:20200816093055p:plain

CanvasのRender ModeをOverlayにし、その下にImageコンポーネントを置き表示します。

(TextはImageのPos.z値を表示するデバッグ用です)

 

 

実行し、PosZの値を変化させていくと、

f:id:papa-sensei:20200816093710g:image

PosZの値が1000を超えるとGameビューで表示されなくなりました。

(-1000でも同様に、-1000.1より小さいと表示されなくなります)

 

 

UIオブジェクトでPosZの値をいじることは少ないと思いますし、

いじっても1000を超えるほどの値を設定することはないとは思いますが、

動的にオブジェクトを生成した場合など、Prefab側に余計な値が入っていたり、

親のPosZの影響を受けて1000を超えてしまうなど、

場合によっては起きることもあるので、

頭の片隅に覚えておくと良いかもしれません^^;