[Unity] Canvas を設定する

Unityではテキストや画像、ボタンなどを画面に表示するための領域をCanvasと言います。これは他の3D Objectとは設定が異なります。
 
cavans-size_01

Unity 2018.1

 




Canvas

 
UI要素であるTextやImage等はCanvasを配置領域として使い、全てのUI要素はCanvasの子要素として作成する必要があります。
 
canvas_04
 
例えば、UIのTextを作成すると、自動的にCanvasのが生成されその下に生成されます。
 
text_01
 

 

Canvasの生成

 
個別にCanvasだけ生成してみましょう。
「Hierarchy」の「Create」あるいはメニューの「GameObject」から「UI」「Canvas」を選択します。
 
canvas_01
 
Canvas と同時に EventSystem が自動で生成されるのですが、Canvasはメッセージシステムとして EventSystem オブジェクトを使用しているからです。
 
canvas_03

 

Render Mode

 
生成されたCanvasの領域は矩形で示される範囲として表示され、UI 要素はこの領域に2次元的に配置します。
Sceneの初期画面ではCanvasは非常に大きく全体像が分かりません。
 
cavans-size_01
 
これはデフォルトでのRender Modeが 「Screen Space – Overlay」になっていて3D空間とはべつなためです。
このRender Modeには3種類のモードがあります。
 
canvas_03

  • Screen Space – Overlay
    • 3D空間をカメラが写しているものとは関係なくスクリーンに直接描画されるモード
  • Screen Space – Camera
    • 指定したカメラの前にいくらかの距離をとって、平面オブジェクトの上にあるかのようにレンダリングされる
  • World Space
    • UI をシーン内の平面オブジェクトであるかのように他の3Dオブジェクトと同じようにレンダリングされる

タイトルやポイントなどのゲームとの画面表示には「Screen Space – Overlay」が向いているでしょう。
 
個別のシーンでの説明文などの文字表示にはカメラを切り替えて「Screen Space – Camera」が適しています。
 
3Dオブジェクトと一緒に移動する必要がある場合では「World Space」で1つのオブジェクトとして扱うことができます。

 

SceneでCanvasの調整

 
例としてTextを設定してSceneで見やすいように調整してみます。
「UI」「Text」の選択でCanvasの下にTextが作られます。
 
text_01
 
残念ながらこれはどこに配置されたのかわかりません。
 
cavans-size_01
 
「Game」に切り替えてみるとかすかに左下に「New Text」とあるのがわかります。
 
canvas_04
 
Scene上で見ながらやりたいとは思いますので、その時はハンドツールを使って移動・回転・縮小を行い調整します。シーンビューの操作
 
移動: クリック&ドラッグでカメラを移動
handtool_01
 
回転: Alt を押したまま、クリック&ドラッグ
handtool_02
 
ズーム: Alt を押したまま、右クリック&ドラッグ
Mac では、Control を押したまま、左クリック&ドラッグ
handtool_03
 
これらを使って調整します。
 

 
Sceneでも「New Text」が見えるようになりました。
 
canvas_05
 
 
Reference:
Canvas – Unity マニュアル