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

(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

NGUIで複数のカメラを使う【Unity】【NGUI】

Unity NGUI

このエントリーをはてなブックマークに追加

この記事でのバージョン
Unity 5.1.0f3 Personal
NGUI 3.9.0b

はじめに

今回はNGUIで複数カメラを使う方法です。

例えば以下のように2D-3D-2Dの順番に重ねて表示したい時に使えます。


f:id:kan_kikuchi:20150709071153p:plain


他にもエフェクト用カメラを作成して、UIの間にエフェクトを発生させる、なんて事にも使えますね。


表示設定

どのカメラになにを表示するか、というのは通常通りLayerを使います。


まずオブジェクトのLayerを変更し、


f:id:kan_kikuchi:20150709072756j:plain


そのオブジェクトを表示したい

CameraのCulling Maskを設定します。


f:id:kan_kikuchi:20150709072516j:plain

ここで重要なのが、ButtonやLabelといった各UIをのLayerを変更するのでは無く、

それを載せているUI PanelのLayerを変更しないと表示設定ができません


重ねて表示

CamaraのClear FlagはDepth Onlyにする事で背景が透け、重ねて表示する事が出来ます。

またDepthが高い方が手前に表示されます。


f:id:kan_kikuchi:20150709073727j:plain


全てのカメラをDepth Onlyにしてしまうと背景が無くなってしまうので、

例ではClear FlagsをSkyboxにした背景表示用のカメラを一番後ろに置いています。


イベント判定

ボタンをクリックした時の判定はカメラに映ってるだけではされず、別途設定が必要です。


設定はUI CameraのEvent Maskで行います。


f:id:kan_kikuchi:20150709073316j:plain


ここに判定を行いたいレイヤーを指定します。


おわりに

この記事とは直接関係ないのですが、最近NGUIのラベルが

エディタ上で表示されないという問題が発生していてかなり困っております。

しかもなる時とならない時があるという……だいたいシーンを保存するとなります。


f:id:kan_kikuchi:20150709071542p:plain


もちろんDepth設定は問題ありません。

というかそもそもラベル自体が表示すらされていない状態です。


しかもエディタ上だけの現象で、実行すると普通に表示されるので

困ってはいるけど問題無いと言えば無いというよく分からん状態です。


NGUIのバグなのか、Unityの表示バグなのか、

そもそも使い方間違ってるのか……_(:3ノ ∠)_