うえすと開発メモ

UnityのuGUIと同じカメラ内でパーティクルや他のメッシュを重ねたい場合、
Unity2DのSpriteRendererに重ねる場合と同じく、SortingLayerかOrderInLayerで制御可能です。

SortingLayerに対応するシェーダー(Transparent~等)が適用されたRendererがついているGameObjectに、以下のテラシュールブログさんのSortingLayer.csをAddComponentすると、SortingLayerとOrderInLayerの変更が手軽できます。

参考:UnityのSpriteとパーティクルとかモデルの描画順番について 

UI側のSortingLayerとOrderInLayerは親であるCanvasで設定された値になるため、
「奥:UI-パーティクル-UI:手前」と挟んで描画したい場合は手前に表示したいUIを別のCanvasの子にする必要があります。

子のCanvasのOverrideSortingにチェックを入れるとLayerの変更ができます。
※Canvasが増えるとその分ドローコールが増えます。 
uguilayercheck02

重ねてみた出力結果。
uguilayercheck01

SortingLayerは全てDefault
上のボタンのOrderInLayerは1
下のボタンのOrderInLayerは3
青キューブとパーティクルのOrderInLayerは0
赤キューブとパーティクルのOrderInLayerは2
緑キューブとパーティクルのOrderInLayerは4

青は再背面、赤は中間、緑は最前面に描画されています。

また、以下のようにUI階層にキューブやパーティクルを混ぜた場合、
GameObjectにRectTransformをつければアンカーやピボットの設定も適用されました。
uguilayercheck03
このエントリーをはてなブックマークに追加

uGUIでグラデーション、色合成(乗算、加算、減算)を行うUIエフェクトを作りました。

グラデーション。縦、横、両方。
ugui-effect-tool_gradient01

色合成。左上から乗算、加算、減算、合成なし上塗り、元々の状態。
ugui-effect-tool_blend01

使い方はAdd ComponentでそれぞれUIオブジェクトにくっつけるだけです。
・Gradient Color - (Add Component >> UI/Effects/Gradient Color)
ugui-effect-tool_gradient02
・Blend Color - (Add Component >> UI/Effects/Blend Color)
ugui-effect-tool_blend02

標準エフェクトであるShadowやOutlineと同じように、BaseVertexEffectを継承して
ModifyVerticesメソッドで受け取った頂点に対して頂点カラーを設定しています。 

参考:
Outline.cs
Shadow.cs
BaseVertexEffect

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

uGUIにはNGUIのTweenに相当するものがなく、ちょっとした動きを作るのが面倒でしたが、
良い感じのアセットを作られてる方がいました。
NGUIのTweenと大体同じように使えます。
tomtc123/ugui-Tween-Tool
a10
試していませんが、以下の様なアセットもあるようです。
UI Tween - Unity Asset Store

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

このページのトップヘ