Unityの概念がよくわからないまま触っていて、とても単純なことですが分かるまでとても困ったので記事にしてみました。
現象
Canvasの中にGameObject(CubeやSquareなど)を配置して、
Sceneビューではちゃんと確認できるんですが
Gameビューで見ると何も表示されていませんでした。
原因
カメラビューの中に入っていませんでした(恥ずかしい)
UnityにおけるカメラとUIという概念
Unity超初心者だったため、UnityのカメラとUIという概念すらわかっていませんでした。
カメラ
Unityにはカメラという視点があり、
2D横スクロールのマリオなどですと
常に操作キャラクターのマリオを追っかけていますが、
あれはカメラがキャラクターを中心に視点を動かしているからです。
もちろん 視点から外れたものは画面には写りません 。
UI
一方、視点が動いても常に表示されるものもあります。
例えば、2D横スクロールのマリオですと、
視点は動いていても画面上部に「制限時間」や「コイン枚数」
などが 固定で表示 されています。
視点に関係なく 常に画面上に表示させたいものはUIで実装 します。
試しに、Hierarchy の中で右クリック > UI の中を確認すると、
Button や Text などありますがこれらが画面上に固定で表示されます。
Canvasの大きさをカメラの範囲内にいい感じに収める方法
ただ、Canvas を作成した時は無駄に大きく作られます。
こんな感じ。
左下にある物凄く小っっっっっっっちゃいのがカメラです。
。。。。。。。。。。。。。。。
無駄に Canvas が大きい。。。
これを Canvas がカメラの範囲内にいい感じに収めるようにしたいとおもいます。
設定方法
まず、Hierarchy にある Canvas をクリックしてアクティブにします。
そして、Inspector > Canvas > Render Mode を
「Screen Space - Camera」 にします。
あとは、 Render Camera に Main Cameraをアタッチ します。
すると Canvas のサイズがいい感じに収まってくれ、
Gameビューに切り替えてもちゃんと表示されています。
以上、ご拝読有難うございました。