UnityのLayerの機能を上手に利用することで様々な処理が行えるようになる。
まず、Layerの設定方法について。
インスペクタの最上部
この右下のタブで選択する。
自分でレイヤーを追加するには、AddLayerを選択することでUserLayerに命名出来る。
第一の使い方としてカメラのCullingMaskとして使用することが出来る。
インスペクタから
チェックマークが入っているレイヤーに指定されたオブジェクトはレンダリングされます。
画像ではわかりにくいですが、このように設定次第で描画されたりされなくなったりします。
これを応用することでUIのみを別カメラで描画し、重ね合わせることが出来ます。
このとき注意しなくてはならないのがカメラのClearFlagsとDepthです。
この例では右上をベースに左上を重ねているのですが、左上のスフィアを描画しているカメラの設定を
このようにしています。
まず、Depthを-1から0にすることで-1となっているベースのカメラよりも後にこのカメラの描画結果を処理することになります。
次にClearFlagsをDepth onlyにすることで、すでにベースのカメラで描画したものの上にこのカメラで描画したものを書き込みます。ここをSkyboxもしくはSolid Colorにしてしまうと、既にベースのカメラで描画されている内容が塗りつぶされてしまい、現在のカメラでの描画しているものしか見ることが出来なくなってしまいます。
このようにLayerを分けることで描画関係で複雑なことが出来るようになります。
ほかにも衝突判定やライティング等においてもレイヤー分けすることで特殊な扱いができるので、それについては後日扱います。
0 件のコメント:
コメントを投稿