【Unity】NGUIでマスクによる切り抜き

  • 投稿日:
  • by
  • カテゴリ:
NGUIを使って表示しているものを
クリッピングマスクで動的に切り抜く方法についてのメモ。

例えば、画面全体を黒いUISpriteで覆っていて
その一部を丸くくり抜いて奥が見えるようにする場合。

まず黒いUISpriteは普通に配置。Transformは Z = 0 にする。
次にマスク用GameObjectを配置してTransformは Z = -1 にする。
マスク用GameObjectにUITextureコンポーネントをアタッチする。
UITextureのShaderとして"Unlit/Depth Cutout"を設定する。
UITextureのTextureとしてアルファチャンネル付きの画像を設定するとその形でマスクできる。

Z値でマスク対象が決まるので
Z=0以上のNGUI表示物はすべてマスク対象になる。
Z=-2に設定したNGUI表示物はマスクされない。