はじめに
今回はMaskとは逆に、内側をくりぬくことができるUnmask For UGUI
について紹介したいと思います。
インストール方法
Unity2018.3あたり?からGitのURLからPakcageをインストールできるようになりました。
Git URL からのインストール - Unity マニュアル
今回はその方法でUnmask For UGUI
をインストールしていきます。
まずはwindows -> Package Mangaer
からPackageManager
を開いた後、左上の+ボタンを押しAdd package from git URL
を選択。
https://github.com/mob-sakai/UnmaskForUGUI.git
と入力をしてください。
基本的な使い方
Unmask
コンポーネントが動作するには,Unmask
コンポーネントがアタッチされているGameObject
の親にMask
コンポーネントがアタッチされている必要があります。
── MaskコンポーネントがアタッチされたImage └── UnmaskコンポーネントがアタッチされたUI element (Image, RawImage, Text, etc...) └── その他UI element (Image, RawImage, Text, etc...)
まずはMask
コンポーネントがアタッチされたImage
を作ります。アルファ値は0
だと動作しないみたいなので注意してください。
次にくり抜かれる側のUIを作ります。最初の画像でいう黒いUIの箇所ですね。
最後にくりぬくUIを作ります。Unmask
というコンポーネントをアタッチすることで実現できます。
ボタンを使った使い方
ボタンの箇所だけRay
が通るようにしたいといった、マスクされていない箇所にRay
を飛ばせるようにするにはUnmaskRaycastFilter
コンポーネントを利用します。
Canvas └─ Button └─ Maskコンポーネント&UnmaskRaycastFilterコンポーネントがアタッチされたImage └── UnmaskコンポーネントがアタッチされたUI element (Image, RawImage, Text, etc...) └── その他UI element (Image, RawImage, Text, etc...)
Button
はいつも通りのボタンです。
次にMask
コンポーネントをアタッチしたImage
にUnmaskRaycastFilter
をアタッチします。
UnmaskRaycastFilter
コンポーネントのTarget UnmaskにはRayを透過するUIを指定します。
最後にUnmask
がアタッチされたUI element
を作成すれば完成です。
またUnmask
コンポーネントにはFit Target
・Fit On Late Update
というプロパティがあると思いますが,ここにButton
を指定すると,自動的にButton
の大きさに合わせてくれます。(アニメーションしても大丈夫)