読者です 読者をやめる 読者になる 読者になる

いんでぃーづ

個人でゲーム開発してる上で吸収したモノたち紹介。UnityからGIMPまでなんでも。デザインとかゲーム論まで語っちゃうよ的なアレ。

MENU
{スポンサーリンク}

Unity : 3Dシーン内のCanvasが邪魔

Tips Unity

Canvasを配置すると、シーン内に3Dオブジェクトと一緒に表示されるようになります。

そしてなぜかこのCanvas、むちゃくちゃ大きいオブジェクトとして表示されてしまいます。

これはUnityがCanvasの1ピクセルを1unitとして計算して表示しているから。
シーンの1unitは1メートルなので、100ピクセルのUIは100メートルで描画されてしまいます。そりゃデカくなるわ...

しかもCanvasの左下が原点(0, 0, 0)に合っているので、3Dのシーンをここを基準にして作成している場合、思いっきり他のオブジェクトと表示がかぶるんですよね。

これが非常に邪魔だったりします。

3Dオブジェクトをクリックして選択したつもりが、Canvasに配置したUIを選択してしまったり。
結構ストレスがたまります。

解1:シーンからCanvasの表示を消す

右上のLayersドロップダウンリストから、UIレイヤーの目のマークをクリックし、目を閉じている表示にします。

f:id:sugar_affordance:20160522095956p:plain

シーン内からCanvasの表示が消えるはずです。

しかしこの方法では、全てのシーンビューからCanvasが消えてしまうので、編集のたびに毎回表示設定をする必要があります。

解2:CanvasのRenderModeを変える

CanvasコンポーネントRender ModeScreen Space - Cameraに変更し、Render Cameraにカメラを設定します。
この設定では、カメラの位置にCanvasが追従するようになります。
カメラのZ座標を100などの大きな値にすれば、シーンのオブジェクトと重なって表示されることはまずなくなるでしょう。

ただしこの方法では、UI表示用のカメラを別に用意する必要があります。

他に方法はないものか

以上それぞれ一長一短があり、ビシッとハマる方法がまだありません。
Unityの修正に期待。

・参考 http://forum.unity3d.com/threads/ui-canvas-related-questions.265171/

Amazon.co.jpアソシエイト