この記事でのバージョン
Unity 5.1.0f3 Personal
NGUI 3.9.0b
はじめに
今回はNGUIで複数カメラを使う方法です。
例えば以下のように2D-3D-2Dの順番に重ねて表示したい時に使えます。
![]() |
他にもエフェクト用カメラを作成して、UIの間にエフェクトを発生させる、なんて事にも使えますね。
表示設定
どのカメラになにを表示するか、というのは通常通りLayerを使います。
まずオブジェクトのLayerを変更し、
![]() |
そのオブジェクトを表示したい
CameraのCulling Maskを設定します。
ここで重要なのが、ButtonやLabelといった各UIをのLayerを変更するのでは無く、
それを載せているUI PanelのLayerを変更しないと表示設定ができません。
重ねて表示
CamaraのClear FlagはDepth Onlyにする事で背景が透け、重ねて表示する事が出来ます。
またDepthが高い方が手前に表示されます。
全てのカメラをDepth Onlyにしてしまうと背景が無くなってしまうので、
例ではClear FlagsをSkyboxにした背景表示用のカメラを一番後ろに置いています。
イベント判定
ボタンをクリックした時の判定はカメラに映ってるだけではされず、別途設定が必要です。
設定はUI CameraのEvent Maskで行います。
ここに判定を行いたいレイヤーを指定します。
おわりに
この記事とは直接関係ないのですが、最近NGUIのラベルが
エディタ上で表示されないという問題が発生していてかなり困っております。
しかもなる時とならない時があるという……だいたいシーンを保存するとなります。
もちろんDepth設定は問題ありません。
というかそもそもラベル自体が表示すらされていない状態です。
しかもエディタ上だけの現象で、実行すると普通に表示されるので
困ってはいるけど問題無いと言えば無いというよく分からん状態です。
NGUIのバグなのか、Unityの表示バグなのか、
そもそも使い方間違ってるのか……_(:3ノ ∠)_